The MCP Registry
OpenSwarm includes a built-in MCP registry browser that aggregates servers from two sources:- Community — the official Model Context Protocol registry, containing hundreds of community-contributed servers
- Google — Google’s catalog of MCP servers for their Cloud and Workspace services
Browsing the Registry
Open the registry from New Action → Browse MCP Registry in the Action Library. You can:- Search by name, title, description, or keywords
- Filter by source (Community or Google)
- Sort by name or GitHub stars
- Load more results with pagination (20 servers per page)
Installing from the Registry
Click Install on any server to add it as an action. What happens next depends on the server type:- stdio server (with known config)
- Remote server (Google Cloud)
- Server requiring configuration
OpenSwarm automatically derives the MCP config from the repository URL (e.g.,
npx -y github:owner/repo) and installs it immediately. Tool discovery runs automatically after install.Adding a Custom MCP Server
If your server isn’t in the registry, use New Action → Create Custom to add it manually. You need to provide:- Name — a display name for the action
- Description — what the server does
- Command — the shell command to run (for stdio servers)
MCP Config Structure
Every MCP action has anmcp_config that tells OpenSwarm how to connect. The three supported transport types:
stdio
The server runs as a local subprocess. OpenSwarm spawns it and communicates over stdin/stdout.OpenSwarm resolves commands against
PATH and common user-local bin directories — including ~/.bun/bin, ~/.cargo/bin, ~/.local/bin, ~/.volta/bin, nvm/fnm node versions, and /opt/homebrew/bin. You don’t need to specify absolute paths.http (Streamable HTTP)
The server exposes a single HTTP endpoint that accepts JSON-RPC POST requests.sse (Server-Sent Events)
The legacy SSE transport — the server exposes a GET endpoint for event streams and a POST endpoint for messages.When connecting to an
http server, OpenSwarm tries Streamable HTTP first. If that fails, it automatically falls back to SSE transport.Tool Discovery
After installing an MCP server, OpenSwarm runs tool discovery — it connects to the server, sends aninitialize handshake, and calls tools/list to enumerate all available actions.
Discovery does three things:
- Enumerates tools — gets the name, description, and input schema for every action the server supports
- Categorizes actions — automatically classifies each action as
readorwritebased on its name prefix:- Read prefixes:
get,list,read,search,fetch,find,query,browse,check,describe,show,download,analyze,explain - Write prefixes:
create,write,delete,update,send,remove,modify,add,set,put,post,insert,move,copy,rename
- Read prefixes:
- Groups by service — maps actions to logical services (e.g., Gmail, Calendar, Drive) and provider groups (e.g., Google, Twitter, Reddit) for organized permission management
Credential Injection
OpenSwarm automatically injects credentials into MCP server connections based on transport type:| Transport | Auth Type | How Credentials Are Injected |
|---|---|---|
| stdio | env_vars | Credentials are set as environment variables in the subprocess |
| stdio | oauth2 | OAuth access token set as OAUTH_ACCESS_TOKEN env var. Refresh token, client ID, and client secret also injected. |
| http / sse | env_vars | Credentials with key names like authorization or api_key are set as Authorization: Bearer headers |
| http / sse | oauth2 | OAuth access token set as Authorization: Bearer header |
PATH environment variable to include common package manager bin directories, ensuring commands like npx, bunx, and uvx resolve correctly even in packaged app environments.
