使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的示例服务器实现,使用 Node.js 和官方 MCP SDK 开发。它演示了如何创建一个MCP服务器来暴露多种工具(Tools),供遵守MCP协议的AI代理(如 Strands Agents)调用。服务器主要功能包括提供基础工具和集成第三方API(如 Shutterstock)进行图像搜索。
主要功能点
- 多种实用工具: 提供了如文本回显(echo)、个性化问候(greet)、矩形面积计算(calculate_area)等基础工具。
- Shutterstock 图像搜索: 集成 Shutterstock API,允许AI代理通过工具调用来搜索和获取图像信息。
- 环境变量访问: 提供一个工具来安全地从服务器端获取预设的环境变量值(如 API 密钥)。
- 支持多种传输协议: 提供了基于标准输入/输出 (Stdio) 和可流式HTTP (Streamable HTTP) 的两种服务器实现,适应不同的部署和连接需求。
- AI代理集成示例: 仓库中包含一个 Python 客户端示例,展示了AI代理如何连接到此MCP服务器并调用其提供的工具,实现多代理协同完成任务(如获取天气信息后搜索相关图像)。
安装步骤
- 准备环境: 确保已安装 Git、Node.js (推荐 LTS 版本或更新) 及 npm 或 Yarn 包管理器,以及 Python 3.13.x 及 pip 包管理器。
- 克隆仓库:
git clone https://github.com/garystafford/aws-strands-agents-mcp-demo.git cd aws-strands-agents-mcp-demo - 安装 Node.js 依赖:
yarn install # 或者 npm install - 安装 Python 依赖 (可选,用于运行示例客户端):
python -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt
服务器配置
该仓库提供了两个MCP服务器实现:一个使用 Stdio 传输协议 ('mcp-server.js'),另一个使用 Streamable HTTP 传输协议 ('mcp-server-remote.js')。你的MCP客户端需要根据你选择运行的服务器类型进行相应的配置。
- 对于使用 Stdio 协议的服务器 ('mcp-server.js'):
- 服务器名称: Shutterstock Image Search MCP Server - STDIO Transport
- 连接方式: 通过标准输入/输出流与客户端通信。
- 启动命令和参数: 你的MCP客户端需要配置用于启动 'mcp-server.js' 脚本的命令(通常是 'node' 可执行文件路径)及其参数(服务器脚本文件路径)。
- 所需环境变量: 在启动 'mcp-server.js' 进程之前,必须设置 'API_KEY' 和 'SHUTTERSTOCK_API_TOKEN' 这两个环境变量。
- 对于使用 Streamable HTTP 协议的服务器 ('mcp-server-remote.js'):
- 服务器名称: Shutterstock Image Search MCP Server - Stateless Streamable HTTP Transport
- 连接方式: 通过向 '/mcp' 路径发送 HTTP POST 请求进行通信。
- 地址: 默认运行在 'http://localhost:3000'。你的MCP客户端需要配置连接到这个地址。
- 所需环境变量: 在运行 'mcp-server-remote.js' 之前,必须设置 'API_KEY' 和 'SHUTTERSTOCK_API_TOKEN' 这两个环境变量。
基本使用方法
- 获取 API 密钥: 注册一个 Shutterstock 测试账号并获取 API 密钥,准备一个 'API_KEY' 值(示例中用作演示)。
- 启动 MCP 服务器: 在一个终端窗口中,设置必要的环境变量并启动你选择的MCP服务器。
- Stdio 服务器示例:
export API_KEY=your_api_key_here export SHUTTERSTOCK_API_TOKEN=your_shutterstock_token_here node mcp-server.js - Streamable HTTP 服务器示例:
export API_KEY=your_api_key_here export SHUTTERSTOCK_API_TOKEN=your_shutterstock_token_here node mcp-server-remote.js
- Stdio 服务器示例:
- 运行 MCP 客户端: 在另一个终端窗口中,启动你的 MCP 客户端应用(例如仓库中提供的 'agent_stdio_multi_agent.py' 脚本)。客户端需要配置正确的连接信息(传输协议、地址或启动命令)才能连接到正在运行的 MCP 服务器。确保客户端也设置了必要的环境变量。
- 运行示例客户端 (连接 Stdio 服务器):
注意:你可能需要修改 'agent_stdio_multi_agent.py' 中的 'StdioServerParameters' 来指向你的 Node.js 可执行文件路径和 'mcp-server.js' 脚本路径。source .venv/bin/activate # 如果使用了虚拟环境 export API_KEY=your_api_key_here export SHUTTERSTOCK_API_TOKEN=your_shutterstock_token_here python agent_stdio_multi_agent.py
- 运行示例客户端 (连接 Stdio 服务器):
- 与客户端交互: 通过客户端的接口向AI代理发送请求,AI代理将利用连接的MCP服务器提供的工具来处理请求,例如执行图像搜索或调用其他功能。
信息
分类
AI与计算