使用说明
项目简介
mcp-security-sandbox 仓库实现了一个简单的MCP服务器,专注于提供与GitHub仓库信息相关的工具。该服务器集成了两个主要功能:
- 仓库描述工具 (describe_github_repo):从GitHub仓库页面抓取并返回仓库的简要描述信息。
- 仓库总结工具 (summarize_github_repo):从GitHub仓库的README文件抓取内容,并使用Ollama模型进行总结,返回总结后的文本。
此MCP服务器旨在作为安全研究的沙箱环境,探索MCP协议在LLM应用中的安全性和潜力。同时也提供了一个实际的MCP服务器示例,帮助开发者理解和使用MCP协议。
主要功能点
- 提供GitHub仓库描述工具: 允许LLM客户端通过URL获取GitHub仓库的描述信息。
- 提供GitHub仓库总结工具: 允许LLM客户端通过URL获取GitHub仓库README文件的总结内容。
- 基于FastMCP框架: 使用FastMCP库简化MCP服务器的开发。
- SSE传输协议: 支持SSE(Server-Sent Events)协议与客户端进行通信。
- 集成Ollama模型: 利用Ollama本地LLM模型进行文本总结(默认使用 qwen2.5:latest 模型)。
安装步骤
- 安装依赖: 在仓库根目录下,使用 'uv' 包管理器安装项目依赖。
uv install - 创建虚拟环境: 创建并激活Python虚拟环境。
uv venv source .venv/bin/activate - 启动MCP服务器: 运行 'server.py' 文件启动MCP服务器。
服务器默认监听 'http://localhost:5010/sse' 地址。请确保Ollama已安装并运行,默认Ollama API地址为 'http://windows:11434',可通过环境变量 '$env' 修改。uv run -- src/mcp-security-sandbox/mcp/github/server.py
服务器配置
MCP客户端需要配置以下服务器信息以连接到此MCP服务器。以下是JSON格式的配置信息示例,请根据实际情况调整:
{ "server name": "github-summary-server", "command": "uv", "args": ["run", "--", "src/mcp-security-sandbox/mcp/github/server.py"], "transport": "sse", "uri": "http://localhost:5010/sse" }
配置参数说明:
- server name: 服务器名称,可以自定义,用于在客户端标识服务器。 例如: "github-summary-server"。
- command: 启动服务器的命令。 例如: "uv"。
- args: 启动服务器命令的参数列表。
- 'run': 'uv run' 命令的子命令,表示运行Python脚本。
- '--': 分隔符,用于分隔 'uv run' 命令的参数和Python脚本的参数。
- 'src/mcp-security-sandbox/mcp/github/server.py': MCP服务器的Python脚本路径。
- transport: 服务器使用的传输协议,这里是 SSE (Server-Sent Events)。 例如: "sse"。
- uri: SSE协议的连接URI。 例如: "http://localhost:5010/sse"。
注意: MCP客户端需要能够执行 'uv run' 命令,并能访问到 'server.py' 脚本。 实际部署时,请根据客户端环境调整 'command' 和 'args' 参数,确保能够正确启动MCP服务器。
基本使用方法
- 启动MCP服务器 (参考安装步骤)。
- 配置MCP客户端: 在MCP客户端中,添加上述服务器配置信息。
- 调用工具: 客户端可以使用 'describe_github_repo' 和 'summarize_github_repo' 两个工具,并传入 GitHub 仓库 URL 作为参数。例如,调用 'summarize_github_repo' 工具并传入 'https://github.com/SirAppSec/mcp-security-sandbox' URL,即可获取该仓库 README 的总结。
- 查看前端界面: 仓库包含Streamlit前端应用,可以体验与MCP服务器集成的聊天功能。运行 'streamlit run src/mcp-security-sandbox/frontend/MCP_Chat.py' 启动前端,访问 'http://localhost:8501' 查看。
信息
分类
开发者工具