# Speakeasy Platform MCP server

Manage MCP servers, plugins, skills, and access from your AI agent. Connect to the Speakeasy AI control plane through the Speakeasy Platform MCP server.

## Connect your agent

[Agent installation guide](https://www.speakeasy.com/platform-mcp/guide.md)

Endpoint: https://ai.speakeasy.com/platform-mcp
Transport: Streamable HTTP
Authentication: OAuth 2.1

### Claude Code

Run in Claude Code

```text
/plugin marketplace add https://github.com/speakeasy-api/marketplace
/plugin install speakeasy@speakeasy
```

Run /mcp, select Platform MCP, and choose Authenticate. To receive updates, open /plugin → Marketplaces → speakeasy → Enable auto-update.

Direct MCP configuration:

```json
{
  "mcpServers": {
    "platform": {
      "type": "http",
      "url": "https://ai.speakeasy.com/platform-mcp"
    }
  }
}
```

### Codex

Run in your terminal

```text
codex plugin marketplace add https://github.com/speakeasy-api/marketplace
codex /plugins
```

Find speakeasy-codex in the Speakeasy marketplace and install it for your account. Start a session and ask to list your Speakeasy projects, then complete browser authorization. Verify the CLI and desktop app separately.

Direct MCP configuration:

```toml
[mcp_servers.platform]
url = "https://ai.speakeasy.com/platform-mcp"
```

### Cursor

Marketplace repository

```text
https://github.com/speakeasy-api/marketplace
```

In the Cursor dashboard for the team you administer, open Settings → Plugins → Import. Paste this URL, then install speakeasy-cursor for your account. Start an agent session and complete browser authorization on first use.

Direct MCP configuration:

```json
{
  "mcpServers": {
    "platform": {
      "type": "http",
      "url": "https://ai.speakeasy.com/platform-mcp"
    }
  }
}
```

### Claude Cowork

Marketplace repository

```text
https://github.com/speakeasy-api/marketplace
```

As an organization admin, open Claude.ai → Organization Settings → Plugins → Add plugin → Sync from GitHub. Paste this URL, then install speakeasy for your account. Open a new Cowork session and authorize the connection.

Direct MCP configuration:

```json
{
  "mcpServers": {
    "platform": {
      "type": "http",
      "url": "https://ai.speakeasy.com/platform-mcp"
    }
  }
}
```

### OpenCode

Run in your terminal

```text
opencode mcp add
opencode mcp auth platform
opencode mcp list
```

In the add wizard, choose a remote server, name it platform, and enter https://ai.speakeasy.com/platform-mcp. Then authenticate in your browser and check the connection. This connects the MCP server without the reviewed skills.

Direct MCP configuration:

```json
{
  "mcp": {
    "platform": {
      "type": "remote",
      "url": "https://ai.speakeasy.com/platform-mcp",
      "enabled": true
    }
  }
}
```

### Antigravity

Run in your terminal

```text
agy mcp add platform https://ai.speakeasy.com/platform-mcp
```

Launch Antigravity with agy, run /mcp, and authenticate the platform server in your browser. This connects the MCP server without the reviewed skills.

Direct MCP configuration:

```json
{
  "mcpServers": {
    "platform": {
      "serverUrl": "https://ai.speakeasy.com/platform-mcp"
    }
  }
}
```

### Other clients

Remote MCP endpoint

```text
https://ai.speakeasy.com/platform-mcp
```

Add this endpoint to a client that supports streamable HTTP and OAuth. Restart the client if needed and complete browser authorization on first use. Direct connections do not install the reviewed skills.

Direct MCP configuration:

```json
{
  "mcpServers": {
    "platform": {
      "type": "http",
      "url": "https://ai.speakeasy.com/platform-mcp"
    }
  }
}
```

## Make the first connection

1. Choose your agent and follow its installation steps.
2. Complete browser authorization and choose your Speakeasy organization.
3. Use the prompt below to see your organization and accessible projects.

## Your first conversation

Show my connected Speakeasy organization and the projects I can access. Summarize what is available without making changes.

## Find the right MCP server

Find a server in the catalog or by its remote URL, inspect it, and add it to a project.

> Ask me which MCP server I want to deploy. Look it up in the Speakeasy catalog first. If it is not in the catalog, search the web for its remote MCP URL and confirm that URL with me before deploying it. Show the available options and eligible projects, then guide me through setup.

## Review your risk policies

Inspect the policies that govern your agents and the audiences they apply to.

> Show the risk policies for my selected project and explain who they apply to. Highlight what is enabled without changing any policy.

## Understand who has access

Inspect access roles and the tools they allow on a selected MCP server.

> Help me choose a project and MCP server, then show which roles can access it and which tools each role allows. Do not change access.

## Investigate failing tool calls

Find failures in a project's MCP activity and narrow down the affected tools.

> For my selected project, summarize failed MCP tool calls over the last 24 hours. Group them by server and tool, and explain the limits of the available evidence.

## Explore the tools

### Orientation

- `get_platform_context` (Read): Reports the connected organization and an overview of how MCP servers reach people.
- `list_projects` (Read): Lists the projects in the organization by identifier, name, and slug.

### Projects

- `create_project` (Write): Creates an empty project in the organization.
- `rename_project` (Write): Changes the display name of one exact project.

### Catalog and inspection

- `search_mcp_catalog` (Read): Searches the reviewed MCP Catalog by query or provider key.
- `inspect_mcp_candidate` (Read): Looks at one candidate before adding it, either a catalog entry or an HTTPS streamable HTTP URL.

### Adding MCP servers

- `register_catalog_mcp` (Write): Adds one catalog entry to a named project with only its declared non-secret configuration.
- `register_remote_mcp` (Write): Adds an MCP server by its streamable HTTP URL to a named project.
- `get_setup_handoff` (Write): Returns the dashboard URL where the rest of a server's setup is finished, including its source and authentication.
- `attach_platform_mcp_identity_provider` (Write): Connects a server to the OAuth provider it advertises by resolving provider metadata and performing dynamic client registration.
- `create_mcp_from_functions` (Write): Creates a new MCP server in a project from tools the project's functions already produce.

### Review requests

- `request_mcp_review` (Write): Asks an organization administrator to review an MCP server for one project.
- `get_my_mcp_review_request` (Read): Checks the status of one MCP review request the caller submitted, returning only the caller's own privacy-minimized state and never other requesters, evidence, or administrator rationale.

### Managing MCP servers

- `find_mcp` (Read): Finds servers already set up.
- `get_mcp` (Read): Returns a summary of one server in a named project.
- `update_mcp_metadata` (Write): Renames a fully set-up server.
- `disable_mcp` (Write): Turns a server off so people stop being able to use it.
- `enable_mcp` (Write): Turns a disabled server back on and republishes the plugins that already carry it.
- `get_mcp_connection_settings` (Read): Reads the stored network mode, visibility, and endpoint identifiers for one MCP server or gateway.
- `set_mcp_address` (Write): Creates or updates the address for one MCP server or gateway.
- `set_mcp_network_access` (Write): Changes network access for one MCP server or gateway to public_only, dual, or private_only.
- `get_network_ingress` (Read): Reports the organization's private network ingress: whether private networking is switched on, whether an ingress is configured and enabled, its latest observed status and private DNS name, and the one next action standing between the organization and private MCP access.
- `list_project_tools` (Read): Lists the tools a project produces, with the function or API document each one came from.
- `add_tools_to_mcp` (Write): Adds named tools to one exact MCP server, without disturbing the tools it already exposes.
- `remove_tools_from_mcp` (Write): Removes named tools from one exact MCP server, leaving the rest of its tools in place.

### Readiness and troubleshooting

- `get_mcp_readiness` (Read): Reports whether a server is working from the last stored check.
- `get_mcp_repair_plan` (Read): Lists the safe next actions for a server that is not working, based on the last stored check.
- `get_mcp_diagnostics` (Read): Works out why a server is failing by combining the latest server-side check, its call outcomes against the organization baseline, and which apps reported failures.
- `get_xaa_readiness` (Read): Reports stored Okta Cross-App Access readiness for one project and MCP server, with the derived state and the exchange evidence behind it.

### Client admission

- `get_mcp_client_admission` (Read): Shows the admission setting in force, the settings available, and any custom client ID metadata URLs the server allows.
- `set_mcp_client_admission` (Write): Sets the admission mode to presets (known apps only), open (any app with a valid client ID metadata document), or disabled (apps fall back to dynamic client registration).

### Plugins

- `list_plugins` (Read): Lists the plugins in a project with how much each carries, who receives it, and whether it has been published.
- `get_plugin` (Read): Returns one plugin and its contents: its MCP servers, its skills with the version each is fixed to, and up to 100 current assignments.
- `list_plugin_assignments` (Read): Lists the roles and directory groups that can receive plugins in a project, each with a privacy-safe member count where available.
- `get_my_install_instructions` (Read): Returns non-secret, client-specific install guidance for one assigned plugin or one MCP server the caller may connect to.
- `get_my_mcp_access` (Read): Checks the caller's own current read and connection access to one exact MCP server, without creating an access challenge.
- `get_my_mcp_connection_status` (Read): Checks the caller's own authorization state for one exact MCP server and returns the endpoint for reconnecting.
- `distribute_mcp_to_plugin` (Write): Adds a working server to an existing plugin so everyone the plugin is shared with receives it.
- `remove_mcp_from_plugin` (Write): Removes a server from a plugin, undoing the distribution.
- `set_plugin_assignments` (Write): Replaces the complete set of roles and groups a plugin is assigned to.
- `create_plugin` (Write): Creates one empty plugin in a project.
- `rename_plugin` (Write): Changes the display name of one exact plugin.
- `republish_plugin` (Write): Requests a publish of a project's plugin packages now, for a plugin whose published package is stale, instead of waiting for the periodic refresh.
- `remove_plugin_server` (Write): Removes one exact server membership from a plugin, including an entry added automatically.

### Assistants

- `upgrade_assistant_workload_identity` (Write): Gives one assistant an agent and a workload identity, either a new agent or an existing agent of the same project.

### Skills

- `list_skills` (Read): Lists the skills in a project, newest change first, with the number of versions each has.
- `get_skill` (Read): Reads one skill.
- `list_skill_versions` (Read): Lists a skill's versions, newest first.
- `list_skill_feedback` (Read): Reviews privacy-minimized feedback and outcome trends for one skill, with aggregate counts and no user identifiers.
- `list_skill_suggestions` (Read): Reviews open proposed improvements to skills in a project, with rationale for each, without applying any suggestion.
- `list_skill_suggestion_feedback` (Read): Reviews the privacy-minimized feedback cited by one proposed skill change, without applying it.
- `list_skill_insights` (Read): Reports which of a project's skills are paying off: uses, sessions, the cost of those sessions, and, where sessions were scored, how well each skill did and how much time it saved.
- `compare_skill_versions` (Read): Reports the same figures as list_skill_insights for one skill, broken down per version, newest first, including versions nobody used.
- `create_skill` (Write): Creates a skill from complete SKILL.md content, up to 64 KiB.
- `add_skill_version` (Write): Records a new version from complete replacement content.
- `update_skill_metadata` (Write): Renames a skill or changes its display name and summary without changing its instructions.
- `approve_skill_suggestion` (Write): Takes a proposed improvement from list_skill_suggestions, records it as the skill's new version, and closes the suggestion, as approving it in the dashboard does.
- `dismiss_skill_suggestion` (Write): Discards a proposed improvement without changing the skill.
- `list_skill_distributions` (Read): Lists which plugins carry which skills in a project, oldest first, with the version each distribution resolves to and whether it follows the skill's latest version or is pinned.
- `distribute_skill` (Write): Gives a skill to one plugin or one assistant in the same project.
- `undistribute_skill` (Write): Takes a skill back from one plugin or one assistant so agents there stop loading it.
- `query_skill_usage` (Read): Summarizes observed skill activations for one project, with exact activation counts and privacy-suppressed user counts.
- `list_skill_usage_users` (Read): Lists masked people observed activating one skill, with short-lived references for a focused follow-up.
- `get_user_skill_status` (Read): Confirms whether one person, by a reference from the usage list, was observed activating the same skill in the same window.

### Access control

- `list_access_roles` (Read): Lists the organization's roles and summarizes the MCP access each carries.
- `get_mcp_access` (Read): Shows which roles can enter one server and which known tools or behavior classes each can use.
- `list_access_members` (Read): Finds members by an identity query of at least three characters or by role.
- `create_mcp_access_role` (Write): Creates a custom role in one project with MCP access rules for servers in that project.
- `update_mcp_access_role` (Write): Adds or removes MCP access rules on a custom role while preserving every non-MCP grant.
- `assign_mcp_access_role` (Write): Adds one custom role, confined to one server, to one member without removing the member's current roles.

### Risk policies and exclusions

- `list_risk_policies` (Read): Lists privacy-safe risk policy summaries in a project.
- `get_risk_policy` (Read): Reads one risk policy with its compatibility metadata.
- `create_risk_policy` (Write): Creates a standard or prompt-based risk policy in an explicit project.
- `update_risk_policy` (Write): Patches allowed fields on a risk policy.
- `change_risk_policy_audience` (Write): Adds and removes exact user and role principals on one targeted policy in a single write, preserving unrelated grants and every policy setting.
- `remove_self_from_risk_policy` (Write): Always refuses.
- `list_risk_exclusions` (Read): Lists risk exclusions in a project, optionally filtered by policy.
- `create_risk_exclusion` (Write): Creates an exclusion matched by exact value, rule ID, source, or entity type.
- `update_risk_exclusion` (Write): Enables or disables one exclusion without changing its definition.
- `get_risk_analysis_status` (Read): Reports whether the Watchdog risk analysis is running for a project and when it last ran.
- `list_watchdog_findings` (Read): Reads rule-level Watchdog alerts grouped by rule, with affected users, affected apps, and one redacted sample per alert.
- `list_risk_findings` (Read): Lists individual findings in a project, newest message first, with every matched value reduced to a length and a hash fingerprint that never reaches the model.
- `list_risk_findings_by_chat` (Read): Lists the chat sessions that carry live findings, each with a finding count, the latest detection time, and an organization-scoped user pseudonym.
- `get_risk_rule_breakdown` (Read): Counts live findings per rule and detection source for one category over a detection-time window, defaulting to seven days and capped at 31.
- `mark_risk_findings_false_positive` (Write): Dismisses named findings in a project as reviewed false positives, moving them to the Dismissed tab.
- `unmark_risk_findings_false_positive` (Write): Restores dismissed findings so they return to the active list, undoing the mark.

### Signals intelligence

- `find_signals` (Read): Finds reusable signals by name or slug in a project, before creating duplicates.
- `find_sensors` (Read): Finds project sensor summaries by name or slug, with matching expressions, signal counts, and configuration readiness.
- `get_sensor` (Read): Reads one exact sensor, its expanded signals, matching expression, and configuration readiness.
- `preview_sensor_match` (Read): Validates a boolean matching expression and evaluates up to 20 caller-supplied role examples, without retrieving messages or running inference.
- `create_sensor` (Write): Creates a sensor with its inline signals and ordered memberships.
- `create_signal` (Write): Creates a reusable signal that a sensor can reference.
- `update_sensor` (Write): Updates an existing sensor, preserving omitted fields and replacing supplied memberships.
- `update_signal` (Write): Updates a shared signal, affecting every sensor that references it.

### Observability

- `get_project_overview` (Read): Summarizes how a project's MCP servers have behaved and what has failed over a window of 1h, 24h, 7d, or 30d.
- `get_tool_usage_summary` (Read): Breaks a project's tool calls down by what they reached: hosted MCP servers, tunneled MCP servers, gateways, shadow MCP servers, local tools, and skills.
- `query_mcp_events` (Read): Breaks one server's calls down by tool and outcome over a window of up to 24h.
- `query_mcp_metrics` (Read): Returns one server's totals over a window of 1h, 24h, or 7d: call volume, failures, failure rate, average latency, and active users.
- `query_mcp_traces` (Read): Lists one server's individual calls, newest first, each reduced to a reference to quote when escalating.
- `get_mcp_network_traffic` (Read): Summarizes observed public and private inbound requests and last-seen times for one MCP server or gateway over 24 hours or 7 days.
- `list_recent_tool_calls` (Read): Lists the newest tool calls in one project over a window of 1h or 24h, filtered by an outcome of success, error, blocked, or pending.
- `list_mcp_usage_users` (Read): Lists the people observed using one server, newest first, with masked identities, categorical activity and error evidence, and short-lived references for a focused follow-up.
- `get_user_mcp_status` (Read): Shows which tools one person, by a reference from the usage list, was observed using on one server and whether errors were observed.
- `search_tool_calls` (Read): Searches one project's tool calls across every MCP server over up to 30 days, newest first, narrowed by tool name, error text, outcome, one server, a person reference, or attribute filters found with list_attribute_keys.
- `list_attribute_keys` (Read): Lists the attribute keys on a project's telemetry, split into the custom @-prefixed keys integrations attached and the system keys the platform recorded.
- `search_users` (Read): Finds people observed in a project's telemetry whose identity contains a partial email address or user id, over up to 30 days, most recently seen first.
- `get_user_metrics_summary` (Read): Summarizes one person's activity across a project over up to 30 days, from a reference returned by search_users or list_mcp_usage_users: call volume, failures, failure rate, the servers their tools name, and their most-failing tools with exact counts.
- `list_organization_events` (Read): Lists the newest Event Feed entries for the organization, defaulting to 20 from the last day and capped at 50.
- `list_chats` (Read): Lists a project's chats active in a window of up to 30 days, newest activity first, as metadata only.

### Analytics

- `describe_analytics_catalog` (Read): Describes the catalog: every dataset, its dimensions and measures, the time grains, and the query limits.
- `list_analytics_dimension_values` (Read): Lists the values one dimension of a dataset holds inside a time window, for choosing filter values before run_analytics_query.
- `run_analytics_query` (Read): Runs one grouped or ungrouped query against a dataset from describe_analytics_catalog, in catalog vocabulary.

### Widgets

- `list_widgets` (Read): Lists a project's Explore widgets, most recently updated first, with dataset, chart type, creator, version, and the dashboards each is on.
- `get_widget` (Read): Reads one widget's full query, visualization, version, and the dashboards it is on.
- `save_widget` (Write): Creates a widget or replaces every field of an existing one, validating the query and visualization before saving.
- `duplicate_widget` (Write): Copies a widget into a new one the caller owns, for building on a teammate's widget without changing their dashboards.
- `delete_widget` (Write): Deletes a widget, removing it from every dashboard it was on.

### Shadow MCP

- `list_shadow_mcp_inventory` (Read): Lists observed or requested targets in a project, with use counts, privacy-safe user counts, and review state.
- `get_shadow_mcp_review` (Read): Shows the evidence and review state for one target: aggregate tool declarations, gaps, advisory counts, and research coverage.
- `decide_shadow_mcp_access` (Write): Records and enforces an allow or deny decision for one target.

### Shadow AI

- `list_shadow_ai_inventory` (Read): Lists AI tools detected running on enrolled devices, with the gateway access decision for each: allowed, blocked, or unreviewed.
- `list_ai_scan_library` (Read): Lists the AI tools device agents probe for, including which were added by the organization and which are blockable at the gateway.

### Data exports

- `list_data_exports` (Read): Lists the configured OTEL destinations and routes, either for one named project or across the organization when no project is named.
- `create_data_export` (Write): Creates one destination and one route for a project in a single transaction, sending product_telemetry, risk_findings, or tool_call_logs to an HTTP or HTTPS endpoint that carries no credentials, query parameters, or fragments.
- `pause_data_export` (Write): Stops one data export route from sending data to its destination, leaving the route and destination configured so it can be resumed later.
- `resume_data_export` (Write): Starts a paused data export route sending data to its destination again.

### Sessions

- `list_my_sessions` (Read): Lists the connected person's captured coding-agent sessions with titles, summaries, project, working directory, and last activity.
- `continue_session` (Write): Renders a redacted handoff digest of one previous session so its work can continue in the current conversation.

### Documentation and feedback

- `search_gram_docs` (Read): Searches the reviewed provider setup guides and returns up to five cited excerpts with links to the full guide.
- `read_gram_doc` (Read): Reads one reviewed setup guide in full, by the URI the search returned.
- `send_platform_mcp_feedback` (Write): Stores one short feedback report about the Platform MCP for the Speakeasy team, with a category and optional rating and note.
- `record_workflow_run` (Write): Records what one run of a Speakeasy workflow handled, for diagnostics while the workflow is new.

## Do I need a Speakeasy account?

Yes. Sign in to the AI control plane and open the Headless tab to connect your agent. Platform MCP is available to every organization. Your role determines which operations you can perform.

## How is access authorized?

The server uses OAuth 2.1 with browser sign-in. Choose your organization during authorization. Tools check your platform permissions; installing a plugin does not grant additional access. Administrative operations require the appropriate admin permissions.

## Where do credentials go?

Complete provider sign-in and secret configuration through the secure dashboard links returned by the tools. Do not paste API keys, tokens, passwords, or OAuth codes into your agent conversation.

## What if my agent cannot connect?

In Claude Code, open /mcp and choose Authenticate. For other clients, restart if the server is missing, then try listing your projects to trigger authorization. Reconnect if your authorization has expired.

[Full tool reference](/docs/ai-control-plane/reference/platform-mcp.md)

[Open the AI control plane](https://ai.speakeasy.com)

---

Index of every Speakeasy page for agents: [llms.txt](https://www.speakeasy.com/llms.txt). AI control plane and MCP gateway content in one file: [llms-full.txt](https://www.speakeasy.com/llms-full.txt). Any page is available as markdown by appending `.md` to its URL or by requesting it with `Accept: text/markdown`.
