项目简介

这是一个可重用的Python服务器模板,实现了Model Context Protocol (MCP),并被配置为在Docker容器中运行。它利用Streamable HTTP进行实时通信,旨在帮助开发者快速构建基于MCP协议的应用后端,将外部数据和服务以标准化方式暴露给大型语言模型 (LLM) 应用。

主要功能点

  • 实现MCP协议: 符合Model Context Protocol (MCP) 规范,以标准方式与LLM客户端通信。
  • 提供核心能力: 支持托管资源 (Resources)、注册工具 (Tools) 和定义Prompt模板 (Prompts),尽管此模板主要侧重于工具的演示。
  • JSON-RPC通信: 基于JSON-RPC协议处理客户端请求和服务器响应。
  • Streamable HTTP支持: 利用Streamable HTTP作为传输层,实现无状态通信,便于服务器less和标准Web架构部署。
  • Docker容器化: 提供Dockerfile和docker-compose配置,简化构建、运行和部署流程。
  • Python实现: 基于官方Python MCP SDK构建,易于Python开发者上手和扩展。

安装步骤

有两种主要方式运行此服务器模板:

  1. 使用Docker Compose (推荐):

    • 确保已安装Docker和Docker Compose。
    • 克隆本仓库到本地。
    • 在仓库根目录下打开终端。
    • 运行命令构建并启动服务:
      docker-compose up --build
    • 服务器将在Docker容器中启动,并可通过 'http://localhost:8080/mcp' 访问。
  2. 直接使用Python运行:

    • 确保已安装Python 3.8+ 和 pip。
    • 克隆本仓库到本地。
    • 进入 'src' 目录:
      cd dockerized-mcp-server-template/src
    • 安装所需的Python依赖库:
      pip install -r requirements.txt
    • 运行服务器脚本:
      python server.py
    • 服务器将在本地启动,并可通过 'http://localhost:8080/mcp' 访问。

服务器配置 (供MCP客户端使用)

MCP服务器启动后,MCP客户端需要知道如何连接到它。对于通过网络(如Streamable HTTP)暴露的服务器,客户端通常需要配置服务器的访问地址 (URL)。

对于通过上述步骤启动的服务器,默认的访问地址是 'http://localhost:8080/mcp'。

MCP客户端在连接时,需要将此地址作为服务器的端点进行配置。具体的配置方式取决于所使用的MCP客户端库,但核心信息是指定连接协议(例如:Streamable HTTP)和服务器的URL地址。

基本使用方法

此模板包含一个简单的MCP工具函数示例 'add'。当服务器运行时,任何支持MCP协议的客户端都可以发现并调用这个工具。

  • 发现工具: 客户端可以通过MCP协议向服务器发送请求,查询服务器提供的能力列表,包括可用的工具及其描述和参数。
  • 调用工具: 客户端可以构造一个JSON-RPC请求,指定要调用的工具名称(例如 'add')和相应的参数(例如两个整数 'a' 和 'b')。服务器接收请求,执行 'add' 函数,并将结果通过JSON-RPC响应返回给客户端。

开发者可以在 'src/server.py' 文件中添加或修改代码,注册更多的MCP资源、工具和Prompt模板,以构建功能更丰富的MCP服务器。

信息

分类

开发者工具