代理执行协议服务器

Strands Agent MCP是一个模型上下文协议(MCP)服务器,用于执行Strands代理,支持与Amazon Q等MCP兼容系统集成。

  • by imgaray
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 imgaray/strands-agents-mcp

使用说明

Strands代理MCP

用于执行Strands代理的模型上下文协议(MCP)服务器。该项目提供了一种将Strands代理与Amazon Q和其他MCP兼容系统集成的简单方法。

重要:该项目目前处于alpha阶段,尚未在PyPI上发布。

概述

Strands Agent MCP是Strands代理框架和模型上下文协议(MCP)之间的桥梁。它允许您:

  • 将Strands代理注册为MCP工具
  • 通过MCP执行Strands代理
  • 根据特定技能查找代理

该项目使用插件架构,可以在不修改核心代码的情况下轻松添加新代理。

安装

注意:此软件包尚未在PyPI上提供。您需要从源代码安装它。

# Clone the repository
git clone https://github.com/yourusername/strands-agent-mcp.git
cd strands-agent-mcp

# Install the package
pip install -e .

用法

启动MCP服务器

strands-agent-mcp

这将启动MCP服务器。

环境变量

服务器支持以下环境变量:

  • PLUGIN_PATH:查找插件的自定义路径(默认:“.”)
  • PLUGIN_NAMESPACE:插件的自定义命名空间前缀(默认值:'sap_mcp_plugin')

创建代理插件

要创建一个新的代理插件,请创建一个名称以开头的Python包 sap_mcp_plugin_ (sap代表链代理插件)。您的软件包应该实现 build_agents 返回以下列表的函数 AgentEntry 物体:

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"]
        )
    ]

使用亚马逊Q

MCP服务器运行后,您可以将其连接到Amazon Q。有关正确的连接参数,请参阅Amazon Q文档。

以下MCP工具将可用:

  • execute_agent:使用参数执行代理 agent_name 和 prompt
  • list_agents:列出所有可用的代理

建筑

该项目由三个主要部分组成:

  1. 服务器:公开代理执行API的MCP服务器
  2. 注册表:管理可用代理及其技能的注册表
  3. 插件:在注册表中注册代理的动态发现模块

服务器会自动发现所有遵循命名约定的已安装插件,并注册其代理。

依赖项

  • fastmcp>=2.3.4:用于实现MCP服务器
  • strands-agents>=0.1.1:核心Strands代理框架
  • strands-agents-builder>=0.1.0:用于构建Strands代理的工具
  • strands-agents-tools>=0.1.0:Strands代理的附加工具

发展

此项目使用 紫外线 用于依赖性管理。要设置开发环境,请执行以下操作:

  1. 克隆存储库
  2. 如果你还没有安装uv: pip install uv
  3. 创建虚拟环境并安装依赖项:
    uv venv
    uv sync
    

示例插件

存储库包括一个示例插件(sap_mcp_plugin_simple)它演示了如何创建和注册一个简单的代理:

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文件的条款获得许可。