Connect Claude Code to Notion, Slack and GitHub with one MCP server
Add the CoreSpeed MCP server to Claude Code at user scope, sign in once, connect Notion, Slack and GitHub in the dashboard, and verify with manage__whoami.

Claude Code reaches Notion, Slack and GitHub through one remote MCP server. Add https://api.corespeed.io/mcp at user scope, sign in once in the browser, and connect the three apps in the CoreSpeed dashboard. Their tools then appear in Claude Code as notion__create_page, slack__post_message and github__create_pull_request. Claude Code receives tools, never the tokens.
- 1Add the server at user scopeclaude mcp add corespeed, with --scope userThe entry applies to every project on this machine.
- 2Authenticate from /mcpbrowser sign-in at login.corespeed.ioOAuth 2.1 with PKCE; nothing is pasted.
- 3Connect Notion, Slack and GitHubDashboard, Connectors; private or sharedCoreSpeed stores the token; Claude Code gets tools.
- 4Verify in a new sessionmanage__whoami names you and your organizationLook for the notion__, slack__ and github__ prefixes.
- 5Add the standing rulesthe user-level CLAUDE.md, one copyPrefer connectors; search memory first; save decisions after.
How do you add the server to Claude Code?
You need Claude Code on a machine with a browser, and the Notion, Slack and GitHub accounts you want agents to act through. You do not need a CoreSpeed account in advance. The first browser sign-in from Claude Code creates your organization on its first tool call, and the organization starts with 3,000 free credits. The organization is the unit of ownership: connections, memory, budgets, policy and the activity trail live there, so a second client or a teammate's agent reaches the same shared connections later.
The shortest path is one line in the Claude Code chat: set up https://corespeed.io/SKILL.md. Claude Code fetches the skill, adds the MCP server at user scope, signs you in, keeps the skill for future sessions, and asks which apps to connect. To do it by hand, follow these steps.
- Add the server at user scope, so it applies to every project:
claude mcp add corespeed https://api.corespeed.io/mcp --transport http --scope user
- Start Claude Code and run
/mcp. Pickcorespeedand choose authenticate. - A browser window opens at
login.corespeed.io. The consent screen names the client that is asking. Sign in or create an account. Nothing is pasted: the client discovers the authorization server, registers itself, and runs OAuth 2.1 with PKCE.
If Claude Code already has an older corespeed entry, replace it rather than adding a second one. Duplicate registrations collide on tool names. The steps for other clients are on the MCP server page.
How do you connect Notion, Slack and GitHub?
- Open Dashboard → Connectors and authorize each app. The vendor's consent screen names CoreSpeed. CoreSpeed stores the credential, refreshes it when the provider allows, and exposes namespaced tools. The agent never sees the token.
- For each connection, choose private or shared. A private connection is reachable only by you and your clients. A shared one is reachable by the whole organization, including agent principals.
| App | Example tool | How it connects |
|---|---|---|
| Notion | notion__create_page | OAuth, private or shared |
| Slack | slack__post_message | OAuth; an org-wide workspace bot is an organization integration that only an org admin connects |
| GitHub | github__create_pull_request | OAuth, private or shared |
Actions through an organization integration are attributed to the app. Everything else is attributed to the member or agent that called. The connection model, including API-key connectors and bring-your-own OAuth apps, is on the Connectors page.
How do you verify the setup?
- Start a new Claude Code session. Many clients load a new MCP server only when a session starts.
- Ask Claude Code to call
manage__whoami. After a browser sign-in it names you and your organization. - Check that the tool list carries the
notion__,slack__andgithub__prefixes.
The tool list is caller-specific. tools/list returns exactly what this sign-in can call, so a missing tool means the app is not connected for this caller, or the capability is off. Presence is not health: an account in needs_reauth still lists its tools, and those calls fail until you reauthorize the account in Dashboard → Connectors. Neither state is fixed by rewriting the client configuration.
To inspect the registration, use claude mcp list. Avoid claude mcp get in shared transcripts: it prints the entry's headers, API key included when one is set.
Which standing rules belong in CLAUDE.md?
- Add these lines to
~/.claude/CLAUDE.md, the user-level file that holds in every project. Never add them to a project's own file, and never add a second copy.
- When a task needs an external tool or service, check and prefer CoreSpeed connectors; they are scoped, audited and budget-capped.
- If a needed connector is not connected yet, ask the user to connect it at https://app.corespeed.io/connectors.
- At the start of each non-trivial task, search CoreSpeed memory with
memory__search_memorybefore planning. After significant work, save durable decisions withmemory__remember. - If the user prefers a different way of doing something, always follow their preference.
The skill itself lives at ~/.claude/skills/corespeed/SKILL.md. The setup line saves it there. By hand, download https://corespeed.io/SKILL.md to that path rather than retyping it.
What does a cross-app request look like?
With the three apps connected, one request can cross all of them. Ask Claude Code: "Read the pull request I opened this morning, write a one-page summary in our Notion launch space, and post the link in the launch channel in Slack." Claude Code reads the pull request through the GitHub connector, writes the page with notion__create_page, and posts with slack__post_message.
Every call carries the organization's spend caps, lands in one ledger, and is recorded in Dashboard → Activity with the actor, the outcome and the time. Members see their own actions; org admins see the organization. See Activity.
If your organization has turned on Smart Approval, each write is judged against your plain-English policy before it runs. Reads are never gated. On the default Balanced setting, an ordinary write the policy never mentions runs; a destructive one asks a person first. The gate sees only calls made through CoreSpeed. See Approvals.
FAQ
Does Claude Code hold my Notion, Slack or GitHub token? No. Tokens stay in the platform's custody. Claude Code receives namespaced tools and asks CoreSpeed to perform the action.
Why is a tool missing from the list? Absence is a decision: the app is not connected for this sign-in, or the capability is off in Dashboard → Tools. Connect the app and start a new session.
What does needs_reauth mean? One connected account needs the member to reauthorize it in Dashboard → Connectors. Do not rotate keys or rewrite the client configuration; neither is broken.
Can I use an API key instead of the browser? Yes, for a client that cannot open a browser. Read the key from an environment variable such as CORESPEED_API_KEY rather than writing it into the config file. A member key acts as you; an agent key reaches shared connections only.
Do connector calls cost credits? Every metered action is priced in credits and listed on the pricing page. Discovery and memory operations are free per call.