Pocket MCP Server Setup for Claude and Cursor

Set up Pocket's MCP server in Claude Code, Claude Desktop, Cursor and other clients: the URL, OAuth or API key, every tool, and what needs Pocket Pro.

Pocket’s MCP server lives at https://public.heypocketai.com/mcp and works with any MCP client that supports remote servers, including Claude Code, Claude Desktop and Cursor. Sign in with OAuth where your client supports it, or send an API key that starts with pk_ as a Bearer header where the client only takes static headers. I run it every day from Claude Code, on top of how I use the Pocket AI recorder . If you do not have recordings in the account yet, set up the recorder first .

Try the recorder I use: Get Pocket . I use and pay for this.

What the Pocket MCP server does

It lets an AI client search recordings, read and update action items, list folders, and on Pro fetch transcripts and ask questions across meetings. Pocket calls it a first release.

The client is whatever you already work in. The server is Pocket’s. Once it is connected, questions like “what did I discuss last week” or “mark that follow-up as done” go to your recordings instead of a blank chat. Pocket’s own examples also include listing this week’s recordings, fetching the last transcript, searching a tag, and bumping the priority of open reminders. Those last two need Pro when they need the full transcript.

URL, transport and sign-in

The endpoint is Streamable HTTP at https://public.heypocketai.com/mcp. Pocket’s docs treat that URL as the server URL for every client on this page.

OAuth is the path Pocket recommends. Add the URL as a remote MCP server and finish the login prompt.

An API key is the path for clients that only take static headers. Create it in Pocket settings under Settings, then Developer, then API Keys. The key starts with pk_. Send it as Authorization: Bearer pk_... (the form Pocket recommends) or Authorization: ApiKey pk_.... Direct HTTP clients also need:

  • Content-Type: application/json
  • Accept: application/json, text/event-stream

If the client uses mcp-remote, forward the Authorization header with --header. Some clients, including Claude Desktop and Cursor, mangle command arguments that contain spaces. Pocket’s examples put the value in an AUTH_HEADER environment variable and pass Authorization:${AUTH_HEADER} so the space in Bearer pk_... never lands in the argument list.

OAuth or API key?

Use OAuth when the client supports it. An API key is a long-lived secret for your whole account. It acts as the person, not the agent . Pocket’s docs do not describe narrowing OAuth scopes, and they do not describe how to revoke a grant on Pocket’s side, so I am not claiming either.

Setup by client

Pocket’s docs list these clients. I am not ranking them.

Claude Code

The OAuth command I use is the one on the hub:

claude mcp add --transport http pocket https://public.heypocketai.com/mcp

The first tool call opens a browser for Pocket sign-in.

The API key form, from Pocket’s docs, is:

claude mcp add pocket --transport http https://public.heypocketai.com/mcp --header "Authorization: Bearer pk_your_api_key_here"

Or the same block in a settings file:

{
  "mcpServers": {
    "pocket": {
      "type": "http",
      "url": "https://public.heypocketai.com/mcp",
      "headers": {
        "Authorization": "Bearer pk_your_api_key_here"
      }
    }
  }
}

Pocket’s docs still show that file as ~/.claude/settings.json. Claude Code’s own docs store user-scoped and local-scoped MCP servers in ~/.claude.json, and project-scoped servers in .mcp.json at the repo root. Restart Claude Code after you edit a file.

Claude Desktop

OAuth is the connector UI: Settings, then Connectors, then Add custom connector, paste https://public.heypocketai.com/mcp, connect, and finish sign-in.

To do that in the Claude app step by step, see how to connect it in Claude .

For an API key, Pocket has you edit the config file and restart Claude Desktop.

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pocket": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://public.heypocketai.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer pk_your_api_key_here"
      }
    }
  }
}

The AUTH_HEADER split is the space-in-arguments workaround above. Pocket’s docs say to look for the plug icon after a restart.

Cursor

Pocket’s docs recommend OAuth for Cursor. The API key block goes in Cursor’s MCP settings, then restart:

{
  "pocket": {
    "command": "npx",
    "args": [
      "-y",
      "mcp-remote",
      "https://public.heypocketai.com/mcp",
      "--header",
      "Authorization:${AUTH_HEADER}"
    ],
    "env": {
      "AUTH_HEADER": "Bearer pk_your_api_key_here"
    }
  }
}

Open Cursor Settings, search for MCP or go to Features, then MCP Servers, add the server, and restart.

Other clients

Littlebird: Pocket is an official integration. Open Littlebird Settings, then Integrations, then Add integration, search for Pocket, and follow the prompts.

Windsurf: add the same mcp-remote plus AUTH_HEADER block Pocket shows for other clients, in ~/.windsurf/mcp.json.

Cline: the same block, in VS Code Settings under Cline MCP.

Any generic Streamable HTTP client: endpoint https://public.heypocketai.com/mcp, transport Streamable HTTP, Authorization: Bearer pk_your_api_key_here, plus the JSON and event-stream headers.

Every Pocket MCP tool

ToolPlanWhat it returns
search_pocket_conversationsEvery planSection hits with a query, or recent full transcripts without one. Folder filter with folderIds.
search_pocket_actionitemsEvery planAction items, filterable by status, priority, category, and due date.
update_pocket_actionitemEvery planThe updated action, written back to the Pocket app.
get_account_infoEvery planEmail, display name, plan, and active organization.
list_pocket_foldersEvery planSpaces and folders with recording counts.
get_pocket_conversationProFull transcript segments, the Notes summary, and a signed audio URL.
query_pocket_meetingsProA synthesized answer plus the source recording ids.

Search has two modes

With a query, it runs hybrid semantic and keyword search and returns up to 8 section hits, with timestamps and summaries. Without a query, it returns recent full transcripts, newest first, paged. If data.meta.hasMore is true, call again with cursor set to data.meta.nextCursor. Recordings that have not been transcribed yet come back with transcriptAvailable: false.

You can also filter by recordingDateAfter, recordingDateBefore, tags, and folderIds. Recency-mode recording objects include transcriptSegments (text, start, end, optional speaker) and a flattened transcript field Pocket keeps for compatibility.

Updates write back

update_pocket_actionitem changes only the fields you send: status (TODO, IN_PROGRESS, COMPLETED, CANCELLED), priority (CRITICAL, HIGH, MEDIUM, LOW), due date, label, context, assignee. You pass the actionItemId from a search result. Setting COMPLETED stamps the completion time, and moving the item back out of COMPLETED clears it. Pass an empty string to clear due date, context, or assignee. Completions, reprioritizations, and reschedules show up in the Pocket app the same as edits made there.

search_pocket_actionitems filters on those same status and priority values, plus category (TASK, MEETING, REMINDER), due dates, a text query, and the date of the source recording.

get_pocket_conversation takes recording_ids and returns, for each recording, the title, date, tags, transcript segments, the Notes-tab summary from the most recent summarization (omitted if none exists yet), and a signed audio URL with expiresIn 3600 seconds. A link pasted into meeting notes is dead by the next meeting. Pocket no longer returns a flattened transcript field from this tool.

query_pocket_meetings takes a natural-language query and an optional language, and returns answer plus sourceRecordings. list_pocket_folders takes no parameters. get_account_info takes none either, and returns userId, email, displayName, plan, tier, and organization when you belong to one.

Free vs Pro for MCP

From the tool table only. Search, action items, folders, and account info work on every Pocket plan. Fetching a full transcript with its summary, and asking a natural-language question across all meetings, need Pocket Pro. Pro-only tools stay unavailable on a free account rather than failing open.

Keep it safe

Treat a pk_ key like a password: not in repos, shared configs, or screenshots. Regenerate it if it leaks. Keep long-lived keys out of the agent when the client can do OAuth instead.

This server holds every conversation you have recorded, so it belongs on your team’s inventory of connected MCP servers .

Transcripts are untrusted input for the model. A recording can carry instructions that were said out loud, which is the same shape as prompt injection through MCP . Folder filters on search are a way to keep a work question inside a work folder. They are not a permission boundary. The key, or the OAuth grant, still sees the whole account.

Troubleshooting

Pocket’s docs, in order:

  • Restart the app after you change a config file.
  • The key starts with pk_.
  • The JSON is valid.
  • If you use mcp-remote, the Authorization header is forwarded with --header.
  • No stray spaces or newlines in the key.

If authentication still fails, regenerate the key in Pocket settings and try again. Tools not showing up is the restart, key-prefix, and valid-JSON list above. Pocket’s own FAQ for this page is the URL, OAuth versus API key, and that the server works with MCP-compatible clients including Claude, Cursor, Littlebird, and other remote MCP clients.

Disclosure: this post contains affiliate links. If you buy through one, this site earns a commission at no extra cost to you. See the privacy policy.

Frequently asked questions

Does Pocket have an MCP server?

Yes. Pocket runs an official remote MCP server at https://public.heypocketai.com/mcp . It works with Claude, Claude Code, Cursor, Littlebird and other clients that support remote MCP servers.

What is the Pocket MCP server URL?

https://public.heypocketai.com/mcp , over Streamable HTTP. Sign in with OAuth, or send an API key that starts with pk_ in the Authorization header as Bearer or ApiKey.

How do I set up the Pocket AI MCP server?

Add the URL as a remote MCP server in your client and finish the OAuth sign-in. If the client only takes static headers, create an API key in Pocket settings under Developer and send it as Authorization: Bearer followed by the key. Restart the client after editing a config file.

Is the Hey Pocket MCP server free?

Search, action items, folders and account info work on every Pocket plan. Fetching full transcripts and asking questions across all your meetings need Pocket Pro.