项目简介

mimicking-human-beings 仓库实现了一个基于 Model Context Protocol (MCP) 的模块化服务器集群,专为在 AWS 云环境中为大型语言模型 (LLM) 提供上下文信息和工具服务而设计。该项目旨在简化 MCP 服务器的部署和管理,并提供与 AWS Bedrock 的集成。

主要功能点

  • 模块化 MCP 服务器: 支持部署多个具有不同功能的 MCP 服务器,例如 URL 内容获取、ROI 计算和随机网页链接生成。
  • AWS Bedrock 集成: 无缝集成 AWS Bedrock,利用其强大的 LLM 能力作为后端模型。
  • 工具 (Tools) 注册和执行: 允许 LLM 调用外部功能,例如获取网页标题、进行投资回报率计算、以及获取随机网页链接。
  • Docker 容器化部署: 提供 Docker 支持,方便快速部署和管理 MCP 服务器。
  • AWS Lambda Serverless 部署: 支持将 MCP 客户端打包为 Lambda 函数,实现 Serverless 客户端部署。
  • AWS CDK 基础设施即代码: 使用 AWS CDK 进行基础设施管理和自动化部署,简化云资源配置。

安装步骤

  1. 安装 uv 和设置环境:
    make setup
  2. 安装依赖:
    make install
    或安装开发依赖:
    make dev

服务器配置

该仓库实现了多个示例 MCP 服务器,例如 'url_fetcher_server.py' (URL 内容获取服务器), 'roi_calculator_server.py' (ROI 计算服务器) 和 'random_web_server.py' (随机网页链接服务器)。 MCP 客户端需要配置要连接的服务器信息。以下是一个 JSON 格式的服务器配置示例,用于配置连接仓库中提供的示例服务器:

[
  {
    "server_name": "url-fetcher",
    "command": "python",
    "args": ["examples/url_fetcher_server.py"]
  },
  {
    "server_name": "roi-calculator",
    "command": "python",
    "args": ["examples/roi_calculator_server.py"]
  },
  {
    "server_name": "random-web",
    "command": "python",
    "args": ["examples/random_web_server.py"]
  }
]

配置参数说明:

  • 'server_name': 服务器名称,客户端用以区分不同功能的服务器,例如 "url-fetcher", "roi-calculator", "random-web" 等。
  • 'command': 启动服务器的命令,通常为 'python',表明服务器程序使用 Python 解释器运行。
  • 'args': 启动命令的参数列表,指定服务器脚本的路径,指向 'examples' 目录下相应的服务器 Python 脚本文件名。

注意: 上述配置适用于本地运行示例服务器。在 AWS 云环境中部署后,服务器的实际地址和端口将由 AWS 负载均衡器 (Load Balancer) 动态提供,客户端需要配置负载均衡器的 DNS 名称以连接服务器集群。

基本使用方法

  1. 本地运行服务器:
    python examples/url_fetcher_server.py
    python examples/roi_calculator_server.py
    python examples/random_web_server.py
  2. 运行客户端示例:
    python examples/client_example.py
    客户端示例 'client_example.py' 演示了如何初始化 MCP 客户端、连接到本地运行的 MCP 服务器,并发送用户请求进行交互。 你可以修改 'examples/client_example.py' 中的代码,体验与不同 MCP 服务器的功能互动,例如发送包含 URL 的消息给 'url-fetcher' 服务器,或请求 'roi-calculator' 服务器进行投资回报率计算。

信息

分类

AI与计算