项目简介

本仓库是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服务器进行实时互动,利用服务器提供的工具获取计算结果。

安装步骤

  1. 克隆仓库: 首先,将GitHub仓库克隆到你的本地计算机:

    git clone https://github.com/aws-samples/sample-getting-started-with-strands-agents-course.git
    cd sample-getting-started-with-strands-agents-course
  2. 创建并激活虚拟环境: 强烈建议为项目创建一个独立的Python虚拟环境,以避免依赖冲突:

    python -m venv .venv
    # 在macOS/Linux上激活
    source .venv/bin/activate
    # 在Windows上激活
    .venv\Scripts\activate
  3. 安装必要依赖: 在激活的虚拟环境中,安装MCP服务器和Strands Agent客户端所需的Python库:

    pip install strands-agents mcp-server mcp-client python-dotenv

    (注意: 'strands-agents'、'mcp-server'、'mcp-client' 和 'python-dotenv' 是运行此示例的关键库。)

  4. 配置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客户端会发现并调用这些工具。

基本使用方法

  1. 启动MCP计算器服务器:

    • 在命令行中,进入 'course-1/Lab4' 目录:
      cd course-1/Lab4
    • 运行 'mcp_calulator.py' 脚本:
      python mcp_calulator.py
    • 服务器将显示“Starting MCP Calculator Server on http://localhost:8000”并开始监听传入的MCP请求。
  2. 与服务器互动:

    • 脚本会自动启动一个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与计算