Skip to main content

An adapter library for Model Context Protocol (MCP) SSE servers to connect as stdio

Project description

AnyMCP

An adapter library for Model Context Protocol (MCP) SSE servers to connect as stdio.

Overview

AnyMCP provides a bridge between SSE-based (Server-Sent Events) MCP servers and standard input/output (stdio). It allows you to connect to remote model servers that implement MCP over SSE and interact with them using traditional stdio interfaces.

Features

  • Connect to MCP servers via SSE endpoints
  • Bridge SSE communication to standard input/output
  • Maintain persistent connections with automatic reconnection
  • Support for authentication via bearer tokens
  • Comprehensive logging with adjustable verbosity
  • Configurable timeouts and heartbeat intervals

Installation

Using pip

pip install anymcp

From source

git clone https://github.com/arcee-ai/anymcp.git
cd anymcp
pip install -e .

Usage

Command Line Interface

Connect to an SSE-based MCP server:

anymcp connect http://localhost:8000/sse

With authentication:

anymcp connect http://localhost:8000/sse --token YOUR_AUTH_TOKEN

Add custom headers:

anymcp connect http://localhost:8000/sse --header "X-Custom-Header=Value"

Enable debug logging:

anymcp connect http://localhost:8000/sse --debug

Python API

Use AnyMCP in your Python applications:

import asyncio
from anymcp import connect_sse_as_stdio

async def main():
    async with connect_sse_as_stdio(
        sse_url="http://localhost:8000/sse",
        token="YOUR_AUTH_TOKEN",
        timeout=5.0,
        sse_read_timeout=300.0
    ) as (reader, writer):
        # Now your application can communicate with the MCP server
        # through reader and writer streams
        pass

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

Development

Setup

# Install in development mode
pip install -e ".[dev]"

Running Tests

make test

Code Quality

# Format code
make style

# Check code quality
make quality

Building

# Build package
make pip

# Upload to PyPI
make pip-upload

Docker

# Build Docker image
make docker-buildx

# Build and push Docker image
make docker-buildx-push

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

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

Source Distribution

anymcp-0.0.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

anymcp-0.0.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file anymcp-0.0.1.tar.gz.

File metadata

  • Download URL: anymcp-0.0.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for anymcp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 dfa707c00edb61c7d0e4384af75e2bb382945dd23d8ead47d938fb7482314eed
MD5 2ea0bd470231a8dba23c4b1dcac51211
BLAKE2b-256 013d6785e9adddd72a25f8f52d3dd950db1e447625ba77016c27f2de01e2e864

See more details on using hashes here.

File details

Details for the file anymcp-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: anymcp-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for anymcp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aba439e76daf9dd5ea9403841c749c762a5629eb75e45f6b23a84d74e84b2f47
MD5 9c5c9e7412581bf685e0349c433a4f6f
BLAKE2b-256 17e515f356fe94d60f047e723ba28b80ccd3d63b042f2223ae2ef04599c64b8c

See more details on using hashes here.

Supported by

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