A2A + OpenCode: Complete MCP Integration
A2A is a MCP server that An MCP server that bridges the Model Context Protocol (MCP) with the Agent-to-Agent (A2A) protocol, enabling MCP-compatible AI assistants (like Claude) to seamlessly interact with A2A agents..
When integrated with OpenCode, you can:
- Register and manage A2A agents for communication
- Send messages to A2A agents and handle responses
- Manage asynchronous tasks and retrieve results
This guide provides step-by-step instructions to set up A2A in OpenCode, including configuration, examples, and troubleshooting.
What You'll Achieve
After completing this setup:
- A2A will be fully integrated and operational
- You can use A2A tools directly in OpenCode
- All A2A capabilities will be available for your workflows
- Access to 4 different tools
Prerequisites
Before starting, ensure you have:
- OpenCode installed and configured
- Compatible operating system (macOS, Linux, Windows)
Installation
Step 1: Install A2A
Configuration
Step 2: Configure OpenCode
-
Locate your configuration file:
-
Add server configuration:
Configure MCP servers in your `opencode.json` or `opencode.jsonc`:
```json
{
"mcp": {
"my-mcp": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
"environment": {
"API_KEY": "$API_KEY"
},
"timeout": 5000
},
"remote-server": {
"type": "remote",
"url": "https://mcp.example.com/sse",
"headers": {
"Authorization": "Bearer $API_TOKEN"
}
}
}
}
Disable a server temporarily:
{
"mcp": {
"my-mcp": {
"type": "local",
"command": ["npx", "-y", "mcp-server"],
"enabled": false
}
}
}
3. **Restart OpenCode**
Completely quit and restart OpenCode to load the new configuration.
## Examples
Once configured, you can use A2A in OpenCode:
### Register and Communicate with Agent
Set up communication with an A2A agent
**Ask OpenCode:** "Register an agent for data analysis tasks and send it a dataset processing request"
**Expected Result:** Agent registered, task submitted, and task_id returned for tracking
### Stream Real-Time Data
Use streaming to get real-time updates from agent
**Ask OpenCode:** "Stream live updates from the monitoring agent about system metrics"
**Expected Result:** Continuous stream of system metrics and status updates
### Manage Multiple Agents
Coordinate tasks across multiple A2A agents
**Ask OpenCode:** "List all available agents and distribute parallel processing tasks"
**Expected Result:** Agent list displayed, tasks distributed, and progress tracked
### Handle Task Results
Retrieve and process completed task results
**Ask OpenCode:** "Get the results from the data analysis task I submitted earlier"
**Expected Result:** Task results retrieved with processed data and analysis findings
## Testing Your Setup
1. Run opencode in terminal
2. Add "use the mcp_name tool" to your prompts
3. Verify tool execution and response
## Troubleshooting
### Common Issues
#### Agent Registration Failed
**Symptoms:** Registration errors, Agent not found, Connection timeouts
**Cause:** Network connectivity issues or invalid agent configuration
**Solution:**
- Check internet connectivity to A2A network
- Verify agent endpoint URLs are correct
- Ensure agent is online and accepting connections
- Check firewall settings and port accessibility
#### Task Never Completes
**Symptoms:** Task stuck in pending state, No response from agent
**Cause:** Agent overload, network issues, or task complexity
**Solution:**
- Check agent status and availability
- Cancel and resubmit the task
- Break complex tasks into smaller parts
- Try different agent if available
#### Transport Protocol Errors
**Symptoms:** Connection refused, Protocol mismatch errors
**Cause:** Incorrect transport configuration or port conflicts
**Solution:**
- Verify MCP_TRANSPORT setting matches client expectations
- Check MCP_HOST and MCP_PORT are accessible
- Ensure no port conflicts with other services
- Try different transport mode (stdio, http, sse)
#### Message Streaming Issues
**Symptoms:** Broken streams, Incomplete messages, Timeout errors
**Cause:** Network instability or buffer overflow
**Solution:**
- Check network stability and bandwidth
- Reduce message frequency or size
- Enable debug logging to trace issues
- Use appropriate buffer sizes for streaming
#### MCP Server Not Loading
**Symptoms:** Server not appearing in tools, Timeout errors, Command not found
**Cause:** Invalid configuration, missing dependencies, or timeout too short
**Solution:**
- Verify command array is correct in opencode.json
- Check environment variables are set properly
- Increase timeout value if server takes longer to start
- Test MCP server command independently in terminal
#### Context Limit Exceeded
**Symptoms:** Context too large errors, Slow responses, Truncated output
**Cause:** Too many MCP servers adding to context
**Solution:**
- Disable unused MCP servers with enabled: false
- Use per-agent tool configuration to limit active MCPs
- Avoid MCP servers that add many tokens (e.g., GitHub MCP)
#### Remote Server Connection Failed
**Symptoms:** Cannot connect to remote MCP, Authentication errors
**Cause:** Invalid URL, missing headers, or network issues
**Solution:**
- Verify remote server URL is correct
- Check authorization headers are properly configured
- Ensure environment variables for tokens are set
#### A2A not appearing in OpenCode
**Symptoms:** Server not listed, Tools not available
**Cause:** Configuration or installation issue
**Solution:**
- Verify configuration syntax
- Check A2A installation
- Restart OpenCode
- Check logs for error messages
## Next Steps
Now that A2A is integrated with OpenCode:
- Explore all A2A capabilities through OpenCode
- Check out other MCP servers that work with OpenCode
- Join the MCP community for tips and support
- Consider contributing to A2A development
## Need Help?
- Search for [A2A documentation](https://www.mcpstack.org)
- Check the [OpenCode MCP guide](https://www.mcpstack.org/clients)
- Join the MCP community discussions