mcptools
mcptools 是一款专为模型上下文协议(MCP)打造的命令行“瑞士军刀”,旨在让开发者轻松与各类 MCP 服务器进行交互。它解决了在开发过程中调试、测试及管理 MCP 服务时缺乏统一高效工具的痛点,让用户无需编写复杂代码即可快速发现、调用和管理服务器提供的工具、资源及提示词。
这款工具特别适合 AI 应用开发者、后端工程师以及需要集成大模型能力的研究人员使用。无论是通过标准输入输出(stdio)还是 HTTP 传输,mcptools 都能灵活适配。其独特亮点在于强大的扩展能力:支持创建模拟服务器以测试客户端应用,能将 MCP 请求代理到 Shell 脚本以实现低成本扩展,甚至提供“守卫模式”来限制特定工具的访问权限。此外,它还内置了交互式 Shell、Web 界面以及项目脚手架功能,支持多种输出格式,极大提升了调试效率与工作流体验。如果你正在构建或维护基于 MCP 的生态应用,mcptools 将是不可或缺的得力助手。
使用场景
某后端开发团队在集成多个第三方 MCP 服务(如文件系统、数据库查询)到其自动化运维脚本时,面临调试困难和协议对接繁琐的挑战。
没有 mcptools 时
- 黑盒调试痛苦:开发者无法直观查看 MCP 服务器暴露了哪些工具或资源,只能盲目阅读文档或猜测接口名称,排查问题如同“盲人摸象”。
- 手动构造请求繁琐:每次测试新功能都需要编写临时的 Python 或 Node.js 脚本来构造复杂的 JSON-RPC 请求,通过 stdio 或 HTTP 发送,效率极低。
- 缺乏本地模拟环境:在前端或主程序未完成前,无法快速创建一个假的 MCP 服务器来模拟数据返回,导致前后端联调阻塞。
- 输出格式不友好:原始协议返回的嵌套 JSON 数据难以直接在终端阅读,需要额外借助
jq等工具进行格式化才能定位关键字段。
使用 mcptools 后
- 一键发现能力:只需运行
mcp tools命令,即可立即列出服务器上所有可用的工具和资源清单,让隐藏的功能瞬间透明化。 - 命令行直接调用:无需编写任何临时代码,直接使用
mcp call配合参数即可在终端实时执行工具(如读取文件、查询数据库),验证逻辑秒级完成。 - 内置 Mock 与代理模式:利用
mock server功能快速搭建虚拟服务供同事联调,或通过proxy mode将 MCP 请求无缝转发给现有的 Shell 脚本,极大扩展了集成灵活性。 - 多样化可读输出:支持表格、美化打印等多种输出格式,复杂的协议响应在终端中清晰呈现,关键信息一目了然。
mcptools 将原本需要数小时编写的协议对接代码简化为几条终端命令,成为开发者探索、调试和扩展 MCP 生态的瑞士军刀。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
MCP 服务器的瑞士军刀
一个用于与 MCP(模型上下文协议)服务器交互的全面命令行界面。
可以从任何兼容 MCP 的服务器中发现、调用并管理工具、资源和提示。
支持多种传输方式、输出格式,并内置强大的模拟和代理服务器功能。

目录
概述
MCP Tools 提供了一个多功能的 CLI,用于与模型上下文协议(MCP)服务器协作。它使您能够:
- 发现并调用 MCP 服务器提供的工具
- 访问和使用 MCP 服务器公开的资源
- 创建用于测试客户端应用程序的模拟服务器
- 将 MCP 请求代理到 Shell 脚本,以轻松扩展功能
- 创建交互式 Shell 来探索和使用 MCP 服务器
- 使用 TypeScript 支持为新的 MCP 项目搭建框架
- 以多种样式格式化输出(JSON、美观打印、表格)
- 保护和限制对特定工具和资源的访问
- 支持所有传输方法(HTTP、stdio)
安装
使用 Homebrew(适用于 macOS)
brew tap f/mcptools
brew install mcp
❕ 二进制文件被安装为
mcp,但也可以通过mcpt来访问,以避免与其他可能使用mcp命令名称的工具发生冲突。
从源码编译(适用于 Windows 和 GNU/Linux)
go install github.com/f/mcptools/cmd/mcptools@latest
❕ 二进制文件将被安装为
mcptools,但可以将其别名为mcpt以方便使用。![]()
Windows 11 运行示例
快速入门
开始使用 MCP Tools 最简单的方式是连接到一个 MCP 服务器并列出可用的工具:
# 列出文件系统服务器上的所有可用工具
mcp tools npx -y @modelcontextprotocol/server-filesystem ~
# 调用特定工具
mcp call read_file --params '{"path":"README.md"}' npx -y @modelcontextprotocol/server-filesystem ~
# 打开交互式 Shell
mcp shell npx -y @modelcontextprotocol/server-filesystem ~
特性
MCP Tools 支持广泛的与 MCP 服务器交互的功能:
用法:
mcp [命令]
可用命令:
version 打印版本信息
tools 列出 MCP 服务器上的可用工具
resources 列出 MCP 服务器上的可用资源
prompts 列出 MCP 服务器上的可用提示
call 调用 MCP 服务器上的工具、资源或提示
get-prompt 获取 MCP 服务器上的提示
read-resource 读取 MCP 服务器上的资源
shell 启动用于 MCP 命令的交互式 Shell
web 启动用于 MCP 命令的 Web 界面
mock 创建带有工具、提示和资源的模拟 MCP 服务器
proxy 将 MCP 工具请求代理到 Shell 脚本
alias 管理 MCP 服务器别名
configs 管理 MCP 服务器配置
new 创建新的 MCP 项目组件
help 关于任何命令的帮助
completion 为指定的 Shell 生成自动补全脚本
标志:
-f, --format string 输出格式(表格、json、pretty)(默认为“表格”)
-h, --help mcp 的帮助
-p, --params string 传递给工具的参数 JSON 字符串(用于 call 命令)(默认为 "{}")
使用 "mcp [命令] --help" 以获取有关某个命令的更多信息。
传输选项
MCP Tools 支持多种与 MCP 服务器通信的传输方式:
Stdio 传输
使用 stdin/stdout 通过 JSON-RPC 2.0 与 MCP 服务器通信。这对于实现 MCP 协议的命令行工具非常有用。
mcp tools npx -y @modelcontextprotocol/server-filesystem ~
HTTP SSE 传输
使用 HTTP 和服务器发送事件(SSE)通过 JSON-RPC 2.0 与 MCP 服务器通信。这对于连接到实现旧版 MCP 协议的远程服务器非常有用。当 URL 以 /sse 结尾时,传输会自动检测。
mcp tools http://localhost:3001/sse
# 示例:使用 everything 示例服务器
# docker run -p 3001:3001 --rm -it tzolov/mcp-everything-server:v1
注意: HTTP SSE 目前仅支持 MCP 协议版本 2024-11-05。
流式 HTTP 传输(推荐)
使用流式 HTTP 通过 JSON-RPC 2.0 与 MCP 服务器通信。这是连接到实现 MCP 协议的远程服务器的现代推荐方法。它既支持流式响应,也支持简单的请求/响应模式。对于 HTTP/HTTPS URL,这是默认的传输方式。
# HTTP URL 的默认传输
mcp tools http://localhost:3000
# 自动检测的流式 HTTP 传输
mcp tools http://localhost:3000
# 远程服务器示例
mcp tools https://api.example.com/mcp
mcp tools https://ne.tools
流式 HTTP 的优势:
- 会话管理:支持带有会话 ID 的有状态连接
- 可恢复性:可以在中断后重新连接并恢复会话(如果服务器支持)
- 灵活的响应:同时支持流式响应和直接 JSON 响应
- 现代协议:采用最新的 MCP 传输规范
输出格式
MCP 工具支持三种输出格式,以满足不同的需求:
表格格式(默认)
mcp tools npx -y @modelcontextprotocol/server-filesystem ~
默认格式现在以彩色手册页风格显示工具:
read_file(path:str)
从文件系统中读取文件的全部内容。
read_multiple_files(paths:str[])
同时读取多个文件的内容。
list_dir(path:str)
列出目录中的内容。
write_file(path:str, content:str)
将内容写入文件。
grep_search(pattern:str, [excludePatterns:str[]])
使用模式搜索文件。
edit_file(edits:{newText:str,oldText:str}[], path:str)
使用多次文本替换编辑文件
该格式的主要特点:
- 函数名以粗体青色显示
- 必需参数以绿色显示(例如
path:str) - 可选参数用黄色方括号表示(例如
[limit:int]) - 数组类型用
[]后缀表示(例如str[]) - 对象类型在其属性上使用花括号表示(例如
{prop1:type1,prop2:type2}) - 嵌套对象递归显示(例如
{notifications:{enabled:bool,sound:bool}}) - 类型名称缩写以提高可读性(例如
str代替string,int代替integer) - 描述缩进并以灰色显示
- 参数顺序一致,必需参数优先列出
JSON 格式(紧凑)
mcp tools --format json npx -y @modelcontextprotocol/server-filesystem ~
美化 JSON 格式(缩进)
mcp tools --format pretty npx -y @modelcontextprotocol/server-filesystem ~
命令
MCP 工具包含几个用于与 MCP 服务器交互的核心命令:
列出可用工具
mcp tools npx -y @modelcontextprotocol/server-filesystem ~
列出可用资源
mcp resources npx -y @modelcontextprotocol/server-filesystem ~
列出可用提示
mcp prompts npx -y @modelcontextprotocol/server-filesystem ~
调用工具
mcp call read_file --params '{"path":"/path/to/file"}' npx -y @modelcontextprotocol/server-filesystem ~
调用资源
mcp call resource:test://static/resource/1 npx -y @modelcontextprotocol/server-everything -f json | jq ".contents[0].text"
或者
mcp read-resource test://static/resource/1 npx -y @modelcontextprotocol/server-everything -f json | jq ".contents[0].text"
调用提示
mcp get-prompt simple_prompt npx -y @modelcontextprotocol/server-everything -f json | jq ".messages[0].content.text"
查看服务器日志
当使用会向服务器发出请求的客户端命令时,可以添加 --server-logs 标志来查看与您的请求相关的服务器日志:
# 在列出工具时查看服务器日志
mcp tools --server-logs npx -y @modelcontextprotocol/server-filesystem ~
输出:
[>] 安全的 MCP 文件系统服务器在 stdio 上运行
[>] 允许的目录:[ '/Users/fka/' ]
read_file(path:str)
从文件系统中读取文件的全部内容。
read_multiple_files(paths:str[])
同时读取多个文件的内容。
... 以及此服务器上提供的其他工具
这有助于调试或了解执行这些命令时服务器端发生的情况。
交互式 Shell
交互式 Shell 模式允许您在一个会话中运行多个 MCP 命令:
mcp shell npx -y @modelcontextprotocol/server-filesystem ~
这将打开一个具有以下功能的交互式 Shell:
mcp tools shell
连接到:npx -y @modelcontextprotocol/server-filesystem /Users/fka
mcp > 输入 '/h' 获取帮助或 '/q' 退出
mcp > tools
read_file(path:str, [limit:int], [offset:int])
从文件系统中读取文件
list_dir(path:str)
列出目录内容
grep_search(pattern:str, [excludePatterns:str[]])
使用模式搜索文件
edit_file(edits:{newText:str,oldText:str}[], path:str)
使用多次文本替换编辑文件
# 支持直接调用工具
mcp > read_file {"path":"README.md"}
...README.md 的内容...
# 使用复杂对象参数调用工具
mcp > edit_file {"path":"main.go","edits":[{"oldText":"foo","newText":"bar"}]}
...编辑操作的结果...
# 获取帮助
mcp > /h
MCP Shell 命令:
tools 列出可用工具
resources 列出可用资源
prompts 列出可用提示
call <entity> [--params '{...}'] 调用工具、资源或提示
format [json|pretty|table] 获取或设置输出格式
特殊命令:
/h, /help 显示此帮助
/q, /quit, exit 退出 Shell
Web 界面
MCP 工具提供了一个基于浏览器的 UI,用于与 MCP 服务器进行交互:
# 在默认端口(41999)启动文件系统服务器的 Web 界面
mcp web npx -y @modelcontextprotocol/server-filesystem ~
# 使用自定义端口
mcp web --port 8080 docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# 使用 SSE
mcp web https://ne.tools
Web 界面包括:
- 侧边栏列出了所有可用的工具、资源和提示
- 基于表单和 JSON 的参数编辑
- 格式化和原始 JSON 响应视图
- 根据工具模式自动生成的交互式参数表单
- 对复杂参数类型(数组、对象、嵌套结构)的支持
- 直接访问 API 进行工具调用
启动后,您可以通过在浏览器中打开 http://localhost:41999(或您自定义的端口)来访问界面。
项目脚手架
MCP 工具提供了一个脚手架功能,可以快速使用 TypeScript 创建新的 MCP 服务器:
mkdir my-mcp-server
cd my-mcp-server
# 创建包含特定组件的项目
mcp new tool:calculate resource:file prompt:greet
# 创建使用特定 SDK 的项目(目前仅支持 TypeScript/ts)
mcp new tool:calculate --sdk=ts
# 创建使用特定传输类型的项目
mcp new tool:calculate --transport=stdio
mcp new tool:calculate --transport=sse
脚手架会创建一个完整的项目结构,包含:
- 使用所选传输方式(stdio 或 SSE)的服务器设置
- 使用现代 ES 模块的 TypeScript 配置
- 实现了正确 MCP 接口的组件
- 自动处理导入和初始化
完成脚手架后,您可以构建并运行您的 MCP 服务器:
# 安装依赖项
npm install
# 构建 TypeScript 代码
npm run build
# 使用 MCP 工具测试服务器
mcp tools node build/index.js
项目模板存储在以下位置之一:
- 本地
./templates/目录 - 用户主目录:
~/.mcpt/templates/ - Homebrew 安装路径(
/opt/homebrew/Cellar/mcp/v#.#.#/templates)
通过 Homebrew 安装时,模板会自动安装到您的主目录。但如果您使用源码安装,则需要运行 make install-templates。
服务器别名
MCP 工具允许您保存并重复使用带有友好别名的服务器命令:
# 添加一个新的服务器别名
mcp alias add myfs npx -y @modelcontextprotocol/server-filesystem ~/
# 列出所有已注册的服务器别名
mcp alias list
# 删除一个服务器别名
mcp alias remove myfs
# 在任何 MCP 命令中使用别名
mcp tools myfs
mcp call read_file --params '{"path":"README.md"}' myfs
服务器别名存储在 $HOME/.mcpt/aliases.json 中,提供了一种便捷的方式,让您无需反复输入冗长的命令即可操作常用的 MCP 服务器。
LLM 应用配置管理
MCP 工具提供了一个强大的配置管理系统,可帮助您跨多个应用程序管理 MCP 服务器配置:
🚧 目前仅适用于 macOS。
# 扫描所有支持的应用程序中的 MCP 服务器配置
mcp configs scan
# 列出所有配置(configs view --all 的别名)
mcp configs ls
# 按别名查看特定配置
mcp configs view vscode
# 向配置中添加或更新服务器
mcp configs set vscode my-server npm run mcp-server
mcp configs set cursor my-api https://api.example.com/mcp --headers "Authorization=Bearer token"
# 一次性向多个配置添加
mcp configs set vscode,cursor,claude-desktop my-server npm run mcp-server
# 从配置中移除服务器
mcp configs remove vscode my-server
# 为自定义配置文件创建别名
mcp configs alias myapp ~/myapp/config.json
# 同步并合并来自多个来源的配置
mcp configs sync vscode cursor --output vscode --default interactive
# 将命令行转换为 MCP 服务器 JSON 配置格式
mcp configs as-json mcp proxy start
# 输出:{"command":"mcp","args":["proxy","start"]}
# 将 URL 转换为 MCP 服务器 JSON 配置格式
mcp configs as-json https://api.example.com/mcp --headers "Authorization=Bearer token"
# 输出:{"url":"https://api.example.com/mcp","headers":{"Authorization":"Bearer token"}}
配置通过位于 $HOME/.mcpt/configs.json 的中央注册表进行管理,并为以下工具预设了别名:
- VS Code 和 VS Code Insiders
- Windsurf
- Cursor
- Claude Desktop 和 Claude Code
系统会自动以彩色格式显示服务器配置,并按来源分组,展示命令行或 URL 信息、头部和环境变量。
mcp configs scan 命令会查找以下位置中的 MCP 服务器配置:
- Visual Studio Code
- Visual Studio Code Insiders
- Windsurf
- Cursor
- Claude Desktop
示例输出:
VS Code Insiders
GitHub (stdio):
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
Claude Desktop
代理 (stdio):
mcp proxy start
我的文件 (stdio):
npx -y @modelcontextprotocol/server-filesystem ~/
补充
将官方 GitHub MCP 服务器同时添加到 Windsurf、Cursor 和 VS Code:
mcp configs set windsurf,cursor,vscode GitHub \
--env "GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_xxx" \
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
服务器模式
MCP 工具既可以作为客户端也可以作为服务器运行,提供两种服务器模式:
模拟服务器模式
模拟服务器模式会创建一个模拟的 MCP 服务器,用于在未实现完整服务器的情况下测试客户端:
# 创建一个简单的模拟工具
mcp mock tool hello_world "一个简单的问候工具"
# 创建包含多种实体类型的模拟服务器
mcp mock tool hello_world "一个问候工具" \
prompt welcome "一个欢迎提示" "你好 {{name}},欢迎来到 {{location}}!" \
resource docs://readme "文档" "模拟 MCP 服务器\n这是一个模拟服务器"
模拟服务器的特点:
- 完整的初始化握手
- 标准化模式的工具列表
- 简单响应的工具调用
- 资源列表与读取
- 提示列表与带参数替换的检索
- 详细的请求/响应日志记录至
~/.mcpt/logs/mock.log
使用提示模板
对于提示,任何位于 {{双大括号}} 中的文本都会被自动识别为参数:
# 创建一个包含姓名和地点参数的提示
mcp mock prompt greeting "问候模板" "你好 {{name}}!欢迎来到 {{location}}。"
当客户端请求该提示时,可以提供这些参数的值,它们将在响应中被替换。
代理模式
代理模式允许您将 Shell 脚本或内联命令注册为 MCP 工具,从而轻松扩展 MCP 功能而无需编写代码:
# 将 Shell 脚本注册为 MCP 工具
mcp proxy tool add_operation "将 a 和 b 相加" "a:int,b:int" ./examples/add.sh
# 将内联命令注册为 MCP 工具
mcp proxy tool add_operation "将 a 和 b 相加" "a:int,b:int" -e 'echo "总和是 $a + $b = $(($a+$b))"'
# 将内联命令注册为 MCP 工具,且结果消息可选
mcpt proxy tool add_operation "将 a 和 b 相加,结果消息可选" "a:int,b:int,[msg:string]" -e 'echo "$msg$a + $b = $(($a+$b))"'
# 取消注册某个工具
mcp proxy tool --unregister add_operation
# 启动代理服务器
mcp proxy start
运行 mcp tools localhost:3000 并连接到代理服务器后,将显示已注册的工具及其参数:
add_operation(a:int, b:int)
将 a 和 b 相加
count_files(dir:str, [include:str[]])
统计目录中的文件,可选过滤条件
这种新格式清晰地展示了每个工具接受的参数,使用户更容易理解如何使用它们。数组用 [] 后缀表示(如 str[]),类型名称也被缩短以提高可读性。
工作原理
- 注册一个 Shell 脚本或内联命令,指定工具名称、描述和参数规范。
- 启动代理服务器,该服务器实现了 MCP 协议。
- 当调用某个工具时,参数会作为环境变量传递给脚本/命令。
- 脚本/命令的输出将作为工具响应返回。
- 如果脚本的输出是 Base64 编码的 PNG 图像(以
data:image/png;base64,开头),则会以 ImageContent 对象的形式返回。
示例脚本和命令
加法(add.sh):
#!/bin/bash
# 从环境变量中获取值
if [ -z "$a" ] || [ -z "$b" ]; then
echo "错误:缺少必需的参数 'a' 或 'b'"
exit 1
fi
# 执行加法运算
result=$(($a + $b))
echo "$a 和 $b 的和是 $result"
生成二维码
此示例需要安装 qrencode 等工具。
# 注册一个生成二维码的工具
mcp proxy tool qrcode "生成二维码" "text:string" \
-e 'echo -e "data:image/png;base64,$(qrencode -t png -o - "$text" | base64 -w 0)"'
内联命令示例:
# 简单的加法
mcp proxy tool add_op "对给定数字求和" "a:int,b:int" -e 'echo "总和为 $a + $b = $(($a+$b))"'
# 自定义问候语
mcp proxy tool greet "向用户问好" "name:string,greeting:string,formal:bool" -e '
if [ "$formal" = "true" ]; then
title="先生/女士"
echo "${greeting:-你好}, ${title} ${name}. 今天有什么可以帮您的吗?"
else
echo "${greeting:-你好}, ${name}!很高兴认识您!"
fi
'
# 文件操作
mcp proxy tool count_lines "统计文件行数" "file:string" -e "wc -l < \"$file\""
配置与日志记录
- 工具注册在
~/.mcpt/proxy_config.json中 - 代理服务器会将所有请求和响应记录到
~/.mcpt/logs/proxy.log - 使用
--unregister可以从配置中移除某个工具
守护模式
守护模式允许你基于模式匹配来限制对特定工具、提示和资源的访问。这在以下情况下非常有用:
- 限制潜在危险的操作(如写入、删除文件等)
- 限制 AI 助手或应用程序的功能
- 提供对敏感系统的只读访问权限
- 创建用于测试或演示的沙箱环境
注意: 守护模式目前仅适用于 STDIO 传输方式(命令执行),而不支持 HTTP 传输。
# 仅允许文件读取操作,禁止文件修改
mcp guard --allow 'tools:read_* --deny tools:write_*,create_*,delete_*' npx -y @modelcontextprotocol/server-filesystem ~
# 仅允许一个特定工具
mcp guard --allow 'tools:search_files' npx -y @modelcontextprotocol/server-filesystem ~
# 同时按工具类型和提示类型进行限制
mcp guard --allow 'tools:read_*,prompts:system_*' --deny tools:execute_* npx -y @modelcontextprotocol/server-filesystem ~
# 结合别名使用
mcp guard --allow 'tools:read_*' fs # 其中 'fs' 是文件系统服务器的别名
工作原理
守护命令的工作原理如下:
- 创建一个位于客户端和 MCP 服务器之间的代理
- 拦截并过滤所有对
tools/list、prompts/list和resources/list的请求 - 阻止调用不符合允许模式的工具、提示或资源
- 拒绝被过滤掉的资源、工具和提示的请求
- 不改变地传递其他所有请求和响应
模式匹配
模式使用简单的 glob 语法,其中 * 作为通配符:
tools:read_*匹配所有以read_开头的工具tools:*file*匹配名称中包含file的任何工具prompts:system_*匹配所有以system_开头的提示
对于每种实体类型,你可以指定:
--allow 'pattern1,pattern2,...'只允许匹配这些模式的实体--deny 'pattern1,pattern2,...'移除匹配这些模式的实体
如果没有指定允许模式,则默认允许所有实体(但排除那些匹配拒绝模式的实体)。
应用集成
你可以使用守护命令来保护应用程序中的 MCP 配置。例如,要将文件系统服务器限制为仅允许读取操作,可以将:
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/fka/Desktop"
]
}
改为:
"filesystem": {
"command": "mcp",
"args": [
"guard", "--deny", "tools:write_*,create_*,move_*,delete_*",
"npx", "-y", "@modelcontextprotocol/server-filesystem",
"/Users/fka/Desktop"
]
}
这样就可以通过阻止任何修改操作来提供文件系统的只读视图。
你还可以在配置中结合别名使用守护命令:
"filesystem": {
"command": "mcp",
"args": [
"guard", "--allow", "tools:read_*,list_*,search_*",
"fs" // 其中 'fs' 是文件系统服务器的别名
]
}
这使得你的配置更加简洁且易于维护。
日志记录
- 守护操作会被记录到
~/.mcpt/logs/guard.log - 日志中包含所有请求、响应以及过滤决策
- 使用
tail -f ~/.mcpt/logs/guard.log可以实时监控活动
示例
基本用法
列出文件系统服务器上的工具:
mcp tools npx -y @modelcontextprotocol/server-filesystem ~
以漂亮的 JSON 格式调用工具:
mcp call read_file --params '{"path":"README.md"}' --format pretty npx -y @modelcontextprotocol/server-filesystem ~
使用守护模式过滤可用工具:
# 仅允许文件搜索功能
mcp guard --allow tools:search_files npx -y @modelcontextprotocol/server-filesystem ~
# 创建只读环境
mcp guard --deny tools:write_*,delete_*,create_*,move_* npx -y @modelcontextprotocol/server-filesystem ~
可流式传输的 HTTP 使用
创建并运行一个本地可流式传输的 HTTP 服务器:
# 创建一个新的带有 SSE 传输方式的 MCP 服务器(脚手架中不提供可流式传输的 HTTP)
mkdir my-sse-server && cd my-sse-server
mcp new tool:example_tool --transport=sse
# 安装依赖并构建
npm install && npm run build
# 启动服务器(将运行 SSE 传输)
npm start
在另一个终端中连接到你的本地服务器:
# 连接到本地 SSE 服务器(根据你的服务器 SSE 端点调整 URL)
mcp tools http://localhost:3000/sse
# 调用本地服务器上的工具
mcp call example_tool --params '{"input": "test"}' http://localhost:3000/sse
# 使用不同的输出格式
mcp tools --format pretty http://localhost:3000/sse
连接到远程可流式传输的 HTTP 服务器:
# 连接到远程 MCP 服务器
mcp tools https://api.example.com/mcp
# 对于旧版服务器使用 SSE 传输(自动从 /sse 路径检测)
mcp tools http://legacy-server.com/sse
# 带有身份验证头的示例(如果支持)
mcp tools https://authenticated-mcp-server.com
脚本集成
使用代理模式结合简单的 shell 脚本:
# 1. 创建一个用于加法的简单 shell 脚本
cat > add.sh << 'EOF'
#!/bin/bash
# 从环境变量中获取值
if [ -z "$a" ] || [ -z "$b" ]; then
echo "错误:缺少必需参数 'a' 或 'b'"
exit 1
fi
result=$(($a + $b))
echo "The sum of $a and $b is $result"
EOF
# 2. 使其可执行
chmod +x add.sh
# 3. 将其注册为 MCP 工具
mcp proxy tool add_numbers "两个数相加" "a:int,b:int" ./add.sh
# 4. 在一个终端中启动代理服务器
mcp proxy start
# 5. 在另一个终端中,你可以将其作为 MCP 工具调用
mcp call add_numbers --params '{"a":5,"b":3}' --format pretty
调试
通过尾随日志来调试您的代理或模拟服务器:
# 查看模拟服务器日志
tail -f ~/.mcpt/logs/mock.log
# 查看代理服务器日志
tail -f ~/.mcpt/logs/proxy.log
# 在 macOS/Linux 上实时查看所有日志
find ~/.mcpt/logs -name "*.log" -exec tail -f {} \;
参与贡献
我们欢迎各方贡献!请参阅我们的贡献指南,了解如何提交拉取请求、报告问题以及参与项目开发的详细信息。
路线图
以下功能计划在未来的版本中实现:
- 认证:支持安全的认证机制
许可证
本项目采用 MIT 许可证授权。
致谢
感谢 Fatih Taskiran 提供的 logo 设计。
版本历史
v0.7.12025/05/05v0.7.02025/05/02v0.6.52025/04/14v0.6.12025/04/12v0.6.02025/04/12v0.5.12025/04/10v0.5.02025/04/08v0.4.22025/04/08v0.4.12025/04/08v0.4.02025/04/06v0.3.92025/04/06v0.3.82025/04/06v0.3.72025/04/06v0.3.6.32025/04/04v0.3.6.22025/04/04v0.3.6.12025/04/03v0.3.62025/04/03v0.3.52025/04/03v0.3.02025/04/02v0.2.22025/03/30常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器