multi-agent-with-mcp
This project aims to develop a multi-agent system utilizing MCP. By leveraging LangGraph, it facilitates collaborative coding among agents to achieve efficient task processing. It particularly employs AI and machine learning technologies to assist in solving complex problems.
GitHub Stars
36
User Rating
Not Rated
Favorites
0
Views
19
Forks
7
Issues
3
LangGraph Coding Agent Team with MCP
This project implements a small team of coding agents using LangGraph and the Model Context Protocol (MCP). The agents use MCP servers to provide tools and capabilities through a unified gateway.
The overall objective of this agent team is to take requirements and code context and create multiple implementations of proposed features; human operators can then choose their preferred approach and proceed, discarding the others.
This project originated from the Anthropic MCP Hackathon in NYC on 12/11/2024 and has since evolved into its own standalone project.
Architecture
The system consists of three main components:
MCP Gateway Server: A server that:
- Manages multiple MCP server processes
- Provides a unified API for accessing tools
- Handles communication with MCP servers
- Exposes tools through a simple HTTP interface
MCP Servers: Individual servers that provide specific capabilities:
- GitHub Server: Repo operations (read, write, list, search, create branch, create PR, etc.)
- Additional servers can be added for more capabilities
Coding Agents: There are three agents that collaborate to accomplish coding tasks:
- Orchestrator: Gathers context from human messages and uses MCP servers to access Linear and GitHub. Delegates to planner and coder as needed.
- Planner: Takes requirements and code context and creates a plan with multiple implementation suggestions. Does not use MCP.
- Coder: Takes code context and proposed implementations and implements all of them on separate GitHub branches.
Getting Started
1. Install Dependencies
# Install the agent package
pip install -e .
# Install the gateway package
cd gateway
pip install -e .
cd ..
2. Configure Environment Variables
The agent supports multiple LLM providers through environment variables:
# LLM Configuration - supports multiple providers:
LLM_MODEL=provider/model-name
# Supported providers and example models:
# - Anthropic: anthropic/claude-3-5-sonnet-20240620
# - OpenAI: openai/gpt-4
# - OpenRouter: openrouter/openai/gpt-4o-mini
# - Google: google/gemini-1.5-pro
# API Keys for different providers
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
GOOGLE_API_KEY=your_google_api_key
# OpenRouter Configuration (if using OpenRouter)
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
3. Configure MCP Servers
The gateway server is configured through gateway/config.json
. By default, it starts two MCP servers:
{
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/directory"
]
},
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
}
You can add more servers from the official MCP servers repository.
4. Start the Gateway Server
cd gateway
python -m mcp_gateway.server
The server will start on port 8808 by default.
5. Configure the Agent
The agent's connection to the gateway is configured in langgraph.json
:
{
"dependencies": ["."],
"graphs": {
"agent": "./src/react_agent/graph.py:graph"
},
"env": ".env",
"mcp": {
"gateway_url": "http://localhost:8808"
}
}
6. Use the Agent
Open the folder in LangGraph Studio! The agent will automatically:
- Connect to the gateway server
- Discover available tools
- Make tools available for use in conversations
Available Tools
The agent has access to tools from both MCP servers:
Filesystem Tools
read_file
: Read file contentswrite_file
: Create or update fileslist_directory
: List directory contentssearch_files
: Find files matching patterns- And more...
Memory Tools
create_entities
: Add entities to knowledge graphcreate_relations
: Link entities togethersearch_nodes
: Query the knowledge graph- And more...
Development
Adding New MCP Servers
- Find a server in the MCP servers repository
- Add its configuration to
gateway/config.json
- The agent will automatically discover its tools
Customizing the Agent
- Modify the system prompt in
src/react_agent/prompts.py
- Update the agent's reasoning in
src/react_agent/graph.py
- Add new capabilities by including more MCP servers
Documentation
License
This project is licensed under the MIT License - see the LICENSE file for details.