Skip to main content

Model-Agnostic MCP Library for LLMs

A Python library that lets any LLM (Language Learning Model) use MCP (Multi-Channel Platform) tools through a unified interface. The goal is to let developers easily connect any LLM to tools like web browsing, file operations, etc.

Core Concept

  • Leverage existing LangChain adapters rather than reinventing them
  • Focus on bridging MCPs and LangChain's tool ecosystem

Key Components

Connectors

Bridge to MCP implementations:

  • stdio.py: For local MCP processes
  • websocket.py: For remote WebSocket MCPs
  • http.py: For HTTP API MCPs

Tool Conversion

Convert between MCP and LangChain formats:

  • Convert MCP tool schemas to formats needed by different LLMs
  • Support OpenAI function calling, Anthropic tool format, etc.

Session Management

Handle connection lifecycle:

  • Authenticate and initialize MCP connections
  • Discover and register available tools
  • Handle tool calling with proper error management

Agent Integration

Ready-to-use agent implementations:

  • Pre-configured for MCP tool usage
  • Optimized prompts for tool selection

Installation

pip install mcpeer

Or install from source:

git clone https://github.com/pietrozullo/mcpeer.git
cd mcpeer
pip install -e .

Quick Start

Here's a simple example to get you started:

import asyncio
from mcp import StdioServerParameters
from mcpeer import MCPAgent

async def main():
    # Create server parameters for stdio connection
    server_params = StdioServerParameters(
        command="npx",
        args=["@playwright/mcp@latest"],
    )

    # Create a model-agnostic MCP client
    mcp_client = MCPAgent(
        server_params=server_params,
        model_provider="anthropic",  # Or "openai"
        model_name="claude-3-7-sonnet-20250219",  # Or "gpt-4o" for OpenAI
        temperature=0.7
    )

    # Initialize the client
    await mcp_client.initialize()

    # Run a query using the agent with tools
    result = await mcp_client.run_query(
        "Using internet tell me how many people work at OpenAI"
    )

    print("Result:")
    print(result)

    # Close the client
    await mcp_client.close()

if __name__ == "__main__":
    asyncio.run(main())

Simplified Usage

You can also use the simplified interface that handles connector lifecycle management automatically:

import asyncio
from langchain_openai import ChatOpenAI
from mcpeer import MCPAgent
from mcpeer.connectors.stdio import StdioConnector

async def main():
    # Create the connector
    connector = StdioConnector(
        command="npx",
        args=["@playwright/mcp@latest"],
    )

    # Create the LLM
    llm = ChatOpenAI(model="gpt-4o-mini")

    # Create MCP client
    mcp_client = MCPAgent(connector=connector, llm=llm, max_steps=30)

    # Run a query - MCPAgent handles connector lifecycle internally
    result = await mcp_client.run(
        "Using internet tell me how many people work at OpenAI",
        # manage_connector=True is the default
    )

    print("Result:")
    print(result)

if __name__ == "__main__":
    asyncio.run(main())

Advanced Usage

See the examples directory for more advanced usage examples:

  • basic_usage.py: Shows basic usage with different models
  • simplified_usage.py: Shows how to use automatic connector lifecycle management
  • websocket_example.py: Shows how to connect to a remote MCP over WebSocket

Requirements

  • Python 3.8+
  • MCP implementation (like Playwright MCP)
  • LangChain and appropriate model libraries (OpenAI, Anthropic, etc.)

License

MIT

Metadata

Release files for mcpeer 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpeer 0.1.0
File Size Uploaded
mcpeer-0.1.0.tar.gz 16.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpeer 0.1.0
File Interpreter ABI Platform
mcpeer-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.9 kB

Release files / mcpeer-0.1.0.tar.gz

Download URL mcpeer-0.1.0.tar.gz
Size 16.0 kB
Tags Source
SHA-256 checksum
How to use checksums
11e6743ee0e525f3515f1ea872e34749ae413bbd007c975fd8a48bb0e6b5b5b5
BLAKE2b-256 checksum
How to use checksums
22adb656c422956a1c00a34f44ab5a1e809420cad868afab0fcd9cf4ade88fb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2025.

Transparency log

Release files / mcpeer-0.1.0-py3-none-any.whl

Download URL mcpeer-0.1.0-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9619e8fe55831f5a835ac5222a8524814736221dc0c72fb9e7c4e7bee738f17b
BLAKE2b-256 checksum
How to use checksums
20b91803e2372912a3517eeda9a5f706e0c44596828fa88113c472d1ddcbf511
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page