imgaray/strands-agents-mcp
If you are the rightful owner of strands-agents-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for executing Strands agents, providing integration with Amazon Q and other MCP-compatible systems.
Strands Agent MCP
A Model Context Protocol (MCP) server for executing Strands agents. This project provides a simple way to integrate Strands agents with Amazon Q and other MCP-compatible systems.
IMPORTANT: This project is currently in alpha stage and not yet published on PyPI.
Overview
Strands Agent MCP is a bridge between the Strands agent framework and the Model Context Protocol (MCP). It allows you to:
- Register Strands agents as MCP tools
- Execute Strands agents through MCP
- Find agents by specific skills
The project uses a plugin architecture that makes it easy to add new agents without modifying the core code.
Installation
Note: This package is not yet available on PyPI. You'll need to install it from source.
# Clone the repository
git clone https://github.com/yourusername/strands-agent-mcp.git
cd strands-agent-mcp
# Install the package
pip install -e .
Usage
Starting the MCP Server
strands-agent-mcp
This will start the MCP server.
Environment Variables
The server supports the following environment variables:
PLUGIN_PATH
: Custom path to look for plugins (default: ".")PLUGIN_NAMESPACE
: Custom namespace prefix for plugins (default: 'sap_mcp_plugin')
Creating Agent Plugins
To create a new agent plugin, create a Python package with a name that starts with sap_mcp_plugin_
(sap stands for strands agent plugin). Your package should implement a build_agents
function that returns a list of AgentEntry
objects:
from typing import List
from boto3 import Session
from strands import Agent
from strands.models import BedrockModel
from strands_agent_mcp.registry import AgentEntry
def build_agents() -> List[AgentEntry]:
return [
AgentEntry(
name="my-agent",
agent=Agent(
model=BedrockModel(boto_session=Session(region_name="us-west-2"))
),
skills=["general-knowledge", "coding"]
)
]
Using with Amazon Q
Once the MCP server is running, you can connect it to Amazon Q. Refer to the Amazon Q documentation for the correct connection parameters.
The following MCP tools will be available:
execute_agent
: Execute an agent with parametersagent_name
andprompt
list_agents
: List all available agents
Architecture
The project consists of three main components:
- Server: The MCP server that exposes the agent execution API
- Registry: A registry for managing available agents and their skills
- Plugins: Dynamically discovered modules that register agents with the registry
The server automatically discovers all installed plugins that follow the naming convention and registers their agents.
Dependencies
fastmcp>=2.3.4
: For implementing the MCP serverstrands-agents>=0.1.1
: The core Strands agent frameworkstrands-agents-builder>=0.1.0
: Tools for building Strands agentsstrands-agents-tools>=0.1.0
: Additional tools for Strands agents
Development
This project uses uv for dependency management. To set up a development environment:
- Clone the repository
- Install uv if you don't have it already:
pip install uv
- Create a virtual environment and install dependencies:
uv venv uv sync
Sample Plugin
The repository includes a sample plugin (sap_mcp_plugin_simple
) that demonstrates how to create and register a simple agent:
from typing import List
from boto3 import Session
from strands import Agent
from strands.models import BedrockModel
from strands_agent_mcp.registry import AgentEntry
def build_agents() -> List[AgentEntry]:
return [
AgentEntry(
name="simple-agent",
agent=Agent(
model=BedrockModel(boto_session=Session(region_name="us-west-2"))
),
skills=["general-knowledge"]
)
]
License
This project is licensed under the terms of the LICENSE file included in the repository.