Skip to main content

Transform Strands Agents into MCP servers, exposing agent tools to any MCP-compatible client

Project description

strands-mcp-server

PyPI

Bidirectional MCP integration for Strands Agents.

pip install strands-mcp-server

Overview

  • mcp_server - Expose agent as MCP server
  • mcp_client - Connect to MCP servers
  • CLI - stdio for Claude Desktop
graph LR
    subgraph "Your Strands Agent"
        A[Tools: calculator, shell, etc.]
        B[mcp_server tool]
        C[mcp_client tool]
        A --> B
        C --> A
    end
    
    subgraph "Server Mode"
        B -->|HTTP/stdio| D[MCP Protocol]
        D --> E[Claude Desktop]
        D --> F[Other Agents]
        D --> G[Custom Clients]
    end
    
    subgraph "Client Mode"
        H[Remote MCP Servers] -->|HTTP/stdio/SSE| I[MCP Protocol]
        I --> C
    end
    
    subgraph "CLI"
        J[uvx strands-mcp-server] -->|Local Mode| D
        J -->|Proxy Mode| I
    end
    
    style A fill:#2d3748,stroke:#4a5568,color:#fff
    style B fill:#2b6cb0,stroke:#2c5282,color:#fff
    style C fill:#38a169,stroke:#2f855a,color:#fff
    style D fill:#805ad5,stroke:#6b46c1,color:#fff
    style I fill:#805ad5,stroke:#6b46c1,color:#fff
    style E fill:#d69e2e,stroke:#b7791f,color:#fff
    style F fill:#d69e2e,stroke:#b7791f,color:#fff
    style G fill:#d69e2e,stroke:#b7791f,color:#fff
    style H fill:#e53e3e,stroke:#c53030,color:#fff
    style J fill:#48bb78,stroke:#38a169,color:#fff

Quick Start

Server:

from strands import Agent
from strands_mcp_server import mcp_server

agent = Agent(tools=[..., mcp_server])
agent("start mcp server on port 8000")

Client:

from strands import Agent
from strands_mcp_server import mcp_client

agent = Agent(tools=[mcp_client])
agent.tool.mcp_client(
    action="connect",
    connection_id="remote",
    transport="http",
    server_url="http://localhost:8000/mcp"
)
agent.tool.mcp_client(
    action="call_tool",
    connection_id="remote",
    tool_name="calculator",
    tool_args={"expression": "42 * 89"}
)

For Agents like Claude Desktop/Kiro/...:

{
  "mcpServers": {
    "my-agent": {
      "command": "uvx",
      "args": ["strands-mcp-server", "--cwd", "/path/to/project"]
    }
  }
}

API

mcp_server

Parameter Default Description
action required start, stop, status, list
transport http http or stdio
port 8000 Port
tools None Tools to expose (None = all)
expose_agent True Include invoke_agent
stateless False Multi-node ready

mcp_client

Parameter Description
action connect, disconnect, list_tools, call_tool
connection_id Connection ID
transport http, stdio, sse
server_url Server URL
tool_name Tool to call
tool_args Tool arguments

invoke_agent

Full agent access when expose_agent=True:

agent.tool.mcp_client(
    action="call_tool",
    connection_id="remote",
    tool_name="invoke_agent",
    tool_args={"prompt": "Calculate 2 + 2"}
)

CLI

uvx strands-mcp-server [OPTIONS]
Option Description
--cwd PATH Working directory
--upstream-url URL Upstream server (proxy)
--system-prompt TEXT System prompt
--no-agent-invocation Disable invoke_agent
--debug Debug mode

Examples:

# Local
uvx strands-mcp-server --cwd /path/to/project

# Proxy
uvx strands-mcp-server --upstream-url http://localhost:8000/mcp

Troubleshooting

# Debug
uvx strands-mcp-server --cwd /path --debug

# Check connection
curl http://localhost:8000/mcp

# Port in use
lsof -i :8000 && kill -9 <PID>

# Claude logs
tail -f ~/Library/Logs/Claude/mcp*.log

Links


License: Apache 2.0

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

strands_mcp_server-0.1.3.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

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

strands_mcp_server-0.1.3-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file strands_mcp_server-0.1.3.tar.gz.

File metadata

  • Download URL: strands_mcp_server-0.1.3.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for strands_mcp_server-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0a7e119fa0d890f13ce49f249ec62bde4fd6b18b3974183835fa8d20ce2b3a8e
MD5 569850d43f7e86cb6aff912c5aaff2b8
BLAKE2b-256 80dacf79d8efbad28aa3856d4660308804f0cbc6683314baec533d68946ec74d

See more details on using hashes here.

File details

Details for the file strands_mcp_server-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for strands_mcp_server-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a5ee5de8df86a8b537f28ab1de09cdba5a5964907aec01acf7ed347ace2efb12
MD5 90a8f59ed898dd5a70ca6052376b6747
BLAKE2b-256 d8a80efda1d39082f87f3843a306472657dd427117a4ab4feb513bfc5ddc5a6c

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