使用说明

项目简介

本项目 'mcp-server-example' 是一个基于 Python 和 FastMCP 框架构建的示例 MCP 服务器。它旨在演示如何使用 MCP 协议构建一个能够为大型语言模型 (LLM) 提供上下文信息的后端服务。该服务器专注于代码库知识,能够分析指定目录下的代码文件,并响应关于代码库内容的查询。

主要功能点

  • 代码库分析: 能够扫描指定目录(默认为当前目录)下的 Python 代码文件,统计文件数量和代码行数,并提供详细的文件分析信息。
  • 'main.py' 内容查询: 可以获取服务器 'main.py' 文件的内容、结构分析、函数列表、导入模块和定义的资源端点。
  • 自定义 Prompt 处理: 允许用户通过自然语言提问,服务器会根据问题内容分析代码库并给出相应的答案,特别针对 'main.py' 文件提供深入的问答能力。
  • 缓存机制: 内置缓存机制,加速重复请求的响应速度,提升服务器性能。
  • 资源端点: 通过 '@mcp.resource' 装饰器定义了多个资源端点,方便客户端以标准化的方式访问服务器功能。
  • 系统管理: 提供清除缓存的系统管理端点。

安装步骤

  1. 环境准备: 确保已安装 Python 3.7 或更高版本。

  2. 安装依赖: 虽然仓库中没有明确的 'requirements.txt' 文件,但根据代码内容,可能需要安装 'mcp-server' 库。 假设 'mcp-server' 库可以通过 pip 安装,请尝试运行以下命令(如果 'mcp-server' 库不存在或安装失败,请查阅 'mcp-server' 库的安装文档):

    pip install mcp-server

    如果 'mcp-server' 是一个本地库,则需要确保 Python 能够找到它,例如将其放在与 'main.py' 同级的目录下,或者添加到 'PYTHONPATH' 环境变量中。

  3. 运行服务器: 在仓库根目录下,执行以下命令启动 MCP 服务器:

    python main.py

    服务器默认使用 Stdio 协议,并在终端输出运行日志。

服务器配置

MCP 客户端需要配置以下 JSON 格式信息才能连接到此 MCP 服务器。请注意,以下配置信息 仅供 MCP 客户端使用,用户无需手动修改任何代码。

{
  "serverName": "Codebase Knowledge Server",
  "command": "python",
  "args": ["main.py"]
}

配置参数说明:

  • 'serverName': 服务器名称,此处为 "Codebase Knowledge Server",用于客户端识别服务器。
  • 'command': 启动服务器的命令,此处为 'python',假设您的 Python 可执行文件在系统 PATH 环境变量中。
  • 'args': 启动命令的参数列表,此处为 '["main.py"]',指定要运行的服务器脚本文件为 'main.py'。

请注意: 实际的 'mcp-server' 库可能需要更详细的配置,例如网络协议、端口等。但根据此示例仓库的代码,上述基本配置信息应该足够客户端连接。如果需要更复杂的配置,请参考 'mcp-server' 库的官方文档。

基本使用方法

  1. 启动 MCP 客户端: 使用任何兼容 MCP 协议的客户端工具。

  2. 配置服务器连接: 在 MCP 客户端中,配置上述提供的 JSON 格式服务器配置信息。

  3. 资源访问: 客户端连接成功后,可以通过 MCP 协议请求服务器提供的资源端点,例如:

    • 请求代码库摘要: 客户端向服务器发送请求,访问资源路径 'codebase://summary'。服务器将返回代码库的分析摘要信息。
    • 请求 'main.py' 内容: 客户端访问资源路径 'code://main.py/content',服务器将返回 'main.py' 文件的内容。
    • 请求关于 'main.py' 的分析信息: 客户端访问资源路径 'code://main.py/analysis',服务器将返回 'main.py' 文件的结构分析结果。
    • 自定义 Prompt 提问: 客户端访问资源路径 'prompt://question/{your_question}',将 '{your_question}' 替换为实际的问题,例如 'prompt://question/main.py中有哪些函数'。服务器将根据问题返回答案。
    • 清除缓存: 客户端访问资源路径 'system://cache/clear',服务器将清除内部缓存。

示例资源请求路径:

  • 'codebase://summary'
  • 'code://main.py/content'
  • 'code://main.py/functions'
  • 'prompt://question/请分析一下main.py的代码结构'
  • 'system://cache/clear'

请根据 MCP 客户端的具体使用方式发送资源请求并接收服务器的响应。

信息

分类

开发者工具