A2A MCP Server
# A2A MCP Server
MCP (Model Context Protocol) server for interacting with Agent-to-Agent (A2A) protocol compliant agents.
## Overview
This MCP server enables LLMs to communicate with A2A-compliant agents through the Agent-to-Agent protocol. It provides tools for sending messages, managing tasks, and retrieving agent information.
## Features
- **a2a_send_message**: Send messages to A2A agents and optionally continue existing conversations
- **a2a_get_task**: Retrieve task status and details by task ID
- **a2a_cancel_task**: Cancel a running task
- **a2a_get_agent_card**: Fetch agent metadata and capabilities
## Installation
```bash
npm install
npm run build
```
## Usage
The server communicates via stdio and can be configured in your MCP client:
```json
{
"mcpServers": {
"a2a": {
"command": "node",
"args": ["/path/to/a2a-mcp-server/dist/index.js"]
}
}
}
```
## Tools
### a2a_send_message
Send a message to an A2A agent.
**Parameters:**
- `agentCardUrl` (string, required): URL to the agent's card endpoint
- `message` (string, required): The message text to send
- `taskId` (string, optional): Existing task ID to continue conversation
**Example:**
```typescript
{
"agentCardUrl": "https://example.com/.well-known/agent-card.json",
"message": "Hello, what can you do?",
"taskId": "optional-task-id-to-continue"
}
```
### a2a_get_task
Retrieve the status and details of a task.
**Parameters:**
- `agentCardUrl` (string, required): URL to the agent's card endpoint
- `taskId` (string, required): The task ID to retrieve
### a2a_cancel_task
Cancel a running task.
**Parameters:**
- `agentCardUrl` (string, required): URL to the agent's card endpoint
- `taskId` (string, required): The task ID to cancel
### a2a_get_agent_card
Retrieve an agent's card with metadata and capabilities.
**Parameters:**
- `agentCardUrl` (string, required): URL to the agent's card endpoint
## Development
```bash
# Install dependencies
npm install
# Run in development mode with auto-reload
npm run dev
# Build for production
npm run build
# Run the built server
npm start
```
## License
MIT
TDQS
Scored across 4 tools
Each tool targets a distinct A2A operation: sending messages, retrieving tasks, canceling tasks, and fetching agent cards. There is no meaningful overlap between their purposes, and the descriptions include explicit cross-references to prevent misselection.
All tools follow the same a2a_<verb>_<noun> pattern: a2a_send_message, a2a_get_task, a2a_cancel_task, and a2a_get_agent_card. The naming is uniform, predictable, and clearly indicates the action and resource involved.
Four tools is well-scoped for an A2A protocol server. Each tool covers one essential protocol interaction without unnecessary redundancy or missing core functionality.
The tool set covers the essential A2A workflow: discovering agent capabilities via the agent card, sending messages, checking task status, and canceling tasks. This is a complete surface for the stated purpose of interacting with A2A-compliant agents.