项目简介
本仓库是AWS提供的一个关于Strands Agents框架的综合学习路径。其中包含多个课程,本MCP服务器实现来自于课程1的Lab 4,它演示了如何构建并运行一个基于Model Context Protocol (MCP) 的工具服务器。这个服务器的核心职责是向LLM(大型语言模型)客户端提供标准化的工具调用接口,允许LLM客户端通过协议调用预定义的外部功能,例如执行数学计算。
主要功能点
- MCP服务器: 启动一个符合Model Context Protocol (MCP) 规范的服务端,支持基于HTTP的流式通信协议(Streamable HTTP)。
- 工具托管: 在服务器端注册并托管加法、减法、乘法、除法四种基础计算器工具。
- LLM集成: 允许Strands Agent或其他兼容MCP的LLM客户端通过标准化的MCP协议发现并调用这些工具来执行计算任务。
- 实时交互: 演示了LLM代理如何作为客户端连接并与MCP服务器进行实时互动,利用服务器提供的工具获取计算结果。
安装步骤
-
克隆仓库: 首先,将GitHub仓库克隆到你的本地计算机:
git clone https://github.com/aws-samples/sample-getting-started-with-strands-agents-course.git cd sample-getting-started-with-strands-agents-course -
创建并激活虚拟环境: 强烈建议为项目创建一个独立的Python虚拟环境,以避免依赖冲突:
python -m venv .venv # 在macOS/Linux上激活 source .venv/bin/activate # 在Windows上激活 .venv\Scripts\activate -
安装必要依赖: 在激活的虚拟环境中,安装MCP服务器和Strands Agent客户端所需的Python库:
pip install strands-agents mcp-server mcp-client python-dotenv(注意: 'strands-agents'、'mcp-server'、'mcp-client' 和 'python-dotenv' 是运行此示例的关键库。)
-
配置API密钥: 创建一个名为'.env'的文件在项目根目录(或运行'mcp_calulator.py'脚本的同级目录),并填入你的Anthropic API密钥。这是Strands Agent客户端连接LLM所需的,MCP服务器本身通常不需要此密钥:
ANTHROPIC_API_KEY=sk-ant-your_anthropic_api_key保存文件。
服务器配置(MCP客户端需要的信息)
当MCP客户端需要连接此计算器服务器时,它需要以下关键信息:
- 服务器名称: 'Calculator Server' (计算器服务器)
- 通信地址: 'http://localhost:8000/mcp/' (MCP服务器将在此地址监听客户端请求)
- 启动命令: 运行 'sample-getting-started-with-strands-agents-course/course-1/Lab4/mcp_calulator.py' 脚本(例如,'python /path/to/mcp_calulator.py')。MCP客户端的底层机制会通过此命令启动服务器或与其进行通信。
- 传输协议: 'streamable-http' (一种基于HTTP的流式传输协议,用于JSON-RPC消息交换)
- 可用工具: 'add' (加法), 'subtract' (减法), 'multiply' (乘法), 'divide' (除法)。MCP客户端会发现并调用这些工具。
基本使用方法
-
启动MCP计算器服务器:
- 在命令行中,进入 'course-1/Lab4' 目录:
cd course-1/Lab4 - 运行 'mcp_calulator.py' 脚本:
python mcp_calulator.py - 服务器将显示“Starting MCP Calculator Server on http://localhost:8000”并开始监听传入的MCP请求。
- 在命令行中,进入 'course-1/Lab4' 目录:
-
与服务器互动:
- 脚本会自动启动一个Strands Agent作为MCP客户端,并连接到本地运行的MCP计算器服务器。
- 在同一个终端中,你将看到“Calculator Agent Ready! Type 'exit' to quit.”的提示。
- 现在,你可以输入数学计算问题(例如:“What is 50 plus 30?”、“Multiply 15 by 7”、“Divide 100 by 4”)。Strands Agent会智能地识别并调用MCP服务器上相应的计算器工具来获取结果,然后以自然语言回复你。
- 输入 'exit' 或 'quit' 即可结束会话并关闭服务器。
信息
分类
AI与计算