mcp
Use Vestra from any editor or AI agent that speaks MCP, the Model Context Protocol. There is one MCP endpoint, /v1/mcp, and any MCP client can call it with your API key. tools/list shows the tools it offers. To let a coding agent search these docs without a key, add the docs MCP. Build with AI lists every resource for coding agents.
MCP is a separate way in, so there is nothing to call from the TypeScript SDK. Point any MCP client at https://api.vestra.ai/v1/mcp (during the preview, https://api-staging.vestra.ai/v1/mcp), with your key as a Bearer token.
Connect any MCP client
Point it at this URL with your key. Over plain HTTP the endpoint speaks JSON-RPC, and it needs both types in the Accept header. tools/list shows the tools it offers.
curl "$VESTRA_BASE_URL/v1/mcp" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'Connect an agent that speaks A2A
Each deployment has an agent card, and reading it needs no key.
curl "$VESTRA_BASE_URL/v1/a2a/dep_4kq/.well-known/agent-card.json"MCP is a separate way in, so there is nothing to call from the Python SDK. Point any MCP client at https://api.vestra.ai/v1/mcp (during the preview, https://api-staging.vestra.ai/v1/mcp), with your key as a Bearer token.
Connect any MCP client
Point it at this URL with your key. Over plain HTTP the endpoint speaks JSON-RPC, and it needs both types in the Accept header. tools/list shows the tools it offers.
curl "$VESTRA_BASE_URL/v1/mcp" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'Connect an agent that speaks A2A
Each deployment has an agent card, and reading it needs no key.
curl "$VESTRA_BASE_URL/v1/a2a/dep_4kq/.well-known/agent-card.json"vestra mcp runs a local MCP server for your editor over stdio, using the key vestra login saved. Add it to your editor as a stdio server, with command vestra and args ["mcp"].
Connect any MCP client
Point it at this URL with your key. Over plain HTTP the endpoint speaks JSON-RPC, and it needs both types in the Accept header. tools/list shows the tools it offers.
curl "$VESTRA_BASE_URL/v1/mcp" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'Connect an agent that speaks A2A
Each deployment has an agent card, and reading it needs no key.
curl "$VESTRA_BASE_URL/v1/a2a/dep_4kq/.well-known/agent-card.json"Connect any MCP client
Point it at this URL with your key. Over plain HTTP the endpoint speaks JSON-RPC, and it needs both types in the Accept header. tools/list shows the tools it offers.
curl "$VESTRA_BASE_URL/v1/mcp" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'Connect an agent that speaks A2A
Each deployment has an agent card, and reading it needs no key.
curl "$VESTRA_BASE_URL/v1/a2a/dep_4kq/.well-known/agent-card.json"{ "mcpServers": { "vestra": { "type": "http", "url": "https://api-staging.vestra.ai/v1/mcp", "headers": { "Authorization": "Bearer vk_test_..." } } }}Good to know
Connecting a client
The endpoint uses MCP's streamable HTTP transport. Send your key in Authorization: Bearer, and send Accept: application/json, text/event-stream.
The key you need
MCP needs a key with the runtime scope, or all.
Agents that speak A2A
Each deployment also answers A2A, the Agent2Agent protocol, at /v1/a2a/{deployment_id}. Its agent card is at /v1/a2a/{deployment_id}/.well-known/agent-card.json.
The routes behind mcp3 routes, each with every field in the API reference
runtime (or all)runtime (or all)