{"id":29113538,"url":"https://github.com/webdevtodayjason/a2amcp","last_synced_at":"2025-10-10T01:48:56.822Z","repository":{"id":297763898,"uuid":"997831964","full_name":"webdevtodayjason/A2AMCP","owner":"webdevtodayjason","description":"A2AMCP is a Agent2Agent MCP communication Server taking the concept from Google's Agent2Agent Protocol (A2A)","archived":false,"fork":false,"pushed_at":"2025-06-09T18:28:44.000Z","size":145,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-29T23:58:45.278Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdevtodayjason.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-07T09:27:21.000Z","updated_at":"2025-09-13T08:56:02.000Z","dependencies_parsed_at":"2025-06-07T10:36:43.211Z","dependency_job_id":null,"html_url":"https://github.com/webdevtodayjason/A2AMCP","commit_stats":null,"previous_names":["webdevtodayjason/a2amcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webdevtodayjason/A2AMCP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2FA2AMCP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2FA2AMCP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2FA2AMCP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2FA2AMCP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdevtodayjason","download_url":"https://codeload.github.com/webdevtodayjason/A2AMCP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2FA2AMCP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002400,"owners_count":26083375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-29T11:05:38.325Z","updated_at":"2025-10-10T01:48:56.782Z","avatar_url":"https://github.com/webdevtodayjason.png","language":"Python","funding_links":[],"categories":["Coding Agents"],"sub_categories":["How to Submit"],"readme":"# A2AMCP - Agent-to-Agent Model Context Protocol\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)\n[![Redis](https://img.shields.io/badge/Redis-Powered-red.svg)](https://redis.io/)\n[![Status](https://img.shields.io/badge/Status-Running%20%E2%9C%85-green.svg)](https://github.com/webdevtodayjason/A2AMCP)\n\n## Enabling Seamless Multi-Agent Collaboration for AI-Powered Development\n\nA2AMCP brings Google's Agent-to-Agent (A2A) communication concepts to the Model Context Protocol (MCP) ecosystem, enabling AI agents to communicate, coordinate, and collaborate in real-time while working on parallel development tasks.\n\nOriginally created for [SplitMind](https://github.com/webdevtodayjason/splitmind), A2AMCP solves the critical problem of isolated AI agents working on the same codebase without awareness of each other's changes.\n\n**✅ Server Status: WORKING! All 17 tools implemented and tested. Uses modern MCP SDK 1.9.3.**\n\n## 🚀 Quick Start\n\n### Using Docker (Recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/webdevtodayjason/A2AMCP\ncd A2AMCP\n\n# Start the server\ndocker-compose up -d\n\n# Verify it's running\ndocker ps | grep splitmind\n\n# Test the connection\npython verify_mcp.py\n```\n\n### Configure Your Agents\n\n#### Claude Code (CLI)\n```bash\n# Add the MCP server using Claude Code CLI\nclaude mcp add splitmind-a2amcp \\\n  -e REDIS_URL=redis://localhost:6379 \\\n  -- docker exec -i splitmind-mcp-server python /app/mcp-server-redis.py\n```\n\n#### Claude Desktop\nAdd to your configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"splitmind-a2amcp\": {\n      \"command\": \"docker\",\n      \"args\": [\"exec\", \"-i\", \"splitmind-mcp-server\", \"python\", \"/app/mcp-server-redis.py\"],\n      \"env\": {\n        \"REDIS_URL\": \"redis://redis:6379\"\n      }\n    }\n  }\n}\n```\n\n## 🎯 What Problem Does A2AMCP Solve?\n\nWhen multiple AI agents work on the same codebase:\n- **Without A2AMCP**: Agents create conflicting code, duplicate efforts, and cause merge conflicts\n- **With A2AMCP**: Agents coordinate, share interfaces, prevent conflicts, and work as a team\n\n### Generic Use Cases Beyond SplitMind\n\nA2AMCP can coordinate any multi-agent scenario:\n- **Microservices**: Different agents building separate services\n- **Full-Stack Apps**: Frontend and backend agents collaborating\n- **Documentation**: Multiple agents creating interconnected docs\n- **Testing**: Test writers coordinating with feature developers\n- **Refactoring**: Agents working on different modules simultaneously\n\n## 🏗️ Architecture\n\n```\n┌─────────────────┐\n│   A2AMCP Server │ ← Persistent Redis-backed MCP server\n│   (Port 5050)   │   handling all agent communication\n└────────┬────────┘\n         │ STDIO Protocol (MCP)\n    ┌────┴────┬─────────┬─────────┐\n    ▼         ▼         ▼         ▼\n┌────────┐┌────────┐┌────────┐┌────────┐\n│Agent 1 ││Agent 2 ││Agent 3 ││Agent N │\n│Auth    ││Profile ││API     ││Frontend│\n└────────┘└────────┘└────────┘└────────┘\n```\n\n## 🔧 Core Features\n\n### 1. **Real-time Agent Communication**\n- Direct queries between agents\n- Broadcast messaging\n- Async message queues\n\n### 2. **File Conflict Prevention**\n- Automatic file locking\n- Conflict detection\n- Negotiation strategies\n\n### 3. **Shared Context Management**\n- Interface/type registry\n- API contract sharing\n- Dependency tracking\n\n### 4. **Task Transparency**\n- Todo list management\n- Progress visibility\n- Completion tracking\n- Task completion signaling\n\n### 5. **Multi-Project Support**\n- Isolated project namespaces\n- Redis-backed persistence\n- Automatic cleanup\n\n### 6. **Modern MCP Integration**\n- Uses MCP SDK 1.9.3 with proper decorators\n- `@server.list_tools()` and `@server.call_tool()` patterns\n- STDIO-based communication protocol\n- Full A2AMCP API compliance with 17 tools implemented\n\n## 📦 Installation Options\n\n### Docker Compose (Production)\n```yaml\nservices:\n  mcp-server:\n    build: .\n    container_name: splitmind-mcp-server\n    ports:\n      - \"5050:5000\"  # Changed from 5000 to avoid conflicts\n    environment:\n      - REDIS_URL=redis://redis:6379\n      - LOG_LEVEL=INFO\n    depends_on:\n      redis:\n        condition: service_healthy\n    restart: unless-stopped\n  \n  redis:\n    image: redis:7-alpine\n    container_name: splitmind-redis\n    ports:\n      - \"6379:6379\"\n    volumes:\n      - redis-data:/data\n    healthcheck:\n      test: [\"CMD\", \"redis-cli\", \"ping\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n\nvolumes:\n  redis-data:\n    driver: local\n```\n\n### Python SDK\n```bash\npip install a2amcp-sdk\n```\n\n### JavaScript/TypeScript SDK (Coming Soon)\n```bash\nnpm install @a2amcp/sdk\n```\n\n## 🚦 Usage Example\n\n### Python SDK\n```python\nfrom a2amcp import A2AMCPClient, Project, Agent\n\nasync def run_agent():\n    client = A2AMCPClient(\"localhost:5000\")\n    project = Project(client, \"my-app\")\n    \n    async with Agent(project, \"001\", \"feature/auth\", \"Build authentication\") as agent:\n        # Agent automatically registers and maintains heartbeat\n        \n        # Coordinate file access\n        async with agent.files.coordinate(\"src/models/user.ts\") as file:\n            # File is locked, safe to modify\n            pass\n        # File automatically released\n        \n        # Share interfaces\n        await project.interfaces.register(\n            agent.session_name,\n            \"User\",\n            \"interface User { id: string; email: string; }\"\n        )\n```\n\n### Direct MCP Tool Usage\n```python\n# Register agent\nregister_agent(\"my-project\", \"task-001\", \"001\", \"feature/auth\", \"Building authentication\")\n\n# Query another agent\nquery_agent(\"my-project\", \"task-001\", \"task-002\", \"interface\", \"What's the User schema?\")\n\n# Share interface\nregister_interface(\"my-project\", \"task-001\", \"User\", \"interface User {...}\")\n```\n\n## 📚 Documentation\n\n- [Claude Code Setup Guide](./CLAUDE_CODE_SETUP.md)\n- [Installation \u0026 Setup](./SETUP.md)\n- [Full API Reference](https://github.com/webdevtodayjason/A2AMCP/blob/main/docs/API_REFERENCE.md)\n- [Python SDK Documentation](https://github.com/webdevtodayjason/A2AMCP/blob/main/sdk/python/README.md)\n- [Architecture Overview](https://github.com/webdevtodayjason/A2AMCP/blob/main/docs/ARCHITECTURE.md)\n- [SplitMind Integration Guide](https://github.com/webdevtodayjason/A2AMCP/blob/main/docs/SPLITMIND_INTEGRATION.md)\n\n## 🛠️ SDKs and Tools\n\n### Available Now\n- **Python SDK**: Full-featured SDK with async support\n- **Docker Deployment**: Production-ready containers\n\n### In Development\n- **JavaScript/TypeScript SDK**: For Node.js and browser\n- **CLI Tools**: Command-line interface for monitoring\n- **Go SDK**: High-performance orchestration\n- **Testing Framework**: Mock servers and test utilities\n\nSee [SDK Development Progress](https://github.com/webdevtodayjason/A2AMCP/blob/main/sdk/TODO.md) for details.\n\n## 🤝 Integration with AI Frameworks\n\nA2AMCP is designed to work with:\n- [SplitMind](https://github.com/webdevtodayjason/splitmind) - Original use case\n- Claude Code (via MCP)\n- Any MCP-compatible AI agent\n- Future: LangChain, CrewAI, AutoGen\n\n## 🔍 How It Differs from A2A\n\nWhile inspired by Google's A2A protocol, A2AMCP makes specific design choices for AI code development:\n\n| Feature | Google A2A | A2AMCP |\n|---------|------------|---------|\n| Protocol | HTTP-based | MCP tools |\n| State | Stateless | Redis persistence |\n| Focus | Generic tasks | Code development |\n| Deployment | Per-agent servers | Single shared server |\n\n## 🚀 Roadmap\n\n- [x] Core MCP server with Redis\n- [x] Modern MCP SDK 1.9.3 integration\n- [x] Fixed decorator patterns (`@server.list_tools()`, `@server.call_tool()`)\n- [x] Python SDK\n- [x] Docker deployment\n- [x] All 17 A2AMCP API tools implemented and tested\n- [x] Health check endpoint for monitoring\n- [x] Verification script for testing connectivity\n- [ ] JavaScript/TypeScript SDK\n- [ ] CLI monitoring tools\n- [ ] SplitMind native integration\n- [ ] Framework adapters (LangChain, CrewAI)\n- [ ] Enterprise features\n\n## 🛠️ Troubleshooting\n\n### Agents can't see `mcp__splitmind-a2amcp__` tools\n\n1. **Restart Claude Desktop** - MCP connections are established at startup\n2. **Verify server is running**: `docker ps | grep splitmind`\n3. **Check health endpoint**: `curl http://localhost:5050/health`\n4. **Run verification script**: `python verify_mcp.py`\n5. **Check configuration**: Ensure `~/Library/Application Support/Claude/claude_desktop_config.json` contains the A2AMCP server configuration\n\n### Common Issues\n\n- **\"Tool 'X' not yet implemented\"** - Fixed in latest version, pull latest changes\n- **Connection failed** - Ensure Docker is running and ports 5050/6379 are free\n- **Redis connection errors** - Wait for Redis to be ready (takes ~5-10 seconds on startup)\n\n## 🤝 Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](https://github.com/webdevtodayjason/A2AMCP/blob/main/CONTRIBUTING.md) for guidelines.\n\n### Development Setup\n```bash\n# Clone repository\ngit clone https://github.com/webdevtodayjason/A2AMCP\ncd A2AMCP\n\n# Install dependencies\npip install -r requirements.txt\n\n# Run tests\npytest\n\n# Start development server\ndocker-compose -f docker-compose.dev.yml up\n```\n\n## 📊 Performance\n\n- Handles 100+ concurrent agents\n- Sub-second message delivery\n- Automatic cleanup of dead agents\n- Horizontal scaling ready\n\n## 🔒 Security\n\n- Project isolation\n- Optional authentication (coming soon)\n- Encrypted communication (roadmap)\n- Audit logging\n\n## 📄 License\n\nMIT License - see [LICENSE](https://github.com/webdevtodayjason/A2AMCP/blob/main/LICENSE) file.\n\n## 🙏 Acknowledgments\n\n- Inspired by [Google's A2A Protocol](https://github.com/google/A2A)\n- Built for [SplitMind](https://github.com/webdevtodayjason/splitmind)\n- Powered by [Model Context Protocol](https://modelcontextprotocol.io)\n\n## 📞 Support\n\n- **Issues**: [GitHub Issues](https://github.com/webdevtodayjason/A2AMCP/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/webdevtodayjason/A2AMCP/discussions)\n- **Discord**: Coming soon\n\n---\n\n*A2AMCP - Turning isolated AI agents into coordinated development teams*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdevtodayjason%2Fa2amcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdevtodayjason%2Fa2amcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdevtodayjason%2Fa2amcp/lists"}