Skip to content

Shared connectors (Gmail, Google Calendar, Slack) are redeclared per-plugin instead of shared, forcing duplicate auth #1031

Open

Description

Summary

gmail, google calendar, and slack are not org-wide/utility connectors — each plugin's .mcp.json redeclares its own copy of them under that plugin's own namespace. The Cowork connector picker then shows them as plugin:legal:gmail, plugin:finance:gmail, plugin:sales:gmail, etc., each requiring separate authentication, even though they're the same underlying account/service.

Evidence

slack, google calendar, and gmail are each declared independently in at least 8 plugins' .mcp.json:

legal, finance, sales, customer-support, human-resources, marketing, operations, product-management

(atlassian and notion show the same pattern in a subset of plugins.)

Example from legal/.mcp.json:

"google calendar": { "type": "http", "url": "" },
"gmail": { "type": "http", "url": "" }

identical blocks appear verbatim in finance/.mcp.json, sales/.mcp.json, etc.

Why it's confusing

Installing more than one of these plugins (e.g. legal + finance) surfaces the same service twice in the connector list under two different plugin namespaces, and authenticating one does not satisfy the other — a user has to click through OAuth once per plugin for what is, from their point of view, one account.

Suggested fix

Cheap: document in CONNECTORS.md that these are shared/global connectors satisfied once across all plugins that reference them, if that's already true at the auth layer and only the UI namespacing is misleading.

Bigger: let plugins reference a shared connector definition (e.g. a top-level connectors.json or marketplace-level registry) instead of copy-pasting the same .mcp.json block into every plugin, so authenticating once satisfies every plugin that declares it.

Related but distinct from #933 (empty url on the same servers) — this issue is about the duplicated-namespace/redundant-auth UX even where the URL is populated and working (e.g. slack).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions