← All SaaS workflows
SaaSCirclebackMCPClaude Code

Circleback MCP with Claude Code: setup, read-only options, and data access

18 min read

Go deeper on this topic

SaaS integrations

Give AI the context to continue the work: source conversations, open tasks, and unresolved details, from adoption decisions to integration code.

Article 1 of 4 in this series.

View topic page

Use the topic hub as a map, then continue to the next article in the series. New here? Start at the home hub →

Disclosure: this article includes a Circleback affiliate link. We may earn a commission if you subscribe. The article states what we tested and what remains unverified.

You discussed a release in a Slack huddle or meeting, then returned to Claude Code to implement it. Circleback MCP provides tools for finding the meeting, reading notes, searching timestamped transcripts, and checking pending action items. Instead of copying everything into the conversation, retrieve the meeting and statements needed for the next task.

The official setup adds an HTTP server and authenticates with OAuth. Treat its permissions as a separate decision: the unauthenticated response in our October 19, 2026 experiment requested user user:write. The default connection should not be assumed to be read-only.

We tested public metadata discovery without authentication and configuration registration in Claude Code 2.1.303. We have not tested OAuth sign-in, the consent screen, authenticated tool calls, or MCP in a real meeting workflow. Requesting only user is a configuration candidate, not a verified Circleback read-only setup.

Add Circleback MCP to Claude Code

Circleback's official instructions start with:

claude mcp add --transport http circleback https://circleback.ai/api/mcp

Open an interactive Claude Code session, run /mcp, select Circleback, and authenticate. Claude Code's documentation also provides a command to start the authentication flow from your shell:

claude mcp login circleback

claude -p cannot run the OAuth flow. Complete sign-in interactively first. These are instructions for the reader; we did not sign in during this experiment.

Local, project, and user describe configuration scope

--scope chooses where Claude Code stores the server configuration. It is separate from Circleback data permissions and OAuth scopes.

Configuration scope Storage and availability
local (default) ~/.claude.json; current project only, not shared
project .mcp.json in the project root; shareable through version control
user ~/.claude.json; available across your projects

To share the configuration file with a team, add --scope project:

claude mcp add --transport http --scope project circleback https://circleback.ai/api/mcp

In an isolated test folder, this created .mcp.json and reported Pending approval. The documentation says interactive sessions ask for approval before using project-scoped servers. That approval is separate from OAuth consent. In claude -p, Agent SDK, and cloud sessions, Claude Code cannot show that prompt and loads project-scoped servers without asking. Project approval is therefore not a guard shared by every execution mode.

What the unauthenticated 401 revealed

On October 19, 2026 at 17:55 JST, a POST of initialize without authentication returned HTTP 401 and this header. This was a response to an anonymous request, not a failed account sign-in.

WWW-Authenticate: Bearer realm="OAuth", resource_metadata="https://circleback.ai/.well-known/oauth-protected-resource/api/mcp", scope="user user:write"

Both the protected resource metadata referenced by the header and the authorization server metadata listed user and user:write in scopes_supported. The authorization server also advertised a registration endpoint, PKCE S256, and the none authentication method for public clients. These observations describe public configuration; they do not show that we obtained permissions.

Circleback lists both read and write tools. UpdateMeeting, CreateActionItem, UpdateActionItem, DeleteActionItem, and tag creation, editing, and deletion change data. ShareMeeting can also share with anyone who has the link. Circleback says tools that make changes need write access, which it requests when you connect. Circleback MCP tools and permissions

A qualified read-only option: pin oauth.scopes

Claude Code documents oauth.scopes for pinning the scopes requested during authorization. Its value is a space-separated string and takes precedence over discovered scopes. This .mcp.json candidate requests only user:

{
  "mcpServers": {
    "circleback": {
      "type": "http",
      "url": "https://circleback.ai/api/mcp",
      "oauth": {
        "scopes": "user"
      }
    }
  }
}

Our CLI experiment accepted the same object through claude mcp add-json --scope project. Accepting a configuration does not establish what Circleback permits. Circleback's documentation does not explicitly map user to read-only access. We have not verified that the consent screen omits write access or that read tools work with user alone.

If you already authenticated, use Clear authentication in /mcp, apply the configuration, and sign in again. Read the requested data and change permissions on the consent screen. If write access remains, do not treat the connection as read-only.

Next, try reading an accessible test meeting with a tool such as SearchMeetings. To test that writes are rejected, use disposable test data for which an unexpected successful write would be acceptable. Claude Code documents that a tool call receiving 403 insufficient_scope under pinned scopes fails with a needs additional permissions message. We did not verify that Circleback produces this rejection. Do not add user:write merely to clear the error. Claude Code scope restrictions

Per-tool permission prompts provide another check. For a reading workflow, avoid blanket permission for write tools and inspect the tool name and arguments. Keep using these prompts to stop changes while the scope restriction remains unverified.

To remove the connection, use claude mcp remove circleback with its configuration scope. For a project-scoped server:

claude mcp remove circleback -s project

Claude Code documents that removing a remote server also deletes the OAuth tokens and client registration it stored for that server.

Retrieve the source statement and date for the next task

Narrow the request from meetings to statements, then to outstanding work. These are read tools in Circleback's official list:

Tool What to retrieve
SearchMeetings Find candidate meetings by date or topic, such as last week's release discussions
ReadMeetings Read notes, your private notes, attendees, action items, and other meeting details
SearchTranscripts Find relevant statements with timestamps
GetTranscriptsForMeetings Retrieve specified meeting transcripts with speaker labels and timestamps
SearchActionItems Search by keyword, pending/done status, assignee, and other filters

ReadMeetings includes private notes, not just shared meeting notes. The server's tool list also includes SearchEmails and SearchCalendarEvents. Check consent and the exposed tools rather than assuming the connection only allows meeting searches. Our unauthenticated experiment did not establish which data an individual account can actually access.

Adding MCP cannot retrieve source statements from discussions that were never recorded or saved. See the huddle and meeting-sync guide for the earlier recording step. A request for Claude Code could be:

Use read tools only. List candidate meetings about last week's release discussion.
After we select the relevant meetings, find statements about postponement and the eventual decision.
Include the meeting name, date, and source statement timestamps. Distinguish proposals from decisions.
List pending action items with their assignees. Keep items without an assignee unassigned.
Do not change meetings, tasks, or sharing settings.

This is a sample request, not a successful real-meeting result. To give AI the context to continue the work, keep the evidence for starting a task alongside its summary. The webhook-to-task implementation also explains why missing ownership should stay unresolved.

Find meetings before requesting full transcripts

Claude Code warns when MCP output exceeds 10,000 tokens and limits it to 25,000 tokens by default. The setting is MAX_MCP_OUTPUT_TOKENS. Before requesting long transcripts together, find candidate meetings, select the relevant ones, then retrieve matching statements or a specific meeting's full transcript. MCP output limits

Free includes MCP, with a separate 30-day history limit

The official pricing page checked on October 19, 2026 included API, MCP, and CLI access in Free. It also limited meeting and recording history to 30 days. Being able to connect does not mean you can retrieve old decisions indefinitely.

Pro listed unlimited meeting history and one year of recording storage. Meeting history and recording retention are separate limits. Plan contents can change; check the dates of the meetings you need and the terms available when subscribing. This article does not compare monthly prices.

Inspect public configuration without signing in

Save circleback-mcp-discovery.mjs and run it with Node.js 22+ or Bun. It needs no additional packages, sends no credentials, and does not register clients.

node circleback-mcp-discovery.mjs
bun circleback-mcp-discovery.mjs
# Optional URL argument: use HTTPS without embedded credentials
node circleback-mcp-discovery.mjs https://circleback.ai/api/mcp

It makes three requests: an unauthenticated initialize, the metadata URL in the 401 header, and metadata for the first advertised authorization server. Its JSON reports the status, advertised scopes, whether the challenge requests a write scope, and a configuration candidate requesting only user. It stops on non-401 responses, missing or malformed headers, and metadata failures. With a URL argument, it contacts that endpoint and the discovery destinations advertised by its metadata. There is no sign-in or tool-execution step.

Running it with Node and Bun on October 19, 2026 returned 401, user and user:write, and challengeRequestsWrite: true in both runtimes. It always reports readOnlyVerified: false to keep public discovery separate from verification of authenticated read-only behavior.

For synthetic integration experiments, see the shared demo. Browse SaaS Workflows to choose examples by their inputs, outputs, and required files.

FAQ

Q. What command connects Circleback MCP to Claude Code?
Run claude mcp add --transport http circleback https://circleback.ai/api/mcp, then authenticate with /mcp in an interactive session or claude mcp login circleback. claude -p cannot run OAuth; sign in interactively first. We did not test sign-in.
Q. Can Circleback MCP be read-only?
Claude Code can pin oauth.scopes to user. Our CLI accepted that configuration, but we have not verified that Circleback omits write access on consent or allows read tools with user alone. Circleback does not explicitly document that mapping. Check per-tool permissions as well.
Q. What can Circleback MCP read and change?
The official list includes meetings, private notes, timestamped and speaker-labeled transcripts, and action items filtered by status or assignee. Email and calendar search tools are also listed. Meeting updates, sharing, and task or tag changes require write access. Account-specific data access was not tested.
Q. Can Free users search older meetings through MCP?
On October 19, 2026, Free included API, MCP, and CLI access with 30-day meeting and recording history. Pro listed unlimited meeting history and one year of recording storage. Check current terms and distinguish connection access from history retention.
Q. What if a full transcript is too large?
Claude Code warns above 10,000 output tokens and defaults to a 25,000-token limit, configured with MAX_MCP_OUTPUT_TOKENS. Find relevant meetings first, then retrieve matching statements or a specific meeting transcript.