项目简介
'mcptools' 是一个强大的命令行工具,它不仅提供了与Model Context Protocol (MCP) 服务器交互的客户端功能,还包含了两种独立的MCP服务器实现:一个用于测试和演示的模拟服务器(Mock Server),以及一个可以将本地shell脚本或命令封装为MCP工具的代理服务器(Proxy Server)。
本项目适用于需要开发、测试MCP客户端,或希望将现有脚本/命令快速转换为MCP工具的使用者。
主要功能点
- MCP客户端功能: 作为客户端,可以连接到任何兼容MCP协议的服务器,并执行列表查询(工具、资源、Prompt)和调用执行(工具调用、资源读取、Prompt获取)等操作。
- 模拟MCP服务器: 可以快速启动一个临时的、功能有限但符合MCP协议的服务器,用于模拟工具、资源和Prompt的存在及基本响应,无需实现完整的后端逻辑。这对于客户端开发和测试非常有用。
- MCP工具代理服务器: 这是一个功能性的MCP服务器,其核心作用是将用户配置的本地shell脚本或命令映射为MCP工具。启动该代理服务器后,它会监听来自MCP客户端的工具调用请求,并执行对应的脚本或命令,将输出作为工具调用结果返回。这使得将现有自动化脚本集成到MCP生态中变得非常便捷。
安装步骤
通常最简单的方式是从项目的GitHub Release页面下载预编译的二进制文件,这些文件针对不同的操作系统和架构进行了打包。
- 访问 'mcptools' GitHub Release 页面。
- 找到最新版本的Release。
- 下载对应您操作系统和架构的二进制文件压缩包(例如 'mcptools_vx.y.z_操作系统_架构.tar.gz' 或 '.zip')。
- 解压文件,找到 'mcptools' 可执行文件。
- 将 'mcptools' 可执行文件移动到您的系统PATH环境变量包含的目录中(例如 '/usr/local/bin' 或 'C:\Windows'),以便在任何地方直接运行 'mcptools' 命令。
- (可选)根据需要为可执行文件添加执行权限,例如在Linux/macOS上运行 'chmod +x /usr/local/bin/mcptools'。
服务器配置
MCP服务器是供MCP客户端连接和使用的。MCP客户端(例如其他AI应用或开发框架)需要知道如何启动或连接到MCP服务器。对于'mcptools'提供的两种服务器模式,客户端通常通过指定启动服务器的命令 (command) 及其参数 (args) 来进行配置。
模拟MCP服务器配置
模拟服务器通过 'mcp mock' 命令直接在命令行中配置要暴露的实体(工具、Prompt、资源)。
MCP客户端配置示例(通常在客户端的设置文件或代码中体现):
{ "serverName": "My Mock MCP Server", "command": "mcp", "args": [ "mock", "tool", "hello", "简单的问候工具", "prompt", "greeting", "友好的问候语模板", "你好,{{name}}!" ] }
配置参数说明:
- 'command': 启动MCP服务器的命令行程序,这里是安装好的 'mcp'。
- 'args': 传递给 'mcp' 命令的参数列表。
- 'mock': 告诉 'mcptools' 启动模拟服务器模式。
- 'tool <名称> <描述>': 定义一个工具。
- 'prompt <名称> <描述> <模板>': 定义一个Prompt。
- 'resource <URI> <描述> <内容>': 定义一个资源。
MCP工具代理服务器配置
代理服务器需要先通过 'mcp proxy tool' 命令注册工具配置,然后通过 'mcp proxy start' 命令启动。注册的工具配置会保存在您用户目录下的特定文件中(通常是 '~/.mcpt/proxy_config.json')。
- 注册工具: 在终端中运行 'mcp proxy tool' 命令来注册脚本或命令为MCP工具。
- 示例1(注册脚本文件):'mcp proxy tool disk_usage "检查磁盘使用情况" "" /path/to/check_disk.sh'
- 示例2(注册内联命令):'mcp proxy tool echo_message "回应输入的消息" "message:string" -e 'echo "你说了:$message"''
- 示例3(带多种参数):'mcp proxy tool add_numbers "计算两个数字的和" "a:int,b:int" -e 'echo $(($a + $b))''
- 参数说明:
- 'tool': 指定要注册一个工具。
- '<名称>': 给工具起一个唯一的名称。
- '<描述>': 工具的功能描述。
- '<参数列表>': 工具接收的参数,格式为 '名称:类型,名称:类型,...'。支持的类型包括 'string'、'int'、'float'、'bool'。空字符串表示无参数。
- '<脚本路径>': 要执行的脚本文件路径(与 '-e' 二选一)。
- '-e <命令>': 要执行的内联shell命令(与脚本路径二选一)。
- 启动代理服务器: 在终端中运行 'mcp proxy start' 命令来启动服务器。
MCP客户端配置示例(连接到已启动的代理服务器):
{ "serverName": "My Proxy MCP Server", "command": "mcp", "args": [ "proxy", "start" ] }
配置参数说明:
- 'command': 'mcp'。
- 'args': 传递给 'mcp' 命令的参数列表。
- 'proxy': 告诉 'mcptools' 进入代理模式。
- 'start': 告诉 'mcptools' 启动代理服务器。
基本使用方法
启动模拟服务器
在终端中运行如下命令,即可启动一个模拟MCP服务器,它将监听标准输入:
mcp mock tool my_tool "演示工具" prompt welcome "欢迎模板" "Hello, {{name}}!"
此时,这个终端窗口就成为了一个MCP服务器进程。您可以让一个MCP客户端连接到这个进程(通过配置客户端的command和args指向上述命令),客户端就能发现名为 'my_tool' 和 'welcome' 的实体。
启动代理服务器
- 首先,使用 'mcp proxy tool' 命令注册您想要代理的工具(脚本或命令)。例如:
mcp proxy tool list_files "列出当前目录文件" "" -e 'ls -lA' mcp proxy tool calculate "简单的计算器" "expression:string" -e 'echo $(($expression))' - 然后,在终端中运行 'mcp proxy start' 命令:
这个终端窗口就成为了一个MCP代理服务器进程。MCP客户端可以连接到这个进程(配置command为 'mcp',args为 '["proxy", "start"]'),然后就可以发现并调用您刚才注册的 'list_files' 和 'calculate' 工具了。当客户端调用这些工具时,代理服务器会执行相应的shell命令并将结果返回。mcp proxy start
请注意,对于Stdio传输方式,服务器通常会保持运行,监听客户端通过标准输入发送的JSON-RPC请求,并通过标准输出发送响应。当客户端关闭连接(例如进程退出)时,服务器也会收到EOF信号而退出。
信息
分类
开发者工具