MCP Preview
Point an MCP client at your instance and your agents appear as tools, under a key your admin issues in Studio. Every call lands on the run record. The server is in preview; the open items below come before general availability.
- Today
- Configs, keys, and the server
- Server
- Preview
- Takes
- MCP key
01What exists today
Callable with a key. An outside AI assistant lists and calls your agents through one MCP config, at POST …/mcp-configs/{mcp_config_id}/mcp. Two items are open before general availability: key storage hardening, and the address the connection route advertises.
| Part | State | What it is |
|---|---|---|
| MCP configs | Shipped | A named set of tools, each backed by one of your agents, held by the agents service and shown in Studio. |
| MCP keys | Shipped | Keys per config: created, listed masked, and deactivated in Studio. An outside AI assistant sends one with each call. |
| MCP server | Preview | The endpoint an outside AI assistant connects to. It lists one tool per agent in the config and runs that agent on each call. |
| MCP tools for agents | In design | NSTACK agents calling tools from MCP servers. Agents call built-in tools today. |
02MCP configs and keys
A config names the agents an assistant sees. The platform team sets up a config's tools with you; your members read configs and manage keys with a member session.
/agents/api/v1/organizations/{org_id}/mcp-configsList the organization's MCP configs, and the public ones.
NeedsA member session
/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}Read one config and its tools.
NeedsA member session
/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keysList the config's keys: id, created_at, active, and a masked value.
NeedsA member session
/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keysCreate a key. Its value appears once, in this response.
NeedsCreate or update agents
/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keys/{key_id}Deactivate a key with {"active": false}.
NeedsCreate or update agents
A key is a long-lived signed token, 365 days by default. Keep it in a secret store and deactivate it in Studio if it leaks. These pages never print a real key.
03The server
The server answers MCP's JSON-RPC methods for one config, so each agent in the config appears to the client as one tool. A call runs that agent in your organization and lands on the run record like any other run.
MCP · PreviewThe path of a tool call, drawn on a sample config.
| Question | Code in the agents service today | Planned design |
|---|---|---|
| Protocol | MCP 2024-11-05, JSON-RPC over one HTTP POST per message | MCP 2025-11-25 over Streamable HTTP |
| Tools | One tool per agent in the config, each taking a message | Typed input and output schemas per tool |
| Credential | An MCP key as Authorization: Bearer, checked against the organization and config in the path | Keys with scopes, and OAuth 2.1 for clients that support it |
| Record | An agent run, triggered by the API | A tool_call run with the key as actor |
04Calls
Send each message as a POST to the config's endpoint, with its key as a bearer token. The shapes follow the MCP specification.
// request
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }
// result, sample values
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "research_assistant",
"description": "Answers questions from your organization's knowledge.",
"inputSchema": {
"type": "object",
"properties": {
"message": { "type": "string", "description": "User message / query for RAG." },
"user_id": { "type": "string", "description": "End-user id for agent memory (optional)." }
},
"required": ["message"]
}
}
]
}
}
// request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": { "name": "research_assistant", "arguments": { "message": "Summarize the open items for this week." } }
}
// result, sample values
{
"jsonrpc": "2.0",
"id": 2,
"result": { "content": [{ "type": "text", "text": "…" }], "isError": false }
}
05Permissions and approvals
- Scopes, planned.
tools:list,tools:call,actions:propose, andactions:execute, granted per key. - Approvals, planned. A tool that changes a record proposes the change; a person approves it before it runs, as Scan does in Safe mode today.
- The organization stays the boundary. A key belongs to one organization and one config, and a call reaches only that organization's agents and knowledge.
06MCP tools for agents In design
Your agents calling tools on your MCP servers is in design. What an agent run calls today:
- A query per assigned dataset. One
query_<dataset>tool for each dataset assigned to the agent version, reading the records of the run's environment. - A knowledge search.
search_knowledge, when an assigned dataset has a knowledge index in the run's environment.
Each call shows on the run record as a child step, tool:{name}#{n}, under the run's tools step. Both tools read, so an agent runs in Reads and drafts mode today: it reads your records and knowledge and answers with a draft that a person acts on.
Studio grants Scan routines to an agent version as tools, in Safe or Autonomous mode, and the agents service records the grant. Agent runs call granted tools once the Scan tool runtime ships.
07Open items
- Open Before general availability. Key storage hardening, and the address the connection route advertises.
- In design Protocol 2025-11-25 over Streamable HTTP, with typed tool schemas.
- In design Scoped keys and OAuth 2.1.
- In design A
tool_callrun per call, with the key as the run's actor.
Your own code can also call your agents with a member session; the quickstart shows how.