{"id":51065630,"url":"https://github.com/kitimark/claudeai-mcp-bridge","last_synced_at":"2026-06-23T06:30:37.560Z","repository":{"id":348981809,"uuid":"1200576811","full_name":"kitimark/claudeai-mcp-bridge","owner":"kitimark","description":"Bridge claude.ai connectors (Slack, Atlassian, Gmail, Calendar) into any MCP client with zero extra credentials.","archived":false,"fork":false,"pushed_at":"2026-04-03T19:31:39.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T19:33:54.943Z","etag":null,"topics":["atlassian","bun","claude","claude-ai","claude-code","gmail","google-calendar","mcp","model-context-protocol","slack","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/kitimark/claudeai-mcp-bridge#readme","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitimark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-03T15:21:40.000Z","updated_at":"2026-04-03T19:31:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kitimark/claudeai-mcp-bridge","commit_stats":null,"previous_names":["kitimark/claudeai-mcp-bridge"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kitimark/claudeai-mcp-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitimark%2Fclaudeai-mcp-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitimark%2Fclaudeai-mcp-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitimark%2Fclaudeai-mcp-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitimark%2Fclaudeai-mcp-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitimark","download_url":"https://codeload.github.com/kitimark/claudeai-mcp-bridge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitimark%2Fclaudeai-mcp-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34678932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atlassian","bun","claude","claude-ai","claude-code","gmail","google-calendar","mcp","model-context-protocol","slack","typescript"],"created_at":"2026-06-23T06:30:35.376Z","updated_at":"2026-06-23T06:30:37.552Z","avatar_url":"https://github.com/kitimark.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# claudeai-mcp-bridge\n\n\u003e **Disclaimer:** This project is **not affiliated with, endorsed by, or officially supported by Anthropic**. It is an independent, experimental project for educational and research purposes. It uses undocumented internal APIs that may change or break at any time. Using Claude subscription tokens outside official clients may violate Anthropic's [Terms of Service](https://www.anthropic.com/terms). **Use at your own risk** -- no warranty is provided.\n\nUse your **claude.ai connectors** (Slack, Atlassian, Gmail, Google Calendar) inside any MCP client -- zero credential setup.\n\nThis is a standard MCP server (stdio) that bridges connectors you've already authorized through [claude.ai](https://claude.ai/settings/connectors) into any MCP-compatible tool. Works with **OpenCode**, **Claude Desktop**, **Cursor**, **Cline**, **Windsurf**, and more.\n\n## How it works\n\n```\n┌────────────┐  stdio (MCP)  ┌──────────────────┐   HTTPS    ┌──────────────────┐\n│ Any MCP    │──────────────\u003e│ This MCP Server  │──────────\u003e│ mcp-proxy.       │\n│ Client     │\u003c──────────────│                  │\u003c──────────│ anthropic.com    │\n│            │  tools/list   │ Reads Keychain   │           │                  │\n│ OpenCode   │  tools/call   │ Discovers servers│           │ Slack, Atlassian │\n│ Claude     │               │ Proxies calls    │           │ Gmail, Calendar  │\n│ Desktop    │               └──────────────────┘           └──────────────────┘\n│ Cursor     │\n│ ...        │\n└────────────┘\n```\n\n1. Reads your OAuth token from macOS Keychain (written by Claude Code)\n2. Discovers your connectors via `api.anthropic.com/v1/mcp_servers`\n3. Connects to each via `mcp-proxy.anthropic.com` (Streamable HTTP)\n4. Exposes all tools over stdio MCP protocol\n\n## Prerequisites\n\n- **Claude Code** logged in (`claude --version`)\n- **Connectors authorized** at https://claude.ai/settings/connectors\n- **Bun** runtime (`bun -v`)\n\n## Quick start\n\n### 1. Clone and install\n\n```bash\ngit clone https://github.com/kitimark/claudeai-mcp-bridge.git\ncd claudeai-mcp-bridge\nbun install\n```\n\n### 2. Verify it works\n\n```bash\nbun run src/poc-discover.ts\n```\n\nYou should see your connectors and their tools listed:\n\n```\n[claudeai-mcp] Found 5 connector(s):\n[claudeai-mcp]   - Slack (id: mcpsrv_0...)\n[claudeai-mcp]   - Atlassian (id: mcpsrv_0...)\n[claudeai-mcp] --- Slack ---\n[claudeai-mcp]   Tools (13):\n[claudeai-mcp]     - slack_send_message: Sends a message to a Slack channel...\n```\n\nFor TypeScript validation in this repo, use project-mode checks:\n\n```bash\nbun run typecheck\n```\n\n### 3. Add to your MCP client\n\n#### OpenCode\n\n```jsonc\n// opencode.json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"claudeai\": {\n      \"type\": \"local\",\n      \"command\": [\"bun\", \"run\", \"/absolute/path/to/claudeai-mcp-bridge/src/server.ts\"]\n    }\n  }\n}\n```\n\n#### Claude Desktop\n\n```jsonc\n// ~/Library/Application Support/Claude/claude_desktop_config.json\n{\n  \"mcpServers\": {\n    \"claudeai\": {\n      \"command\": \"bun\",\n      \"args\": [\"run\", \"/absolute/path/to/claudeai-mcp-bridge/src/server.ts\"]\n    }\n  }\n}\n```\n\n#### Cursor\n\n```jsonc\n// .cursor/mcp.json\n{\n  \"mcpServers\": {\n    \"claudeai\": {\n      \"command\": \"bun\",\n      \"args\": [\"run\", \"/absolute/path/to/claudeai-mcp-bridge/src/server.ts\"],\n      \"env\": {\n        \"CLAUDEAI_MCP_EXCLUDE\": \"Gmail,Google Calendar\"\n      }\n    }\n  }\n}\n```\n\n### 4. Use it\n\n```\n\u003e search slack for messages about the deployment from yesterday\n\n\u003e what are my open jira issues?\n\n\u003e find the confluence page about onboarding\n```\n\n## Available tools\n\nOnce connected, you get the same tools as Claude Code:\n\n| Connector | Tools | Examples |\n|-----------|-------|---------|\n| **Slack** | 13 | search messages, send messages, read channels, read threads, manage canvases |\n| **Atlassian** | 31 | Jira issues (CRUD, transitions, search), Confluence pages (CRUD, search, comments) |\n| **Gmail** | varies | read/send email (requires active auth) |\n| **Google Calendar** | varies | manage events (requires active auth) |\n\nTool names follow the pattern: `{connector}_{tool_name}`\n\nExamples: `slack_search_public`, `atlassian_getJiraIssue`\n\n(Your MCP client may add its own prefix, e.g. OpenCode: `claudeai_slack_search_public`)\n\n## Configuration\n\n### Environment variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `CLAUDEAI_MCP_DEBUG` | `0` | Set to `1` for verbose logging |\n| `CLAUDEAI_MCP_TIMEOUT` | `30000` | Connection timeout per connector (ms) |\n| `CLAUDEAI_MCP_FILTER` | (all) | Comma-separated connector names to include |\n| `CLAUDEAI_MCP_EXCLUDE` | (none) | Comma-separated connector names to exclude |\n| `CLAUDE_CODE_UA_VERSION` | package version | Override `User-Agent` Claude Code version for protocol parity simulation |\n\n### Managing tools (OpenCode)\n\nDisable specific connectors:\n\n```jsonc\n{ \"tools\": { \"claudeai_atlassian_*\": false } }\n```\n\nEnable only for specific agents:\n\n```jsonc\n{\n  \"tools\": { \"claudeai_*\": false },\n  \"agent\": {\n    \"slack-agent\": { \"tools\": { \"claudeai_slack_*\": true } }\n  }\n}\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| `No OAuth token found` | Run `claude` to log in |\n| `Token expired` | Open Claude Code to auto-refresh |\n| Connector shows \"auth required\" | Re-authorize at https://claude.ai/settings/connectors |\n| Tools don't appear | Restart your MCP client after config change |\n| Too many tools | Use `CLAUDEAI_MCP_EXCLUDE` env var |\n| VS Code/Zed shows errors but `bun run typecheck` passes | Reopen the repository root (not a single loose file), run `bun install`, restart the TypeScript server in your editor, and ensure the editor uses workspace TypeScript from `node_modules/typescript/lib` |\n\n## Compatibility\n\n| MCP Client | Supported | Config location |\n|------------|-----------|-----------------|\n| **OpenCode** | Yes | `opencode.json` |\n| **Claude Desktop** | Yes | `claude_desktop_config.json` |\n| **Cursor** | Yes | `.cursor/mcp.json` |\n| **Cline** | Yes | `.cline/mcp_settings.json` |\n| **Windsurf** | Yes | MCP settings |\n| **Continue.dev** | Yes | `config.json` |\n| **Zed** | Yes | `settings.json` |\n| **Any stdio MCP client** | Yes | -- |\n\n## How it compares to Claude Code\n\n| | Claude Code | Any client + this bridge |\n|---|---|---|\n| Same Slack/Atlassian tools | Yes | Yes (identical, same upstream servers) |\n| Credential setup | Zero | Zero (reads from Keychain) |\n| Custom tools alongside | Limited | Whatever your client supports |\n| Works with any editor/tool | No | Yes |\n\n## Docs\n\n- [ideas/how-it-works.md](ideas/how-it-works.md) -- Full protocol research, architecture diagrams, source code analysis\n- [ideas/setup-guide.md](ideas/setup-guide.md) -- Detailed setup guide with troubleshooting\n\n## Caveats\n\n- Uses **undocumented Anthropic endpoints** (`/v1/mcp_servers`, `mcp-proxy.anthropic.com`) that may change\n- Using Claude subscription tokens outside official clients may violate **Anthropic's ToS**\n- Token refresh depends on Claude Code -- keep it installed\n- macOS Keychain primary; Linux/Windows falls back to `~/.claude/.credentials.json`\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitimark%2Fclaudeai-mcp-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitimark%2Fclaudeai-mcp-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitimark%2Fclaudeai-mcp-bridge/lists"}