项目简介
mcp-tools 是一个演示项目,展示了如何使用 Go 和 Python 两种编程语言构建符合 Model Context Protocol (MCP) 协议的服务器。该项目提供了简单的资源和工具示例,帮助开发者理解 MCP 服务器的核心概念和实现方式。
主要功能点
- 资源管理: 通过示例代码展示如何定义和提供资源,例如静态配置数据(Python 示例中的 'config://app')。
- 工具调用: 演示了如何注册和执行工具,例如文本处理工具(Python 中的 'count_letter_in_text')和系统命令执行工具(Python 中的 'run_git_command',Go 中的 'calculate')。
- Go 和 Python 实现: 提供了 Go 和 Python 两种语言的服务器端实现,方便开发者根据自身技术栈选择合适的语言。
- Stdio 传输协议: 默认使用 Stdio 作为 MCP 服务器与客户端之间的通信协议,简化部署和运行。
安装步骤
Python 服务器 (server.py)
- 安装 uv (可选但推荐): 如果还没有安装 'uv',建议安装以获得更快的 Python 包管理体验。macOS 用户可以使用 'brew install uv' 安装。
- 安装依赖: 在 'mcp-tools' 仓库的根目录下,运行 'uv sync' 命令安装 'pyproject.toml' 文件中指定的依赖包。
Go 服务器 (cmd/mcp-tools/main.go)
- 安装 Go: 确保你的系统已安装 Go 编程语言环境。
服务器配置
MCP 客户端配置 (JSON 格式)
要让 MCP 客户端(如 Claude、Cursor、VS Code、Neovim 等)连接到 mcp-tools 服务器,需要在客户端的 MCP 服务器配置文件中添加以下配置信息。配置文件的路径通常在 README.md 中已给出。
Python 服务器配置示例 (本地运行):
{ "mcpServers": { "github.com/fredrikaverpil/mcp-tools": { "command": "uv", "args": ["--directory", "/absolute/path/to/mcp-tools", "run", "server.py"] } } }
- '"github.com/fredrikaverpil/mcp-tools"': 服务器名称,用于在客户端中标识该服务器。
- '"command": "uv"': 启动服务器的命令,这里使用 'uv' 运行 Python 脚本。如果直接使用 'python',则将 'command' 替换为 '"python"' 即可。
- '"args": ["--directory", "/absolute/path/to/mcp-tools", "run", "server.py"]': 传递给 'uv' 命令的参数。
- '"directory": "/absolute/path/to/mcp-tools"': 指定 mcp-tools 仓库的绝对路径。请务必替换 '/absolute/path/to/mcp-tools' 为你本地 mcp-tools 仓库的实际绝对路径。
- '"run", "server.py"': 指示 'uv run' 运行 'server.py' 文件。
Go 服务器配置示例 (本地运行):
{ "mcpServers": { "github.com/fredrikaverpil/mcp-tools": { "command": "go", "args": [ "-C", "/absolute/path/to/mcp-tools", "run", "./cmd/mcp-tools/main.go" ] } } }
- '"github.com/fredrikaverpil/mcp-tools"': 服务器名称,与 Python 配置保持一致。
- '"command": "go"': 启动服务器的命令,使用 'go' 运行 Go 代码。
- '"args": [...]': 传递给 'go' 命令的参数。
- '"-C", "/absolute/path/to/mcp-tools"': 指定 mcp-tools 仓库的绝对路径。同样需要替换为实际路径。
- '"run", "./cmd/mcp-tools/main.go"': 指示 'go run' 运行 'cmd/mcp-tools/main.go' 文件。
Go 服务器配置示例 (非本地运行):
{ "mcpServers": { "github.com/fredrikaverpil/mcp-tools": { "command": "go", "args": [ "run", "github.com/fredrikaverpil/mcp-tools/cmd/mcp-tools@latest" ] } } }
- 此配置方式假设 Go 代码可以从远程仓库直接运行,无需本地仓库路径。
基本使用方法
- 配置 MCP 客户端: 根据你选择的服务器语言(Python 或 Go)以及运行方式(本地或非本地),将相应的 JSON 配置添加到 MCP 客户端的配置文件中。并确保将 '/absolute/path/to/mcp-tools' 替换为实际路径。
- 启动 MCP 客户端: 启动配置了 mcp-tools 服务器的 MCP 客户端应用程序 (如 Claude, Cursor, VS Code, Neovim)。
- 客户端与服务器交互: 客户端启动后,应该能够自动连接到 mcp-tools 服务器。具体如何使用资源和工具取决于 MCP 客户端的功能和界面。通常,客户端会提供某种方式来发现和调用 MCP 服务器提供的资源和工具。
例如,在支持工具调用的 MCP 客户端中,你可能会看到 "count_letter_in_text" 或 "calculate" 等工具,并可以通过客户端界面输入参数来调用这些工具,并获取服务器返回的结果。
信息
分类
开发者工具