Skip to content

Connect a custom MCP server

Dash connects to 3,000+ tools through its built-in catalog. But if you have your own MCP server, an internal API exposed as MCP, or a tool that isn’t in the catalog, you can connect it directly.

MCP (Model Context Protocol) is an open standard that lets AI agents call tools on a server. If your tool speaks MCP, Dash can use it.

  • The URL of your MCP server (must be HTTPS and publicly reachable, or reachable from Dash’s infrastructure).
  • An authentication method: API key or access token (sent as a bearer token) or OAuth 2.0. (If your tool uses an OpenAPI spec instead of MCP, the API tab also supports Basic auth, no base credential with custom headers, and API key; see below.)
  • Admin access to the Dash workspace.
  • A paid plan. Custom MCP servers and custom APIs aren’t available on the Free plan.

This is the simplest path. Your server expects a fixed API key or token in the Authorization header.

  1. Go to app.dashpup.ai and open the Integrations page.
  2. Click Add custom. The dialog opens on the MCP tab by default.
  3. Enter the server URL.
  4. Choose API key or access token as the auth method.
  5. Paste the token. Dash stores it encrypted and never exposes it after this step.
  6. Click Connect. Dash will probe the server, discover its tools, and list them.

You can also ask Dash in Slack or Teams:

@Dash connect a custom MCP server

Dash will walk you through the same steps via a link.

If your MCP server uses OAuth 2.0 (for example, it’s a SaaS product with per-user authorization), the flow is similar but adds a browser redirect:

  1. On the Integrations page, click Add custom. The dialog opens on the MCP tab by default.
  2. Enter the server URL.
  3. Choose OAuth as the auth method.
  4. Fill in the OAuth client ID and client secret (if required, some servers use dynamic client registration and don’t need these).
  5. Click Connect. You’ll be redirected to the server’s authorization page.
  6. Authorize Dash. You’ll be redirected back, and the connection goes live.

If your tool has an OpenAPI spec (a JSON or YAML file describing its endpoints), you can connect it from the API tab instead of the MCP tab. Upload the spec and Dash generates tools from its endpoints automatically.

  1. On the Integrations page, click Add custom and switch to the API tab.
  2. Enter a name for the connection.
  3. Upload the OpenAPI spec file.
  4. If the spec’s base URL has placeholders (for example, https://{defaultHost} for a self-hosted tool), an API base URL section shows one field per placeholder, prefilled with the spec’s default. Enter your own values. A preview shows the exact URL Dash will call, and Connect stays disabled until every field has a value.
  5. Choose the auth method. The toggle offers API key or access token, Basic auth, and No base credential. If the spec declares HTTP Basic security, the form pre-selects Basic auth for you.
  6. For API key or access token, paste your key or token. For Basic auth, enter a Username and Password. Either field alone is enough (some APIs use only a username as an API key with no password, and vice versa). For No base credential, skip this step; authentication is handled entirely through custom headers (see below). All credential fields are masked and stored encrypted.
  7. Click Connect. Dash validates the spec, generates tools, and lists them.

You can also ask Dash in chat, for example:

Connect our Discourse forum. The API spec is at https://docs.discourse.org/openapi.json

Dash finds the spec, works out how the API signs in, and sends you a link. The page needs no sign-in. It shows the address Dash will call, then asks for the key, password, or header values. That way nobody pastes a secret into the conversation.

The link works once and expires after 24 hours. When you submit it, the connection appears on the Integrations page like any other custom API, and Dash confirms in the conversation.

Some APIs require extra headers on every request, such as a tenant ID, an API version, or a client secret that doesn’t fit a standard auth scheme. You can add these on any custom API connection, regardless of the base auth method.

  1. In the connect dialog, expand the Advanced section (when using No base credential, this section opens automatically).
  2. Click Add header. Enter the header name (for example, x-buildium-client-id) and its value.
  3. Add as many headers as the API requires. Each value is masked and stored encrypted.
  4. When using No base credential, at least one custom header is required before you can click Connect.

Custom headers are sent on every request alongside the base credential. They are useful for APIs that authenticate with proprietary headers instead of a standard bearer token or basic auth scheme.

If you set up a custom API connection the wrong way, you don’t need to disconnect and start over. Open the connection on the Integrations page and click Edit settings. You can change the name, the base URL placeholders, the auth method, the credential, and the custom headers, and upload a newer version of the spec. Tool run modes and the access list stay as they are.

  • Secrets stay hidden. For an API key, leave the field blank to keep the current key. For Basic auth, leave both the username and password blank to keep the current login. If you fill in only one of them, the other is saved blank, so to change the username, enter the password again too.
  • Stored custom headers aren’t shown, because their names count as secrets too. Click Replace custom headers to enter a new set, or Keep current headers to undo that.
  • To update the spec, for example after the API adds endpoints, click Upload a new spec and pick the newer JSON or YAML file. The dialog shows which spec is in use now. Saving keeps the credential and custom headers. Tools whose HTTP method or path changed, or that the new spec leaves out, lose their approval settings and scheduled-task grants. Click Keep current spec to drop the new file.
  • You can also ask Dash in chat to replace a connection’s spec with a newer one from its URL. Dash posts an approval card first, and nothing changes until the person who asked or a workspace admin approves it.
  • Only the person who connected it or a workspace admin can edit it. Connections that use OAuth or client credentials can’t be edited here.

Once connected, Dash reads the server’s tool catalog automatically. Each tool the server exposes appears on that connection’s Tools tab on the Integrations page, with its name and description. From there you can:

  • Set each tool’s run mode: auto, ask, or off. Read tools default to auto, routine writes default to ask, and irreversible destructive operations default to off until someone deliberately enables them. Routine reversible edits remain at ask, and an explicit run-mode choice stays in place when code defaults change.
  • Set the access scope: workspace (everyone can use it) or private (only you and people you add).
  • Assign approvers per tool.

These are the same controls you get with any built-in tool connection. See How approvals work for details.

By default, Dash resolves a logo automatically from the server’s metadata. If you’d prefer a different image, workspace admins can upload a custom logo:

  1. On the Integrations page, click the custom connector to open its detail page.
  2. Hover over the logo in the header. A pencil icon appears.
  3. Click the logo to open the Change logo dialog.
  4. Choose a PNG, JPG, or WebP file up to 1 MB.
  5. Click Save. The new logo appears everywhere the connector is shown.

To go back to the original logo, open the same dialog and click Restore original logo.

Some tools in Dash’s catalog are pre-configured MCP servers with a branded connect experience (one-click OAuth, no URL entry). These include integrations like Linear, Process Street, and Atlassian. They show up in the catalog alongside the standard OAuth tools. Connecting them works the same way as connecting your first tool.

Metabase is the one branded server that needs an address. Each Metabase runs on its own domain, so Dash asks for your Metabase address first, then sends you to sign in. When you add another account later, Dash reuses that address.

“Connection failed” after entering the URL. Dash couldn’t reach the server. Check that the URL is correct, the server is running, and it’s reachable over HTTPS from the public internet.

No tools discovered. The server responded but didn’t list any tools. Make sure your server implements the MCP tools/list method.

Auth errors after connecting (static bearer). If the API key or token was rotated, open the connection on the Integrations page and click Rotate key. Enter the new value and save. Your run-mode settings, access list, and approvers are all kept; only the stored credential changes. There is no need to disconnect and reconnect.

Auth errors after connecting (OAuth). If the OAuth grant was revoked, disconnect and reconnect to re-authorize.

You got a “needs reconnecting” message. When a connection’s sign-in expires or is revoked, or its credentials are rejected, Dash messages the person who connected it (in Slack or Teams, or by email). The message names the app and the account, says Dash can’t use it until it’s reconnected, and links to the app on the Integrations page so you can fix it. If the person who connected it has left the workspace, the workspace owners get the message instead. A private connection nobody else has access to doesn’t send one, since nobody can use it.

Reconnect required. If a connection’s sign-in expires or is revoked, or its credentials are rejected, Dash can’t use it until it’s reconnected. The app shows Reconnect required and moves to the top of the Connected list on the Integrations page, so it’s easy to spot. Open it to see which account needs attention and reconnect it. Paused accounts aren’t flagged.

You turned off an app’s only account. The app stays under Connected on the Integrations page, with a grey dot and 1 account disabled. Open it to turn the account back on; you don’t need to connect it again.