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


License: Apache 2.0

Metadata

Release files for strands-mcp-server 0.1.4

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

Source distribution (sdist)

Source distribution for strands-mcp-server 0.1.4
File Size Uploaded
strands_mcp_server-0.1.4.tar.gz 30.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-mcp-server 0.1.4
File Interpreter ABI Platform
strands_mcp_server-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 56.9 kB

Release files / strands_mcp_server-0.1.4.tar.gz

Download URL strands_mcp_server-0.1.4.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7c2474fdd7dc5bd553fb3fe002350c30bd30f6bc621138e48fd0b650c893df0e
BLAKE2b-256 checksum
How to use checksums
1fd6873ae2c6efebbe444ddae7ec2a6d49a5d8bc421c6c745f8abe3be74ff4a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / strands_mcp_server-0.1.4-py3-none-any.whl

Download URL strands_mcp_server-0.1.4-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
defb13b52927b74a8827f751d3da36a78bfcb2b6113fbc2d3d429db6359c43a4
BLAKE2b-256 checksum
How to use checksums
adec92f26549f0f22be09ec8a15fc6f8150210553e2f828d3b4a89e10c8159f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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