Add your description here
Project description
MCP-AG2 Integration Example
This project demonstrates the integration of the Model Context Protocol (MCP) with AutoGen (AG2), showcasing a powerful pattern for building modular, tool-enabled AI agents.
Overview
The example implements three key components:
- MCP Server: A process that exposes resources and tools following the MCP specification
- MCPAssistantAgent: An AutoGen AssistantAgent extension that implements the MCP client interface
- Example Script: Demonstrates an MCP-enabled agent using LLM capabilities with MCP resources/tools
Setup
Prerequisites
- Install
uvpackage manager:
# macOS
brew install uv
# Other platforms
curl -LsSf https://astral.sh/uv/install.sh | sh
Installation
# Clone the repository
git clone https://github.com/jtanningbed/mcp-ag2-example
cd mcp-ag2-example
# Install dependencies
uv sync
# Run the example
uv run example.py
Key Benefits
This integration pattern offers several advantages over traditional tool/function calling implementations:
1. Protocol-Level Interface Abstraction
- The MCP client interface itself (
read_resource,call_tool, etc.) is exposed to the LLM agent through AG2's tool registration - Rather than registering individual tools directly with AG2, we register only the core MCP interface methods
- All specific tools (e.g.,
write_file) are proxied through thecall_toolinterface to the MCP server - This means tools defined on the MCP server don't need any format conversion for different LLMs - they remain in Anthropic schema format
2. Dynamic Tool Discovery and Model Agnosticism
- Agents use
list_toolsto discover available server tools - While the MCP server defines tools using Anthropic's schema format, the LLM never sees these directly
- The LLM only needs to understand how to use
call_toolwith a name and arguments - No need to convert tool schemas between different LLM formats since they're abstracted behind the MCP interface
3. Clean Separation of Concerns
- MCP server handles:
- Tool implementation details
- Tool schema definitions (in Anthropic format)
- Resource management
- Agent only handles:
- Understanding the core MCP interface methods
- Using
call_toolto proxy specific tool requests to the server
- LLM integration layer only handles:
- Registering MCP interface methods as tools (e.g.,
call_toolin OpenAI format) - Routing tool calls through the MCP client
- Registering MCP interface methods as tools (e.g.,
AutoGen-Specific Benefits
When compared to traditional AutoGen tool implementations:
-
Simplified Tool Integration
- No need to define tool schemas in multiple formats
- Tools are defined once on the MCP server in Anthropic format
- AG2 only needs the
call_toolinterface registered
-
Enhanced Modularity
- MCP servers can be used by any MCP-compatible client
- Tools and resources are completely decoupled from agent implementation
- New tools can be added to the server without any agent changes
Architecture Overview
graph LR
A[LLM] -->|Uses| B[AG2 Tool Interface]
B -->|Registered| C[MCP Interface Methods]
C -->|Proxy| D[MCP Client]
D -->|Protocol| E[MCP Server]
E -->|Implements| F[Tools & Resources]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0.tar.gz
- Upload date:
- Size: 41.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2c9134a4615f1c61c5237e71f1da243102471d0ef6a13ac6cc76fcb985ef347
|
|
| MD5 |
b4d8b610d146f5e355d3df1c402ce5dc
|
|
| BLAKE2b-256 |
29680733efced91de34982503acd814e61f463626a5582248153189ab544461e
|
File details
Details for the file iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b181c7c6c8e983836e8a52133ada0e0445427af1a185e5e6d4b1570a8c774e4
|
|
| MD5 |
d03c839c14ed2589f8a1288fba6a7faf
|
|
| BLAKE2b-256 |
358f82f78842bf4201e2edd68fe47e5d5714506ff047269dac3b9a647ed64751
|