Summary
12 plugins declare gmail and google calendar MCP servers whose url is the
empty string. Claude Code registers them as real HTTP servers, attempts a
connection every session, and fails — permanently, since there is no endpoint to
reach.
The docs and the manifest disagree. Several of these plugins list Gmail and
Google Calendar in the CONNECTORS.md table as Included servers, with no
qualifier. sales/CONNECTORS.md, for example:
| Calendar | `~~calendar` | Google Calendar, Microsoft 365 | — |
| Email | `~~email` | Gmail, Microsoft 365 | — |
The repo already has a convention for this case — data/CONNECTORS.md marks
unfinished entries with * Placeholder — MCP URL not yet configured. None of
the 12 plugins applies it to Gmail or Google Calendar, so there is no signal,
in the docs or at runtime, that these were never meant to work.
Affected plugins
customer-support, design, engineering, enterprise-search, finance,
human-resources, legal, marketing, operations, product-management,
productivity, sales — 24 blank entries in total.
Enumerated at be9c0dae6d2004078973993a73fccc8e8f32cf83 with:
for f in */.mcp.json; do
jq -r --arg p "${f%%/*}" '.mcpServers | to_entries[] | select(.value.url == "") | "\($p): \(.key)"' "$f"
done
The same sweep also reports blank snowflake / databricks / benchling
entries in data, finance, and bio-research. Those are explicitly footnoted
as placeholders in their CONNECTORS.md, so they are mentioned only for
completeness — the undocumented Gmail and Calendar entries are what this issue
is about.
Reproduction
- Enable any affected plugin (e.g.
sales@knowledge-work-plugins).
- Run
claude mcp list.
Observed:
plugin:sales:google calendar: (HTTP) - ✗ Failed to connect
plugin:sales:gmail: (HTTP) - ✗ Failed to connect
Note the empty URL between the server name and (HTTP).
Why this is worth fixing
The failure mode points the user in the wrong direction. "Failed to connect"
reads as a network or auth problem, so the natural response is to hunt for a
sign-in that does not exist. Gmail and Calendar make this especially confusing:
a user with working Gmail and Google Calendar connectors sees duplicate entries
for those same services failing, which suggests their real connectors are
broken. That was the reading that prompted this report.
It is not user-recoverable. The plugins declare no userConfig, so there is
no supported way to supply the missing URL. Neither disabledMcpjsonServers nor
deniedMcpServers suppresses a plugin-provided server. The only workarounds are
editing the plugin cache by hand — which a plugin update reverts — or disabling
the entire plugin, which also discards its skills.
It obscures genuine failures. These entries sit alongside servers that are
legitimately unauthenticated or unreachable, making the healthy-vs-broken
distinction harder to read.
Suggested fix
Remove the gmail and google calendar entries from the 12 .mcp.json files.
The CONNECTORS.md tables can keep listing the categories: a category
documented but absent from the manifest costs the user nothing, since they
connect their own MCP server for it — which is what the tool-agnostic
~~category design already anticipates.
Two smaller alternatives, if shipping the entries is preferred:
- Apply the existing
* placeholder footnote to them, so the docs at least
match the manifest.
- Have Claude Code skip registering an MCP server whose
url is empty, rather
than registering it and reporting a connection failure. That is a client-side
fix and probably belongs in the Claude Code repo instead.
Environment
- Claude Code on macOS (Darwin 25.6.0)
- Marketplace
anthropics/knowledge-work-plugins @ be9c0dae6d2004078973993a73fccc8e8f32cf83
Summary
12 plugins declare
gmailandgoogle calendarMCP servers whoseurlis theempty string. Claude Code registers them as real HTTP servers, attempts a
connection every session, and fails — permanently, since there is no endpoint to
reach.
The docs and the manifest disagree. Several of these plugins list Gmail and
Google Calendar in the
CONNECTORS.mdtable as Included servers, with noqualifier.
sales/CONNECTORS.md, for example:The repo already has a convention for this case —
data/CONNECTORS.mdmarksunfinished entries with
* Placeholder — MCP URL not yet configured. None ofthe 12 plugins applies it to Gmail or Google Calendar, so there is no signal,
in the docs or at runtime, that these were never meant to work.
Affected plugins
customer-support,design,engineering,enterprise-search,finance,human-resources,legal,marketing,operations,product-management,productivity,sales— 24 blank entries in total.Enumerated at
be9c0dae6d2004078973993a73fccc8e8f32cf83with:The same sweep also reports blank
snowflake/databricks/benchlingentries in
data,finance, andbio-research. Those are explicitly footnotedas placeholders in their
CONNECTORS.md, so they are mentioned only forcompleteness — the undocumented Gmail and Calendar entries are what this issue
is about.
Reproduction
sales@knowledge-work-plugins).claude mcp list.Observed:
Note the empty URL between the server name and
(HTTP).Why this is worth fixing
The failure mode points the user in the wrong direction. "Failed to connect"
reads as a network or auth problem, so the natural response is to hunt for a
sign-in that does not exist. Gmail and Calendar make this especially confusing:
a user with working Gmail and Google Calendar connectors sees duplicate entries
for those same services failing, which suggests their real connectors are
broken. That was the reading that prompted this report.
It is not user-recoverable. The plugins declare no
userConfig, so there isno supported way to supply the missing URL. Neither
disabledMcpjsonServersnordeniedMcpServerssuppresses a plugin-provided server. The only workarounds areediting the plugin cache by hand — which a plugin update reverts — or disabling
the entire plugin, which also discards its skills.
It obscures genuine failures. These entries sit alongside servers that are
legitimately unauthenticated or unreachable, making the healthy-vs-broken
distinction harder to read.
Suggested fix
Remove the
gmailandgoogle calendarentries from the 12.mcp.jsonfiles.The
CONNECTORS.mdtables can keep listing the categories: a categorydocumented but absent from the manifest costs the user nothing, since they
connect their own MCP server for it — which is what the tool-agnostic
~~categorydesign already anticipates.Two smaller alternatives, if shipping the entries is preferred:
*placeholder footnote to them, so the docs at leastmatch the manifest.
urlis empty, ratherthan registering it and reporting a connection failure. That is a client-side
fix and probably belongs in the Claude Code repo instead.
Environment
anthropics/knowledge-work-plugins@be9c0dae6d2004078973993a73fccc8e8f32cf83