Skip to main content

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:

  1. MCP Server: A process that exposes resources and tools following the MCP specification
  2. MCPAssistantAgent: An AutoGen AssistantAgent extension that implements the MCP client interface
  3. Example Script: Demonstrates an MCP-enabled agent using LLM capabilities with MCP resources/tools

Setup

Prerequisites

  1. Install uv package 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 the call_tool interface 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_tools to 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_tool with 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_tool to proxy specific tool requests to the server
  • LLM integration layer only handles:
    • Registering MCP interface methods as tools (e.g., call_tool in OpenAI format)
    • Routing tool calls through the MCP client

AutoGen-Specific Benefits

When compared to traditional AutoGen tool implementations:

  1. 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_tool interface registered
  2. 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]

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0.tar.gz (41.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Hashes for iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c2c9134a4615f1c61c5237e71f1da243102471d0ef6a13ac6cc76fcb985ef347
MD5 b4d8b610d146f5e355d3df1c402ce5dc
BLAKE2b-256 29680733efced91de34982503acd814e61f463626a5582248153189ab544461e

See more details on using hashes here.

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

Hashes for iflow_mcp_jtanningbed_mcp_ag2_example-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1b181c7c6c8e983836e8a52133ada0e0445427af1a185e5e6d4b1570a8c774e4
MD5 d03c839c14ed2589f8a1288fba6a7faf
BLAKE2b-256 358f82f78842bf4201e2edd68fe47e5d5714506ff047269dac3b9a647ed64751

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page