Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,8 @@ typescript/*.js.map

# TypeDoc generated documentation
typescript/docs/

.agents
.kiro
.claude

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ unstable = [
"unstable_elicitation",
"unstable_llm_providers",
"unstable_logout",
"unstable_mcp_over_acp",
"unstable_nes",
"unstable_session_additional_directories",
"unstable_session_fork",
Expand All @@ -38,6 +39,7 @@ unstable_cancel_request = []
unstable_elicitation = []
unstable_llm_providers = []
unstable_logout = []
unstable_mcp_over_acp = []
unstable_nes = []
unstable_session_additional_directories = []
unstable_session_fork = []
Expand Down
99 changes: 97 additions & 2 deletions docs/protocol/draft/schema-v2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
<ResponseField name="agentCapabilities" type={<a href="#agentcapabilities">AgentCapabilities</a>} >
Capabilities supported by the agent.

- Default: `{"auth":{},"loadSession":false,"mcpCapabilities":{"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}`
- Default: `{"auth":{},"loadSession":false,"mcpCapabilities":{"acp":false,"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}`

</ResponseField>
<ResponseField name="agentInfo" type={<><span><a href="#implementation">Implementation</a></span><span> | null</span></>} >
Expand Down Expand Up @@ -2491,7 +2491,7 @@ Authentication-related capabilities supported by the agent.
<ResponseField name="mcpCapabilities" type={<a href="#mcpcapabilities">McpCapabilities</a>} >
MCP capabilities supported by the agent.

- Default: `{"http":false,"sse":false}`
- Default: `{"acp":false,"http":false,"sse":false}`

</ResponseField>
<ResponseField name="nes" type={<><span><a href="#nescapabilities">NesCapabilities</a></span><span> | null</span></>} >
Expand Down Expand Up @@ -4367,6 +4367,16 @@ these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="acp" type={"boolean"} >
**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Agent supports `McpServer::Acp`.

- Default: `false`

</ResponseField>
<ResponseField name="http" type={"boolean"} >
Agent supports `McpServer::Http`.
Expand Down Expand Up @@ -4454,6 +4464,43 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
</Expandable>
</ResponseField>

<ResponseField name="acp" type="object">
**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

ACP transport configuration

Only available when the Agent capabilities indicate `mcp_capabilities.acp` is `true`.
The MCP server is provided by an ACP component and communicates over the ACP channel.

<Expandable title="Properties">

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="id" type={<a href="#mcpserveracpid">McpServerAcpId</a>} required>
Unique identifier for this MCP server, generated by the component providing it.

Providers MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible
on the same ACP connection.

</ResponseField>
<ResponseField name="name" type={"string"} required>
Human-readable name identifying this MCP server.
</ResponseField>
<ResponseField name="type" type={"string"} required>
The discriminator value. Must be `"acp"`.
</ResponseField>

</Expandable>
</ResponseField>

<ResponseField name="stdio">
Stdio transport configuration

Expand Down Expand Up @@ -4485,6 +4532,54 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
</Expandable>
</ResponseField>

## <span class="font-mono">McpServerAcp</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

ACP transport configuration for MCP.

The MCP server is provided by an ACP component and communicates over the ACP channel
using `mcp/connect`, `mcp/message`, and `mcp/disconnect`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="id" type={<a href="#mcpserveracpid">McpServerAcpId</a>} required>
Unique identifier for this MCP server, generated by the component providing it.

Providers MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible
on the same ACP connection.

</ResponseField>
<ResponseField name="name" type={"string"} required>
Human-readable name identifying this MCP server.
</ResponseField>

## <span class="font-mono">McpServerAcpId</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Unique identifier for an MCP server using the ACP transport.

The value is opaque and generated by the ACP component providing the MCP server. It is
used by `mcp/connect` to route connection requests back to the component that declared the
server.

**Type:** `string`

## <span class="font-mono">McpServerHttp</span>

HTTP transport configuration for MCP.
Expand Down
99 changes: 97 additions & 2 deletions docs/protocol/draft/schema.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
<ResponseField name="agentCapabilities" type={<a href="#agentcapabilities">AgentCapabilities</a>} >
Capabilities supported by the agent.

- Default: `{"auth":{},"loadSession":false,"mcpCapabilities":{"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}`
- Default: `{"auth":{},"loadSession":false,"mcpCapabilities":{"acp":false,"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}`

</ResponseField>
<ResponseField name="agentInfo" type={<><span><a href="#implementation">Implementation</a></span><span> | null</span></>} >
Expand Down Expand Up @@ -2491,7 +2491,7 @@ Authentication-related capabilities supported by the agent.
<ResponseField name="mcpCapabilities" type={<a href="#mcpcapabilities">McpCapabilities</a>} >
MCP capabilities supported by the agent.

- Default: `{"http":false,"sse":false}`
- Default: `{"acp":false,"http":false,"sse":false}`

</ResponseField>
<ResponseField name="nes" type={<><span><a href="#nescapabilities">NesCapabilities</a></span><span> | null</span></>} >
Expand Down Expand Up @@ -4367,6 +4367,16 @@ these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="acp" type={"boolean"} >
**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Agent supports `McpServer::Acp`.

- Default: `false`

</ResponseField>
<ResponseField name="http" type={"boolean"} >
Agent supports `McpServer::Http`.
Expand Down Expand Up @@ -4454,6 +4464,43 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
</Expandable>
</ResponseField>

<ResponseField name="acp" type="object">
**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

ACP transport configuration

Only available when the Agent capabilities indicate `mcp_capabilities.acp` is `true`.
The MCP server is provided by an ACP component and communicates over the ACP channel.

<Expandable title="Properties">

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="id" type={<a href="#mcpserveracpid">McpServerAcpId</a>} required>
Unique identifier for this MCP server, generated by the component providing it.

Providers MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible
on the same ACP connection.

</ResponseField>
<ResponseField name="name" type={"string"} required>
Human-readable name identifying this MCP server.
</ResponseField>
<ResponseField name="type" type={"string"} required>
The discriminator value. Must be `"acp"`.
</ResponseField>

</Expandable>
</ResponseField>

<ResponseField name="stdio">
Stdio transport configuration

Expand Down Expand Up @@ -4485,6 +4532,54 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
</Expandable>
</ResponseField>

## <span class="font-mono">McpServerAcp</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

ACP transport configuration for MCP.

The MCP server is provided by an ACP component and communicates over the ACP channel
using `mcp/connect`, `mcp/message`, and `mcp/disconnect`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="id" type={<a href="#mcpserveracpid">McpServerAcpId</a>} required>
Unique identifier for this MCP server, generated by the component providing it.

Providers MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible
on the same ACP connection.

</ResponseField>
<ResponseField name="name" type={"string"} required>
Human-readable name identifying this MCP server.
</ResponseField>

## <span class="font-mono">McpServerAcpId</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Unique identifier for an MCP server using the ACP transport.

The value is opaque and generated by the ACP component providing the MCP server. It is
used by `mcp/connect` to route connection requests back to the component that declared the
server.

**Type:** `string`

## <span class="font-mono">McpServerHttp</span>

HTTP transport configuration for MCP.
Expand Down
51 changes: 51 additions & 0 deletions schema/schema.unstable.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
}
],
"default": {
"acp": false,
"http": false,
"sse": false
},
Expand Down Expand Up @@ -2942,6 +2943,7 @@
"auth": {},
"loadSession": false,
"mcpCapabilities": {
"acp": false,
"http": false,
"sse": false
},
Expand Down Expand Up @@ -3304,6 +3306,11 @@
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
},
"acp": {
"default": false,
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nAgent supports [`McpServer::Acp`].",
"type": "boolean"
},
"http": {
"default": false,
"description": "Agent supports [`McpServer::Http`].",
Expand Down Expand Up @@ -3351,6 +3358,22 @@
"required": ["type"],
"type": "object"
},
{
"allOf": [
{
"$ref": "#/$defs/McpServerAcp"
}
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.acp` is `true`.\nThe MCP server is provided by an ACP component and communicates over the ACP channel.",
"properties": {
"type": {
"const": "acp",
"type": "string"
}
},
"required": ["type"],
"type": "object"
},
{
"allOf": [
{
Expand All @@ -3363,6 +3386,34 @@
],
"description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)"
},
"McpServerAcp": {
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration for MCP.\n\nThe MCP server is provided by an ACP component and communicates over the ACP channel\nusing `mcp/connect`, `mcp/message`, and `mcp/disconnect`.",
"properties": {
"_meta": {
"additionalProperties": true,
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
},
"id": {
"allOf": [
{
"$ref": "#/$defs/McpServerAcpId"
}
],
"description": "Unique identifier for this MCP server, generated by the component providing it.\n\nProviders MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible\non the same ACP connection."
},
"name": {
"description": "Human-readable name identifying this MCP server.",
"type": "string"
}
},
"required": ["name", "id"],
"type": "object"
},
"McpServerAcpId": {
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nUnique identifier for an MCP server using the ACP transport.\n\nThe value is opaque and generated by the ACP component providing the MCP server. It is\nused by `mcp/connect` to route connection requests back to the component that declared the\nserver.",
"type": "string"
},
"McpServerHttp": {
"description": "HTTP transport configuration for MCP.",
"properties": {
Expand Down
Loading