Skip to main content
The Particle Pro MCP server runs at https://mcp.particle.pro over Streamable HTTP. Point any modern MCP client at the URL and the client handles the OAuth handshake automatically.

Install

One-click install: Add to Cursor · Add to VS Code — both encode the same config as the manual tabs below, so use whichever you prefer.
claude mcp add --transport http particle https://mcp.particle.pro
Agent-assisted setup: in any coding agent that can edit files (Claude Code, Cursor), you can skip the manual config entirely — paste:
Add the Particle Pro MCP server to this client's MCP configuration. It is a
remote Streamable HTTP server at https://mcp.particle.pro using OAuth (no
command/args, no API key in the config). Find this client's MCP config file,
add it under the name "particle", and tell me how to trigger the OAuth
approval.
Claude Desktop alternative — UI flow: Settings → Connectors → Add custom connector, paste https://mcp.particle.pro, complete OAuth in the browser. Easier than editing JSON and avoids the mcp-remote bridge entirely.

ChatGPT

ChatGPT connects through its connector UI rather than a config file (requires a Pro, Plus, Business, Enterprise, or Edu plan):
  1. Open Settings → Apps → Advanced settings and enable Developer mode.
  2. Back in Settings → Apps, choose Create app and enter https://mcp.particle.pro as the MCP server URL, with OAuth as the authentication method.
  3. Complete the OAuth approval in the browser pop-up, picking the project the agent should act on.
  4. In a conversation, enable the connector from the composer’s tools menu, then run the sanity check below.
See OpenAI’s developer-mode guide for connector specifics on their side.

Calling it from an LLM API

Server-side agents can hand the MCP server straight to a model API — no MCP client library needed. Both providers connect to https://mcp.particle.pro themselves; authenticate with a project API key as the bearer:
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Which podcasts discussed Anthropic this week?"}],
    "mcp_servers": [{
      "type": "url",
      "url": "https://mcp.particle.pro",
      "name": "particle",
      "authorization_token": "'$PARTICLE_API_KEY'"
    }],
    "tools": [{"type": "mcp_toolset", "mcp_server_name": "particle"}]
  }'
Every tool is read-only (require_approval: "never" is safe here); calls meter to the project that owns the key exactly like any other MCP traffic.

Any other client

Point the client at https://mcp.particle.pro over Streamable HTTP and prefer OAuth when the client supports it. Stdio-only clients bridge through mcp-remote (tab above). Headless or programmatic callers should read Authentication. You’ll need a Particle Pro account with an active project. If you don’t have one, sign up at platform.particle.pro first.

OAuth flow

The first tool call triggers an OAuth flow:
  1. Your client opens https://api.particle.pro/oauth/authorize?... in a browser.
  2. You sign in to Particle Pro (if not already), then approve the requested scopes (mcp:read, mcp:write by default) and pick which project the agent should act on.
  3. The browser redirects back to your client’s local callback. The client exchanges the authorization code for tokens, stores them, and re-issues the original tool call.
Subsequent calls reuse the cached tokens. Refresh happens automatically — see Authentication for the full flow and the dynamic-client-registration details.

Sanity check

Once connected, ask the agent to call a low-cost read tool. A good first call:
Use particle particle_entity_resolve to look up "Marc Andreessen".
Expected response (every tool returns a single markdown text block; pass output_format: "json" to receive the structured JSON form instead):
## Entity matches for "Marc Andreessen" (1)

### Marc Andreessen

- **Type:** person
- **Person slug:** marc-andreessen
- **Title:** General Partner
- **Company:** Andreessen Horowitz
- **Wikipedia:** https://en.wikipedia.org/wiki/Marc_Andreessen
The handle row — - **Person slug:** for a person — is what every person_slug parameter expects (marc-andreessen here). Feed it into particle_podcast_find_mentions, particle_podcast_search_transcripts, or particle_podcast_list_episodes. (Company results lead with - **Type:** company and a - **Company slug:** row plus - **Ticker:** / - **Domain:**.)

A short agent loop

A typical research workflow chains a small number of tools:
  1. Resolve names to slugsparticle_entity_resolve for any named thing (returns a typed handle), particle_person_resolve for people only, particle_company_resolve for orgs by ticker/domain, particle_podcast_resolve for shows.
  2. Discover episodes or dialogueparticle_podcast_search_transcripts for topic-based ranking (relevant clips arrive inline), particle_podcast_find_mentions for “every line about X”, particle_podcast_list_episodes for filter-driven discovery.
  3. Drill inparticle_podcast_get_episode with include: ["segments", "clips", "transcript"] for the full picture.
  4. Pivot to ads, rankings, and brand safety — opt-in categories like particle_company_get_podcast_ad_presence (“where does company X advertise”), particle_podcast_get_rankings (chart movers/history), and particle_podcast_get_suitability_leaderboard (safest publishers). These are callable by name even when not advertised — see Tool sets & discovery.
Every output is a single markdown text block. Agents read the bolded KV labels to extract identifiers and chain them into the next call. Two shapes appear: top-level summary lines under ## Heading use flat **Key:** value, while per-item field rows under ### Item title use - **Key:** value bullets. Either way, the bold-key prefix (e.g. **Slug:**, **Episode slug:**) is what to grep for.

Troubleshooting

  • “server requires authentication” — your client hit the MCP endpoint without a bearer token, or the token failed verification. Re-run the OAuth flow; if you persist tokens to disk, delete the cache for mcp.particle.pro.
  • Browser callback hangs — confirm the client’s redirect_uri matches one it registered. Most desktop MCP clients use http://localhost:<port>/callback; the AS allows localhost redirects without prior approval.
  • 403 on a tool call after a successful connection — the OAuth grant is for the wrong project. Revoke the connection (Manage connections) and reconnect, picking the correct project at the consent screen.
  • Specific tool errors — see the Errors page for how tool failures surface as MCP isError: true results and how to react to each kind.

Next steps

Authentication

OAuth 2.1 end-to-end — useful when wiring up a custom client.

Tool reference

Every input, output, and example for every tool.

Tool sets & discovery

Default vs opt-in categories, the include/exclude selectors, and the meta-tools.