Skip to content

Conversation

@GongRzhe
Copy link
Contributor

Description

Adding a new A2A 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.

Server Details

  • Server: A2A MCP Server
  • Changes to: New server implementation with agent management, communication features, and task management capabilities

Motivation and Context

This bridge server solves the interoperability challenge between MCP and A2A protocols, allowing AI assistants like Claude to discover, register, communicate with, and manage tasks on A2A agents through a unified interface. It enables MCP clients to leverage capabilities of A2A agents without requiring protocol-specific implementations.

How Has This Been Tested?

The server has been tested with Claude as the MCP client in the following scenarios:

  • Registering A2A agents with the bridge server
  • Sending messages to agents and receiving responses
  • Retrieving task results using task IDs
  • Testing with multiple transport types (stdio, streamable-http, SSE)
  • Integration with Claude Desktop, Cursor IDE, and Windsurf Browser

Breaking Changes

None. This is a new server implementation that doesn't affect existing MCP clients.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Protocol Documentation
  • My changes follows MCP security best practices
  • I have updated the server's README accordingly
  • I have tested this with an LLM client
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have documented all environment variables and configuration options

Additional context

The server supports multiple transport types (stdio, streamable-http, SSE) configurable through environment variables. The implementation includes a custom A2AServerTaskManager class that extends InMemoryTaskManager. Additionally, a config_creator.py script is provided to help users configure the server with Claude Desktop.

@GongRzhe
Copy link
Contributor Author

This PR is ready, please review it.
Thanks you team for maintaining this repo ! @tadasant @olaservo

Copy link
Member

@tadasant tadasant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry would fix for you but then I wouldn't be able to merge as last-pusher

Co-authored-by: Tadas Antanavicius <tadas@tadasant.com>
@GongRzhe
Copy link
Contributor Author

thx, I merged that

@GongRzhe
Copy link
Contributor Author

please review this, I build an MCP server that Claude Desktop can now ask YOU questions through popup windows.
demo

#1921

@tadasant tadasant merged commit e247123 into modelcontextprotocol:main May 27, 2025
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants