Skip to main content

Sally MCP connector: The complete setup guide

With the Sally MCP Connector you can query your Sally data (appointments, recordings, summaries, and transcripts) directly from any AI tool that speaks the Model Context Protocol (MCP), for example Claude Desktop, Claude Web, ChatGPT, Cursor, Windsurf, or an MCP-capable IDE. Once connected, your AI assistant can search meetings, read summaries, and pull transcripts without leaving the conversation.

This guide covers both ways to authenticate, OAuth 2.1 with Dynamic Client Registration and a Personal Access Token (PAT), and shows how to register the Sally MCP server with your AI tool. The setup is the same everywhere: point your client at the Sally MCP URL, then either let it run the OAuth flow or pass a token as a Bearer header.

Quick navigation

  1. What is the Sally MCP Connector?
  2. Prerequisites
  3. Authentication: OAuth 2.1 or Personal Access Token
  4. Register Sally with your MCP client
  5. Verify the connection
  6. Available tools
  7. Troubleshooting
  8. Security notes
Looking for a tool-specific guide?

If you already know which tool you want to connect, jump directly to the dedicated guide: ChatGPT, Claude, GitHub Copilot, Langdock, Cursor, or OpenHands.

1. What is the Sally MCP connector?

The Model Context Protocol (MCP) is an open standard that lets AI clients and agents talk to external data sources through a standardized server interface. A growing number of tools support it, for example Claude Desktop, Claude Web and Claude Code from Anthropic, ChatGPT (via Connectors), editors and IDE assistants like Cursor, Windsurf, Zed and VS Code (Copilot Chat, Continue, Cline), as well as custom agents built on MCP SDKs. Sally exposes an MCP endpoint, so any of these clients can read your meeting data on demand.

PropertyValue
MCP Endpointhttps://app.sally.io/api/v1/McpExternal
AuthOAuth 2.1 with Dynamic Client Registration (recommended), or Bearer token (Personal Access Token, format sally_user_mcp_…)
AccessRead-only on the data your Sally user sees in the selected company account
ScopePer user and company account

Typical use cases:

  • Search meetings by topic: quickly find every conversation that mentioned a specific product, project, or customer.

    "Search my Sally meetings from the last 30 days that mention the kickoff with customer XY and summarize the key points."

  • Bundle open action items across meetings: let your AI assistant pull all to-dos from several conversations instead of clicking through summaries manually.

    "Give me a list of all open action items from my meetings this week, grouped by owner."

  • Trace decisions: find out when and why a decision was made.

    "Which meeting is where we decided to migrate to Postgres 16, and what were the reasons?"

  • Brief yourself before a follow-up: have your AI assistant summarize the latest state before you head into a follow-up call.

    "I have a call with Acme tomorrow. Summarize the last two meetings with them, including open items and objections."

  • Deep-dive into transcripts: pull a full transcript into your AI tool to clarify details the summary may not cover.

    "Pull the transcript of Tuesday's discovery call and show me every passage where the customer talks about pricing."

  • Draft follow-ups on demand: generate a ready-to-send email or Slack message from the meeting content.

    "Draft a follow-up email for this morning's meeting covering all action items we discussed."

  • Spot team-wide patterns: analyze multiple calls for recurring themes or objections.

    "Which objections have come up most often in our sales calls over the last 4 weeks?"


2. Prerequisites

Prerequisites
  • An active Sally user with access to at least one company account.
  • Sally MCP enabled for your company account (admin setting). If your admin has disabled it, the connection is refused and the Sally MCP section shows no Create token button.
  • Any MCP-capable client, for example Claude Desktop, Claude Web, ChatGPT, Cursor, Windsurf, Zed, VS Code (via Copilot Chat, Continue, or Cline), Claude Code or another CLI agent, or a custom agent built on an MCP SDK.
  • Only for the mcp-remote fallback (stdio-only clients): Node.js 18 or newer (run node -v to check).
Multiple company accounts

A connection always covers one user × one company account. With OAuth 2.1 it is bound to the company account that is active for your user at the moment you authorize; with a token, to the account the token was created in. If you have access to several company accounts and want your MCP client to see all of them, register one connector per company account.


3. Authentication: OAuth 2.1 or Personal Access Token

Sally offers two ways to authenticate an MCP client. Both grant the same read-only access to the same data, they differ only in how the credential reaches the client.

MethodBest suited forWhat it looks like in practice
OAuth 2.1 (recommended)Company-wide rollouts, plus every client that offers a plain URL or custom-connector field, for example Claude, ChatGPT, Cursor or VS CodeYou enter the Sally MCP URL, the client opens a Sally login window, you sign in and confirm. Nothing to copy, no secret in a config file.
Personal Access TokenClients without OAuth support, stdio-only clients, scripts and custom agentsYou create a token in Sally once and paste it into the client's config as a Bearer token.
Which one should you pick?

If your client has a URL field or a "custom connector" dialog, choose OAuth 2.1. It is the safer route: no long-lived secret gets copied around, every user authorizes their own Sally context, and IT can roll the connector out centrally without handing out tokens. Fall back to a Personal Access Token only when your client cannot speak OAuth.

3.1. OAuth 2.1 with Dynamic Client Registration (recommended)

The Sally MCP endpoint is a standards-compliant OAuth 2.1 protected resource. An MCP client can therefore discover everything it needs by itself: it calls the endpoint without a credential, receives a 401 with a WWW-Authenticate header pointing at Sally's metadata, registers itself through Dynamic Client Registration (RFC 7591), and then runs a normal authorization-code flow with PKCE.

For you, that means: give the client nothing but the MCP URL. Everything else happens in the browser.

Step-by-step

  1. Open the MCP or connector settings of your client and add a new server with the URL https://app.sally.io/api/v1/McpExternal.
  2. Leave client ID and client secret empty. Sally registers your client automatically, that is exactly what Dynamic Client Registration does.
  3. Save, then click Connect (the wording differs per client). A Sally login window opens in your browser.
  4. Sign in with your Sally account, through SSO if your company uses it, and confirm the authorization.
  5. The client marks the connection as active and the five Sally tools show up.
Rolling this out company-wide

Because clients register themselves, an admin only has to distribute the Sally MCP URL once, for example in a shared Claude workspace or in a self-hosted chat tool. Every user then authorizes their own Sally account the first time they use it and only ever sees their own data. Combined with SSO, the sign-in is a single click. No tokens have to be created, handed out or rotated, and nobody has to store a secret.

Technical details

PropertyValue
Protected resource metadatahttps://app.sally.io/.well-known/oauth-protected-resource/api/v1/McpExternal (RFC 9728)
Authorization server metadatahttps://app.sally.io/.well-known/oauth-authorization-server (RFC 8414)
Authorization endpointhttps://app.sally.io/oauth/authorize
Token endpointhttps://app.sally.io/api/v1/oauth/token
Client registrationhttps://app.sally.io/api/v1/oauth/register (Dynamic Client Registration, RFC 7591)
Revocation endpointhttps://app.sally.io/api/v1/oauth/revoke
Grant typesauthorization_code, refresh_token
PKCERequired, S256
Client authenticationnone (public clients) and client_secret_post
Scopesmcp:read, mcp:write
Read-only in practice

Sally advertises the scopes mcp:read and mcp:write, but the current tool set only reads data. No MCP client can change anything in Sally, see Available tools.


3.2. Create a Personal Access Token

A Personal Access Token (PAT) is the credential your MCP client uses to authenticate against the Sally MCP endpoint when it cannot speak OAuth. You create it once per client.

Step-by-step

  1. Open Settings in the bottom-left of the sidebar.
Sally sidebar with the Settings entry highlighted in the bottom-left
Open Settings
  1. Under Configuration, select Integrations and open the MCP tab. Click Create token under Sally MCP. With no token yet, the button sits in the middle, otherwise in the top right corner.
MCP tab in the integrations with the Create token button highlighted
Create a token in the MCP tab
  1. Fill out the Create Sally MCP token dialog:

    • Name: required. Pick a label that helps you recognize the token later.
    • Expiry date (optional): set a date if the token should expire by itself. Without one, it does not expire.

    Then click Create.

Create Sally MCP token dialog with the Name and Expiry date fields
Set the name and an optional expiry date
  1. Sally shows the full token exactly once. Copy it right away with the icon on the right of the field and store it in a password manager or a secure secret store. Once you close the dialog, there is no way to retrieve it again.
Dialog showing the new token, the copy icon and the note that the token is shown in full only once
Copy the token before closing the dialog
Treat the token like a password

The token grants read access to every appointment, recording and summary your Sally user sees in this organization account. Do not share it over chat, e-mail or tickets, store it in a password manager instead.

  1. Click Done. The token then sits under Your active tokens, with its beginning, its expiry date and a trash icon. The trash icon takes the token's access away. If you need to replace a token, simply create a new one afterwards.
List of active Sally MCP tokens with the beginning of the token, the expiry date and a trash icon
Review active tokens and delete them when needed

4. Register Sally with your MCP client

The Sally endpoint is a standard HTTP-based MCP server that accepts both OAuth 2.1 and Bearer-token authentication. Every MCP-capable tool provides a way to register such a server. The labels and menu paths differ between products, the values you enter do not.

4.1. Values to enter

The steps below describe the token route. If your client supports OAuth, you do not need any of it: enter the URL, connect, and authorize in the browser, see OAuth 2.1 with Dynamic Client Registration.

For the token route, the setup works the same way in every MCP client: point the client at Sally's server address and give it your personal token. Most clients use a small JSON config file for this; a few (typically web products like claude.ai or ChatGPT) offer a custom-connector dialog instead. The values are identical either way.

1. Copy this snippet

{
"mcpServers": {
"sally": {
"type": "http",
"url": "https://app.sally.io/api/v1/McpExternal",
"headers": {
"Authorization": "Bearer YOUR_SALLY_TOKEN"
}
}
}
}

Replace YOUR_SALLY_TOKEN with the complete token you created in Section 3. It starts with sally_user_mcp_, which is part of the token and goes in with it. Keep exactly one space between Bearer and the token, and keep the quotation marks around the whole value.

What's in the snippet, line by line:

LineWhat it means
"sally"A label for the connection, pick any name you like, sally is a sensible default.
"type": "http"The connection method. Sally uses standard HTTP MCP.
"url": "https://app.sally.io/api/v1/McpExternal"The Sally MCP address. Always this exact URL.
"Authorization": "Bearer sally_user_mcp_…"Your login: the word Bearer, a space, then your personal token. This is how Sally knows it's you.

2. Paste it into your client's config file

Open your MCP client's config file in a plain text editor (Notepad, TextEdit, VS Code, or similar, not Word or Pages, those insert hidden formatting that breaks the file) and paste the snippet you just copied. Save the file.

A JSON config file opened in VS Code, showing an existing preferences block and the newly pasted mcpServers block with a Sally entry as its sibling
Example: snippet pasted into a JSON MCP config file (here: claude_desktop_config.json in VS Code)
If the file already has content

Keep the existing blocks (in the screenshot, that's "preferences"). Add "mcpServers" next to them as a sibling, with a comma between the two. Do not replace the file's contents. The file must always start with a single { and end with a single }, with no trailing commas.

Using a custom-connector dialog instead?

Some clients, for example Claude in the browser, ChatGPT, and similar web products, don't use a JSON file. They offer a Custom connector dialog. Paste the URL https://app.sally.io/api/v1/McpExternal and your token into the matching fields there; no file editing needed.

3. Restart your client and test

Close the client completely and open it again so it picks up the new config. Start a new conversation and ask "Which Sally tools are available?". You should see the five tools from Section 6.

4.2. Where to find the MCP settings in common tools

Exact menu paths change as products evolve; check each tool's own documentation for the current location. As a starting point:

  • Claude (web, Desktop, Code, Cowork): Settings → ConnectorsCustomizeAdd custom connector. One connector covers all Claude products, no JSON and no PAT needed. See the Claude guide.
  • ChatGPT: Sally AI is available as a native ChatGPT app. Open Apps in the sidebar, search for Sally, click the Sally AI tile, then Connect. No JSON, no PAT, see the ChatGPT guide.
  • Cursor / Windsurf / Zed: the app's settings under MCP / Model Context Protocol (JSON form above).
  • VS Code: via MCP-capable extensions like Copilot Chat, Continue, or Cline (their own MCP server lists).
  • CLI agents: register the server via the agent's MCP config command (JSON form above).
  • Custom agent on an MCP SDK: connect a Streamable-HTTP MCP client to the URL and attach the Authorization header on each request.

4.3. Fallback: mcp-remote for stdio-only clients

Some older clients cannot speak HTTP MCP directly and only support stdio-based MCP servers. In that case, route the connection through the mcp-remote proxy. Requires Node.js 18 or newer on your machine (node -v shows your version).

{
"mcpServers": {
"sally": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.sally.io/api/v1/McpExternal",
"--header",
"Authorization: Bearer YOUR_SALLY_TOKEN"
]
}
}
}

Use the same JSON form your client accepts, just swap the "type": "http" block for the "command": "npx" block above. After saving, fully restart the client.


5. Verify the connection

Start a new conversation in your MCP client (Claude, ChatGPT, Cursor, VS Code, etc.) and try a simple query:

"Search my Sally appointments from the last 30 days for anything about 'kickoff'."

The client should call the search_appointments tool and return results. You can also ask explicitly for the available tools:

"Which Sally tools are available?"


6. Available tools

The Sally MCP server currently exposes five tools:

ToolPurpose
search_appointmentsFilter appointments by subject, attendee, or time range. Full-text search with prefix matching, includes linked recordings.
search_summariesFull-text search across meeting summaries: which meetings mentioned topic X?
get_recordingsPaginated list of recordings you can access in the selected company account, including metadata.
get_summaryReturn the summary for a recording, optionally with details (key facts, decisions, to-dos, custom insights).
get_transcriptionFull transcript of a recording as plain text with timestamps.
Media file URL in get_recordings

Each recording returned by get_recordings includes an optional recordingFileUrl field. When the recording is released for download, it holds the direct CDN link to the media file (same format as in the Sally frontend, e.g. https://d39wo8p5549a9e.cloudfront.net/<filename>). If the recording is not released for download, the value is null.

A recording is released only if it is still active (not deleted by retention), not archived, the matching recording type is not blocked by download restrictions, and both the recording itself and all linked appointments have the relevant recording type (video or audio) active.

Access rule: a recording is visible to you if at least one of the following applies:

  1. You are the owner of the recording.
  2. You are the technical owner of the related appointment.
  3. The recording is stored in a recording folder shared with you or a team you belong to.

What MCP can and cannot see

The table below sums up which meetings the Sally MCP connector returns for your token:

SourceAccessible via MCP?
Your own meetings (you are the owner / technical owner)Yes
Meetings shared with you via a recording folder (directly or through one of your teams)Yes
Meetings of users for whom you have been set as deputy ("Vertretung")No
Deputy access is not included

Even if you have been granted deputy ("Vertretung") rights for another user inside Sally, those meetings are not exposed through MCP. The MCP connector currently only surfaces your own recordings and recordings explicitly shared with you via folders. If you need a deputy's meetings in your AI tool, ask the owner to share them through a recording folder.


7. Troubleshooting

IssueCauseFix
Invalid or expired tokenToken was deleted, expired, or pasted incorrectly.Check the token in Sally, and delete it and create a new one if needed.
Sally MCP is disabled in this organizationYour company admin has turned Sally MCP off.Ask your admin whether this was intentional.
Connector shows no status or is redThe client cannot reach the endpoint, or the config is malformed.Check your client's MCP logs. For Claude Desktop:
Windows: %APPDATA%\Claude\logs\mcp-server-sally.log
macOS: ~/Library/Logs/Claude/mcp-server-sally.log
Other clients (ChatGPT, Cursor, VS Code, etc.) have their own connector/MCP log views, check the tool's documentation.
Tools return 404The requested ID does not exist, or you do not have access to it.Confirm the recording/summary exists in Sally and that the access rule applies.
mcp-remote fails to startNode.js is missing or outdated.Install Node.js 18 or newer and confirm with node -v.
Client reports that Dynamic Client Registration is not supportedThe client version is too old to complete the OAuth discovery. Sally itself supports it.Update the client, or connect with a Personal Access Token instead.
The Sally login window opens but the connection stays inactiveThe authorization was cancelled, or the browser blocked the redirect back to the client.Run the connect step again and confirm the authorization. Allow pop-ups for the client if needed.

8. Security notes

  • Prefer OAuth 2.1 wherever the client supports it. No long-lived secret ever leaves Sally, access tokens are short-lived and refreshed automatically, and a single client's access can be withdrawn again without affecting the others.
  • Both methods provide read-only access, but that includes every appointment, recording, and summary your Sally user sees in the selected company account. Treat the access as sensitive.
  • Do not share tokens via Slack, email, or support tickets. Use a password manager.
  • If a token is lost or possibly compromised, delete it right away under Settings → Integrations → MCP tab with the trash icon, then create a new one. Deleting takes the old token's access away immediately.
  • Prefer one token per client (Claude Desktop, Claude Web, ChatGPT, Cursor, your IDE, etc.). That way you can revoke a single device or tool without breaking the others.
  • Admins can disable Sally MCP for the whole company account at any time; existing tokens stop working immediately.