Strands MCP Server
The Strands MCP Server provides bidirectional Model Context Protocol (MCP) integration, enabling a Strands Agent to both expose its capabilities as an MCP server and connect to remote MCP servers as a client.
Server Mode: Expose your Strands Agent's tools via HTTP or stdio transport for use with Claude Desktop, other agents, or custom clients. External clients can invoke the full agent functionality through the invoke_agent tool using natural language prompts, or call individual exposed tools like the demo greet tool.
Client Mode (mcp_client tool): Connect to and interact with remote MCP servers using HTTP, stdio, or SSE transports. This allows you to list available tools from connected servers, call remote tools with arguments, manage multiple simultaneous connections with unique IDs, and disconnect when done.
Key Features:
Agent Invocation: Execute complex queries requiring reasoning across multiple tools using natural language
Connection Management: Maintain and track multiple server connections simultaneously
Multi-transport Support: HTTP, stdio, and Server-Sent Events (SSE) protocols
CLI Interface: Run in Local Mode (standalone server) or Proxy Mode (connecting to upstream servers)
Stateless Operation: Support for multi-node deployments when stateless mode is enabled
Server Lifecycle Management: Start, stop, check status, and list server configurations
Use Cases: Bridge multiple MCP servers together, test MCP implementations, proxy connections for Claude Desktop, build complex agent workflows leveraging remote tools, and enable bidirectional agent-to-agent communication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Strands MCP Server connect to the weather server at http://localhost:8080/mcp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
strands-mcp-server
Bidirectional MCP integration for Strands Agents.
pip install strands-mcp-serverOverview
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:#fffRelated MCP server: Agent Hub MCP
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 |
| required |
|
|
|
|
| 8000 | Port |
| None | Tools to expose (None = all) |
| True | Include |
| False | Multi-node ready |
mcp_client
Parameter | Description |
|
|
| Connection ID |
|
|
| Server URL |
| Tool to call |
| 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 |
| Working directory |
| Upstream server (proxy) |
| System prompt |
| Disable invoke_agent |
| Debug mode |
Examples:
# Local
uvx strands-mcp-server --cwd /path/to/project
# Proxy
uvx strands-mcp-server --upstream-url http://localhost:8000/mcpTroubleshooting
# 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*.logLinks
License: Apache 2.0
Available Tools
3 toolsgreetC
Greet someone with different styles.
Returns: str: A greeting message
Inputs: name (required), style.
invoke_agentA
Invoke the full strands-mcp-cli agent with a natural language prompt. Use this for complex queries that require reasoning across multiple tools or when you need a conversational response from the agent.
Inputs: prompt (required).
mcp_clientA
Test and interact with MCP servers.
This tool provides a complete MCP client implementation for testing and using MCP servers from within a Strands Agent.
Returns: Result dictionary with status and content
Examples: # Connect to HTTP server mcp_client( action="connect", connection_id="my-server", transport="http", server_url="http://localhost:8000/mcp" )
# Connect to stdio server
mcp_client(
action="connect",
connection_id="stdio-server",
transport="stdio",
command="python",
args=["mcp_server_stdio.py"]
)
# List tools from connection
mcp_client(action="list_tools", connection_id="my-server")
# Call a tool
mcp_client(
action="call_tool",
connection_id="my-server",
tool_name="calculator",
tool_args={"expression": "2 + 2"}
)
# List all connections
mcp_client(action="list_connections")
# Disconnect
mcp_client(action="disconnect", connection_id="my-server")Notes: - stdio transport: Server must be launchable as subprocess - HTTP transport: Server must be already running - Connections are maintained in global state for reuse
Inputs: action (required), connection_id, transport, server_url, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
The three tools have distinct primary purposes—greeting, invoking an agent, and interacting with MCP servers—but there is some functional overlap between 'invoke_agent' and 'mcp_client', as both can handle MCP-related tasks. The descriptions clarify their roles, but an agent might be uncertain when to use one over the other for complex MCP operations.
The naming is mixed: 'greet' uses a simple verb, 'invoke_agent' follows a verb_noun pattern, and 'mcp_client' uses a noun-based name. While readable, there is no consistent convention across all tools, leading to a lack of predictability in the naming scheme.
With only three tools, the server feels under-scoped for its apparent purpose of MCP interaction and agent invocation. The 'mcp_client' tool is comprehensive, but the limited set may force agents to rely heavily on it for varied tasks, suggesting a mismatch between the tool count and the server's broad functionality.
The server lacks clear coverage for common MCP workflows. While 'mcp_client' provides a generic interface, there are no dedicated tools for specific actions like listing servers, managing connections, or handling errors. This forces agents to use a single, multi-purpose tool, which can lead to inefficiencies and potential gaps in handling nuanced scenarios.
Maintenance
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
One profile — skills, credentials, and memory — synced to every agent tool via one MCP URL.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that enables integration of Strands agents with Amazon Q and other MCP-compatible systems through a plugin architecture.38MIT
- AlicenseAqualityDmaintenanceEnables multi-agent collaboration across different AI assistants and projects by providing a universal coordination layer for MCP-compatible agents to communicate, share context, and coordinate complex tasks seamlessly.1232 npm33MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to communicate, coordinate, and collaborate on complex tasks through a local MCP server.8 npm8ISC
- AlicenseNot gradedqualityCmaintenanceMCP server that bridges AI agents with external tools, APIs, databases, and services, enabling standardized tool execution and resource access.MIT