anthropics / anthropics/knowledge-work-plugins

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

Open
#1,031 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
24k
Forks
2.9k
Avg merge
1d 16h
Merged PRs (30d)
149

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`:
```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`).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.