Agent Switchboard MCP
Agent Switchboard is a curated directory of 900 AI agents, MCP servers, and agentic tools. This MCP server allows AI agents to search the catalog, retrieve agent details, list categories, compare tools, find alternatives, and generate connection bundles for up to 10 listings simultaneously.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://agentswitchboard.dev/api/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (1)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for AI agents and MCP servers by name, category, or access method
- Compare features and facts between two or three different agent listings
- Find alternative tools that can stand in for a specific agent
- Generate a single MCP client configuration bundle for multiple tools
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- agentswitchboard 1.8.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_agents — Search Agents
Search the curated Agent Switchboard directory of AI agents, MCP servers, and agentic tools. Filter by task, category slug, access methods, official (first-party listings from major vendors), verified, and/or auth type; sort by relevance, newest, most skills, or name. Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working. Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"auth": {
"type": "array",
"items": {
"enum": [
"none",
"apiKey",
"oauth2",
"bearer"
],
"type": "string"
},
"description": "Only listings with one of these auth types: none (no key or sign-in needed), apiKey, oauth2, bearer. A listing has one auth type, so several mean any of them"
},
"sort": {
"enum": [
"relevance",
"newest",
"skills",
"name"
],
"type": "string",
"description": "Result order. relevance (default): best match first with search text; without it, best fit first for a task, else A→Z. newest: most recently added first. skills: most skills first. name: A→Z"
},
"task": {
"type": "string",
"description": "Task slug, e.g. \"query-a-database\": only the listings that do that job, best fit first. GET https://agentswitchboard.dev/api/tasks lists the tasks"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Max results per page (1–50)"
},
"query": {
"type": "string",
"description": "Free-text search over name, description, skills, categories, tags, and provider (up to 200 characters; longer text is cut)"
},
"since": {
"type": "string",
"description": "Only listings added to the directory on or after this day: a date (YYYY-MM-DD), or a number of days back with today included (\"7\" is the last 7 days). Add sort \"newest\" to list the newest first"
},
"access": {
"type": "array",
"items": {
"enum": [
"api",
"mcp",
"cli",
"browser-extension",
"extension"
],
"type": "string"
},
"description": "Require ALL of these access methods: api, mcp, cli, browser-extension (\"extension\" is accepted as an alias of browser-extension)"
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Number of results to skip, for pagination"
},
"category": {
"type": "string",
"description": "Category slug, e.g. \"code-devtools\", \"voice-messaging\""
},
"official": {
"type": "boolean",
"description": "Only first-party listings from major vendors (e.g. Notion's own Notion MCP)"
},
"verified": {
"type": "boolean",
"description": "Only Verified listings: checked to work, re-checked monthly"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"total",
"offset",
"limit",
"agents"
],
"properties": {
"limit": {
"type": "integer"
},
"since": {
"type": "string",
"description": "With since: the first day kept (YYYY-MM-DD, UTC)"
},
"total": {
"type": "integer",
"description": "Total matches before paging"
},
"agents": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"slug",
"description",
"provider",
"categories",
"accessMethods",
"authType",
"verified",
"official",
"officialVendor",
"url",
"iconUrl"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"iconUrl": {
"type": [
"string",
"null"
],
"description": "Absolute URL of the listing's 128px PNG icon, served by Agent Switchboard; null when it has none"
},
"authType": {
"type": "string"
},
"official": {
"type": "boolean",
"description": "Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified."
},
"provider": {
"type": "string"
},
"verified": {
"type": "boolean",
"description": "Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working."
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"accessMethods": {
"type": "array",
"items": {
"type": "string"
}
},
"officialVendor": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"offset": {
"type": "integer"
}
},
"additionalProperties": false
}{
"title": "Search Agents",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_agent — Get Agent Details
Full detail for one agent by slug: skills, auth, streaming/push support, tags, provider links, and useItNow: how to start using it (MCP client config, install command, API base URL, setup links). Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working. Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Agent slug, e.g. \"playwright-mcp\""
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"slug",
"description",
"provider",
"categories",
"accessMethods",
"authType",
"verified",
"official",
"officialVendor",
"url",
"iconUrl",
"agentUrl",
"providerUrl",
"skills",
"tags",
"supportsStreaming",
"supportsPushNotifications",
"mcpEndpoint",
"mcpCommand",
"install",
"quickstartUrl",
"apiBaseUrl",
"useItNow"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"skills": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"additionalProperties": true
}
},
"addedAt": {
"type": "string"
},
"iconUrl": {
"type": [
"string",
"null"
],
"description": "Absolute URL of the listing's 128px PNG icon, served by Agent Switchboard; null when it has none"
},
"install": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"command"
],
"properties": {
"type": {
"type": "string"
},
"command": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The command that installs its CLI"
},
"agentUrl": {
"type": "string"
},
"authType": {
"type": "string"
},
"official": {
"type": "boolean",
"description": "Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified."
},
"provider": {
"type": "string"
},
"useItNow": {
"type": "object",
"required": [
"tryThisFirst",
"mcp",
"cli",
"api",
"extension"
],
"properties": {
"api": {
"anyOf": [
{
"type": "object",
"required": [
"baseUrl",
"auth",
"docsUrl"
],
"properties": {
"auth": {
"type": "string"
},
"baseUrl": {
"type": [
"string",
"null"
]
},
"docsUrl": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"cli": {
"anyOf": [
{
"type": "object",
"required": [
"install",
"docsUrl"
],
"properties": {
"docsUrl": {
"type": "string"
},
"install": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"command"
],
"properties": {
"type": {
"type": "string"
},
"command": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"mcp": {
"anyOf": [
{
"type": "object",
"required": [
"endpoint",
"command",
"clientConfig",
"cursorInstallUrl",
"claudeConnectorUrl",
"claudeCodeCommand",
"setupPrompt",
"docsUrl"
],
"properties": {
"command": {
"type": [
"string",
"null"
]
},
"docsUrl": {
"type": "string"
},
"endpoint": {
"type": [
"string",
"null"
]
},
"setupPrompt": {
"type": "string"
},
"clientConfig": {
"anyOf": [
{
"type": "object",
"required": [
"mcpServers"
],
"properties": {
"mcpServers": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"cursorInstallUrl": {
"type": [
"string",
"null"
]
},
"claudeCodeCommand": {
"type": [
"string",
"null"
]
},
"claudeConnectorUrl": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"extension": {
"anyOf": [
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tryThisFirst": {
"anyOf": [
{
"type": "object",
"required": [
"lead",
"prompts"
],
"properties": {
"lead": {
"type": "string"
},
"prompts": {
"type": "array",
"items": {
"type": "object",
"required": [
"skill",
"text"
],
"properties": {
"text": {
"type": "string"
},
"skill": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"description": "How to start using it, per access method: client config and install links for MCP, the install command for a CLI, base URL and auth for an API. Commands and addresses come from the vendor's own docs; when there are none, docsUrl is where its instructions are.",
"additionalProperties": false
},
"verified": {
"type": "boolean",
"description": "Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working."
},
"apiBaseUrl": {
"type": [
"string",
"null"
],
"description": "Base URL of the vendor's public API"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"mcpCommand": {
"type": [
"string",
"null"
],
"description": "The command that runs its MCP server locally"
},
"description": {
"type": "string"
},
"mcpEndpoint": {
"type": [
"string",
"null"
],
"description": "The vendor's hosted MCP server address"
},
"providerUrl": {
"type": "string"
},
"accessMethods": {
"type": "array",
"items": {
"type": "string"
}
},
"quickstartUrl": {
"type": [
"string",
"null"
],
"description": "The vendor's setup or getting-started page"
},
"officialVendor": {
"type": [
"string",
"null"
]
},
"supportsStreaming": {
"type": "boolean"
},
"supportsPushNotifications": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Get Agent Details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_categories — List Categories
All directory categories with live agent counts. Slugs are valid inputs for search_agents.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"categories"
],
"properties": {
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"name"
],
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"agentCount": {
"type": "number"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "List Categories",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_agents — Compare Agents
Put 2 or 3 listings side by side, as the site's /compare page does. For each listing: the facts that set it apart from the others ("Only one with a CLI", "No auth required", "Most skills (12)"). Then one row per field, with each listing's value by slug: what it is, provider, official vendor, verified, access, auth, MCP server, CLI install, API base URL, skills, streaming, push, categories, tags, listed since. A row where every listing agrees has same: true. Facts from the listings' own data, never a verdict. A curated comparison of the same listings adds its intro line. Unknown or repeated slugs, and any past 3, are left out with a note.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slugs"
],
"properties": {
"slugs": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"description": "Listing slugs to compare, in column order: 2 or 3, e.g. [\"deepgram\", \"assemblyai\"]"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"url",
"intro",
"agents",
"rows",
"notes"
],
"properties": {
"url": {
"type": "string",
"description": "The comparison on the site"
},
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"label",
"same",
"values"
],
"properties": {
"key": {
"type": "string"
},
"same": {
"type": "boolean",
"description": "Every listing has the same value"
},
"label": {
"type": "string"
},
"values": {
"type": "object",
"description": "Each listing's value, by slug",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
},
"note": {
"type": "string"
}
},
"description": "A command or address from the listing's docs, with what it is",
"additionalProperties": false
}
]
}
}
},
"additionalProperties": false
}
},
"intro": {
"type": [
"string",
"null"
],
"description": "A curated comparison's editorial line; null for any other mix"
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Named listings that were left out, and why"
},
"title": {
"type": "string"
},
"agents": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"slug",
"url",
"iconUrl",
"description",
"provider",
"categories",
"accessMethods",
"verified",
"official",
"authType",
"setsApart"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"iconUrl": {
"type": [
"string",
"null"
],
"description": "Absolute URL of the listing's 128px PNG icon, served by Agent Switchboard; null when it has none"
},
"authType": {
"type": "string"
},
"official": {
"type": "boolean",
"description": "Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified."
},
"provider": {
"type": "string"
},
"verified": {
"type": "boolean",
"description": "Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working."
},
"setsApart": {
"type": "array",
"items": {
"type": "string"
}
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"accessMethods": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Compare Agents",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}alternatives_to — Alternatives To
Listings that could stand in for one listing, strongest first, as on its /agents/<slug>/alternatives page. Each alternative is in the listing's main category, offers at least one of its access methods, and overlaps on what it does (shared skills and tags, rarer ones counting for more). Each comes with why: the access methods both offer and what they have in common. Up to 8. Fewer, or none, rather than a weak match. Also returns a link comparing the listing with its top two alternatives.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Agent slug, e.g. \"deepgram\""
},
"limit": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Most alternatives to return (1–8, default 8)"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent",
"total",
"url",
"compareUrl",
"basis",
"alternatives"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "Its alternatives page; null when it has too few for one"
},
"agent": {
"type": "object",
"required": [
"name",
"slug",
"url",
"iconUrl",
"description",
"provider",
"categories",
"accessMethods",
"verified",
"official",
"authType"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"iconUrl": {
"type": [
"string",
"null"
],
"description": "Absolute URL of the listing's 128px PNG icon, served by Agent Switchboard; null when it has none"
},
"authType": {
"type": "string"
},
"official": {
"type": "boolean",
"description": "Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified."
},
"provider": {
"type": "string"
},
"verified": {
"type": "boolean",
"description": "Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working."
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"accessMethods": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"basis": {
"type": "string",
"description": "What every alternative has in common with the listing"
},
"total": {
"type": "integer",
"description": "How many alternatives it has, up to 8"
},
"compareUrl": {
"type": [
"string",
"null"
],
"description": "The listing side by side with its top two alternatives"
},
"alternatives": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"slug",
"url",
"iconUrl",
"description",
"provider",
"categories",
"accessMethods",
"verified",
"official",
"authType",
"sharedAccess",
"inCommon",
"why"
],
"properties": {
"url": {
"$ref": "#/properties/agent/properties/url"
},
"why": {
"type": "string"
},
"name": {
"$ref": "#/properties/agent/properties/name"
},
"slug": {
"$ref": "#/properties/agent/properties/slug"
},
"iconUrl": {
"$ref": "#/properties/agent/properties/iconUrl"
},
"authType": {
"$ref": "#/properties/agent/properties/authType"
},
"inCommon": {
"type": "array",
"items": {
"type": "string"
},
"description": "Skills and tags both have, rarest first"
},
"official": {
"$ref": "#/properties/agent/properties/official"
},
"provider": {
"$ref": "#/properties/agent/properties/provider"
},
"verified": {
"$ref": "#/properties/agent/properties/verified"
},
"categories": {
"$ref": "#/properties/agent/properties/categories"
},
"description": {
"$ref": "#/properties/agent/properties/description"
},
"sharedAccess": {
"type": "array",
"items": {
"type": "string"
},
"description": "Access methods both offer"
},
"accessMethods": {
"$ref": "#/properties/agent/properties/accessMethods"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Alternatives To",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}connect_bundle — Connect Bundle
One MCP client config to paste ({"mcpServers": …}, as Cursor and other MCP clients read it) for up to 10 listings, and how each one connects. A listing is in the config when its own docs give a hosted server address or a local command. An MCP server whose docs give neither comes with its setup guide, and setupPrompt asks a coding agent to set all of those up. A listing without an MCP server comes with its CLI install command, API address or docs. Also returns a claude mcp add command for each server in the config, for Claude Code, and the /stack link for the listings. Nothing is guessed: every address and command is copied from the vendor's docs, as on the listing's page.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slugs"
],
"properties": {
"slugs": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"description": "Listing slugs, in the order to list them: 1 to 10, e.g. a stack's items"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"summary",
"stackUrl",
"config",
"claudeCode",
"setupPrompt",
"items",
"notes"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"slug",
"url",
"iconUrl",
"description",
"provider",
"categories",
"accessMethods",
"verified",
"official",
"authType",
"how",
"server",
"docsUrl",
"note"
],
"properties": {
"how": {
"enum": [
"config",
"guide",
"other"
],
"type": "string",
"description": "config: in the config; guide: an MCP server to set up from its guide; other: no MCP server"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"note": {
"type": "string",
"description": "How it connects"
},
"slug": {
"type": "string"
},
"server": {
"anyOf": [
{
"$ref": "#/properties/config/anyOf/0/properties/mcpServers/additionalProperties"
},
{
"type": "null"
}
],
"description": "Its entry in the config, under its slug"
},
"docsUrl": {
"type": "string",
"description": "Its setup instructions"
},
"iconUrl": {
"type": [
"string",
"null"
],
"description": "Absolute URL of the listing's 128px PNG icon, served by Agent Switchboard; null when it has none"
},
"authType": {
"type": "string"
},
"official": {
"type": "boolean",
"description": "Official: a first-party listing, published by the company behind the product under its own domain or GitHub org (e.g. Notion's own Notion MCP, not a community build), where that company is a major vendor (publicly traded, a frontier AI lab, or valued around $1B+). It records who publishes the product, not a paid placement, and is separate from Verified."
},
"provider": {
"type": "string"
},
"verified": {
"type": "boolean",
"description": "Verified: we checked it works — its URLs load and its declared access (API, MCP, CLI or extension) responds. Re-checked monthly; the label drops if it stops working."
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"accessMethods": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Named listings that were left out, and why"
},
"config": {
"anyOf": [
{
"type": "object",
"required": [
"mcpServers"
],
"properties": {
"mcpServers": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"command",
"args"
],
"properties": {
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"command": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The MCP client config to paste; null when no listing has an address or command to copy"
},
"summary": {
"type": "string",
"description": "How many are in the config, to set up from a guide, and without an MCP server"
},
"stackUrl": {
"type": "string",
"description": "These listings as a shared stack on the site"
},
"claudeCode": {
"type": "array",
"items": {
"type": "string"
},
"description": "A claude mcp add command for each server in the config"
},
"setupPrompt": {
"type": [
"string",
"null"
],
"description": "For a coding agent: set up each MCP server that has only a setup guide"
}
},
"additionalProperties": false
}{
"title": "Connect Bundle",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}submit_listing — Submit a Listing
Suggest a new listing for the Agent Switchboard directory. This opens a PUBLIC GitHub issue that the maintainer reviews by hand; it does not publish anything. Use it only when the user asks to submit or list a product, after you show them the name, URL, and description you will send and they agree. Call search_agents first: if the product is already listed, tell the user instead. Limited to 5 submissions per hour per caller and one per URL per day. Not safe to retry blindly: each call that returns status "filed" opens a new issue.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"url",
"description"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "The product's own homepage, docs, or GitHub repo (https)"
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Product name, e.g. \"Acme MCP\""
},
"access": {
"type": "array",
"items": {
"enum": [
"api",
"mcp",
"cli",
"browser-extension"
],
"type": "string"
},
"maxItems": 4,
"description": "How agents reach it: api, mcp, cli, browser-extension"
},
"category": {
"type": "string",
"maxLength": 60,
"description": "Suggested category slug from list_categories"
},
"description": {
"type": "string",
"maxLength": 1500,
"minLength": 20,
"description": "What it does and who it is for, in plain words (20–1500 characters)"
},
"contact_email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "Optional. Sent privately to the maintainer for follow-up, never posted. Only include an address the user gave you for this purpose."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"status",
"message"
],
"properties": {
"status": {
"enum": [
"filed",
"already_listed",
"rate_limited",
"unavailable"
],
"type": "string"
},
"message": {
"type": "string"
},
"issueUrl": {
"type": "string"
},
"existingSlug": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Submit a Listing",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 638 ms
- 95th percentile latency
- 638 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 638 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http agent-switchboard-mcp https://agentswitchboard.dev/api/mcpCodex
codex mcp add agent-switchboard-mcp --url https://agentswitchboard.dev/api/mcpCursor
{
"mcpServers": {
"agent-switchboard-mcp": {
"url": "https://agentswitchboard.dev/api/mcp"
}
}
}Cline
{
"mcpServers": {
"agent-switchboard-mcp": {
"type": "streamableHttp",
"url": "https://agentswitchboard.dev/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"agent-switchboard-mcp": {
"type": "http",
"url": "https://agentswitchboard.dev/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http agent-switchboard-mcp https://agentswitchboard.dev/api/mcpClaude Desktop
https://agentswitchboard.dev/api/mcpWindsurf
{
"mcpServers": {
"agent-switchboard-mcp": {
"serverUrl": "https://agentswitchboard.dev/api/mcp"
}
}
}Let your agent find its tools
Find servers like Agent Switchboard MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.