Skip to main content

strands-mcp-server

PyPI

Awesome Strands Agents

Bidirectional MCP integration for Strands Agents.

pip install strands-mcp-server
Strands Server 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

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.4.tar.gz (30.9 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.4-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for strands_mcp_server-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7c2474fdd7dc5bd553fb3fe002350c30bd30f6bc621138e48fd0b650c893df0e
MD5 bff87c559502dbf0acf99169efa7d897
BLAKE2b-256 1fd6873ae2c6efebbe444ddae7ec2a6d49a5d8bc421c6c745f8abe3be74ff4a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for strands_mcp_server-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 defb13b52927b74a8827f751d3da36a78bfcb2b6113fbc2d3d429db6359c43a4
MD5 9a9a1ab01eb26de5a66979829b213591
BLAKE2b-256 adec92f26549f0f22be09ec8a15fc6f8150210553e2f828d3b4a89e10c8159f7

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 Sentry Error logging StatusPage Status page