MCP
Connect Claude Code, Cursor or any MCP client to Dexby.
Dexby serves two kinds of MCP URL. Both use Streamable HTTP and your API key as a bearer token.
| Session URL | MCP endpoint URL | |
|---|---|---|
| URL | https://api.dexby.ai/v1/sessions/<session-id>/mcp | https://mcp.dexby.ai/<endpoint-slug>/<user-id> |
| Created by | Your code, with createSession() | You, once, in the dashboard |
| Tools | Meta tools to search and run the session's tools | The exact tools you picked |
| Lasts | Until the session expires (24 hours by default) | Until you delete it |
| Best for | Agents your code starts per user | A fixed URL to paste into a client config |
Header for both: Authorization: Bearer $DEXBY_API_KEY (get the key under Configure → API keys
in the dashboard).
Session URL
Create a session and read its mcpUrl:
import { Dexby } from '@dexby.ai/sdk'
const dexby = new Dexby()
const created = await dexby.createSession({ userId: 'user_123', connectors: ['slack'] })
if (created.isErr()) throw new Error(created.error.message)
console.log(created.value.mcpUrl) // https://api.dexby.ai/v1/sessions/<session-id>/mcpWith the REST API, POST /v1/sessions returns the same mcpUrl. See Sessions
for what a session can include.
MCP endpoint URL
An MCP endpoint is a fixed URL with a set of tools you choose.
- In the dashboard, open Distribute → MCP endpoints and click New endpoint.
- Enter a name and a URL slug, such as
support-agent, and click Create endpoint. The slug identifies the endpoint in the URL. It cannot change later. - On the endpoint's page, pick the tools, set Require user ID and Allow global accounts, and save.
An endpoint has no data class setting of its own. Which tools exist is the project's choice: tools
classified phi exist only in a project that handles health data, which
is coming soon.
The endpoint's page also shows the full URL and ready-made configs to copy.
<endpoint-slug>is the slug you chose. The project comes from the API key, so the URL has no project id.<user-id>identifies the user whose connected accounts the client uses, percent-encoded as one path segment (encodeURIComponent), soacme/johnbecomesacme%2Fjohn. With Require user ID turned off on the endpoint, a URL that ends at the slug usesdefault's connected accounts.dexby.mcpUrl(slug, userId)in the SDK builds the URL.- The API also serves endpoints at
<api-url>/v1/mcp/<endpoint-slug>/<user-id>. Self-hosted deployment packaging is planned. - Legacy:
https://api.dexby.ai/v1/mcp/<endpoint-slug>?user=<user-id>still works and behaves the same. New configs should use the URL above. - Allow global accounts (off by default) lets calls use the project's global accounts, for the actions an admin allowed each one. Off, a user without an account of their own gets a link to connect one.
Client configs
claude mcp add --transport http dexby \
"https://mcp.dexby.ai/<endpoint-slug>/<user-id>" \
--header "Authorization: Bearer $DEXBY_API_KEY"A session URL works in the same configs: use it as the url.
Why the slug is in the URL
MCP clients connect to one URL plus headers, so the URL has to say which endpoint. The API key already says which project, and the last part of the path says which user.