使用说明
项目简介
本项目 'mcp-server-example' 是一个基于 Python 和 FastMCP 框架构建的示例 MCP 服务器。它旨在演示如何使用 MCP 协议构建一个能够为大型语言模型 (LLM) 提供上下文信息的后端服务。该服务器专注于代码库知识,能够分析指定目录下的代码文件,并响应关于代码库内容的查询。
主要功能点
- 代码库分析: 能够扫描指定目录(默认为当前目录)下的 Python 代码文件,统计文件数量和代码行数,并提供详细的文件分析信息。
- 'main.py' 内容查询: 可以获取服务器 'main.py' 文件的内容、结构分析、函数列表、导入模块和定义的资源端点。
- 自定义 Prompt 处理: 允许用户通过自然语言提问,服务器会根据问题内容分析代码库并给出相应的答案,特别针对 'main.py' 文件提供深入的问答能力。
- 缓存机制: 内置缓存机制,加速重复请求的响应速度,提升服务器性能。
- 资源端点: 通过 '@mcp.resource' 装饰器定义了多个资源端点,方便客户端以标准化的方式访问服务器功能。
- 系统管理: 提供清除缓存的系统管理端点。
安装步骤
-
环境准备: 确保已安装 Python 3.7 或更高版本。
-
安装依赖: 虽然仓库中没有明确的 'requirements.txt' 文件,但根据代码内容,可能需要安装 'mcp-server' 库。 假设 'mcp-server' 库可以通过 pip 安装,请尝试运行以下命令(如果 'mcp-server' 库不存在或安装失败,请查阅 'mcp-server' 库的安装文档):
pip install mcp-server如果 'mcp-server' 是一个本地库,则需要确保 Python 能够找到它,例如将其放在与 'main.py' 同级的目录下,或者添加到 'PYTHONPATH' 环境变量中。
-
运行服务器: 在仓库根目录下,执行以下命令启动 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' 库的官方文档。
基本使用方法
-
启动 MCP 客户端: 使用任何兼容 MCP 协议的客户端工具。
-
配置服务器连接: 在 MCP 客户端中,配置上述提供的 JSON 格式服务器配置信息。
-
资源访问: 客户端连接成功后,可以通过 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 客户端的具体使用方式发送资源请求并接收服务器的响应。
信息
分类
开发者工具