mcptools

GitHub
1.6k 121 简单 1 次阅读 今天MIT插件Agent
AI 解读 由 AI 自动生成,仅供参考

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
GPU

未说明

内存

未说明

依赖
notes该工具主要使用 Go 语言开发。macOS 用户可通过 Homebrew 安装二进制文件(命令为 mcp 或 mcpt);Windows 和 Linux 用户需安装 Go 环境并从源码编译安装(命令为 mcptools 或别名 mcpt)。工具本身不依赖 Python 或 GPU,但在运行示例命令连接某些 MCP 服务器时,可能需要本地安装 Node.js (npx) 或 Docker 环境。
python未说明
Go (用于从源码编译)
Homebrew (macOS 安装可选)
Node.js/npx (用于运行示例中的 MCP 服务器,如 @modelcontextprotocol/server-filesystem)
Docker (可选,用于运行示例服务器)
mcptools hero image

快速开始

MCP Tools

MCP 服务器的瑞士军刀

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

![博客文章](https://img.shields.io/badge/Blog-阅读关于MCP Tools的文章-blue)

目录

概述

MCP Tools 提供了一个多功能的 CLI,用于与模型上下文协议(MCP)服务器协作。它使您能够:

  • 发现并调用 MCP 服务器提供的工具
  • 访问和使用 MCP 服务器公开的资源
  • 创建用于测试客户端应用程序的模拟服务器
  • 将 MCP 请求代理到 Shell 脚本,以轻松扩展功能
  • 创建交互式 Shell 来探索和使用 MCP 服务器
  • 使用 TypeScript 支持为新的 MCP 项目搭建框架
  • 以多种样式格式化输出(JSON、美观打印、表格)
  • 保护和限制对特定工具和资源的访问
  • 支持所有传输方法(HTTP、stdio)

MCP Tools 截图

安装

使用 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 以方便使用。

截图 2025-05-05 下午10:21:29

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 代替 stringint 代替 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 Web 界面

项目脚手架

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 Configs 截图

服务器模式

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[]),类型名称也被缩短以提高可读性。

工作原理

  1. 注册一个 Shell 脚本或内联命令,指定工具名称、描述和参数规范。
  2. 启动代理服务器,该服务器实现了 MCP 协议。
  3. 当调用某个工具时,参数会作为环境变量传递给脚本/命令。
  4. 脚本/命令的输出将作为工具响应返回。
  5. 如果脚本的输出是 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' 是文件系统服务器的别名

工作原理

守护命令的工作原理如下:

  1. 创建一个位于客户端和 MCP 服务器之间的代理
  2. 拦截并过滤所有对 tools/listprompts/listresources/list 的请求
  3. 阻止调用不符合允许模式的工具、提示或资源
  4. 拒绝被过滤掉的资源、工具和提示的请求
  5. 不改变地传递其他所有请求和响应

模式匹配

模式使用简单的 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/05
v0.7.02025/05/02
v0.6.52025/04/14
v0.6.12025/04/12
v0.6.02025/04/12
v0.5.12025/04/10
v0.5.02025/04/08
v0.4.22025/04/08
v0.4.12025/04/08
v0.4.02025/04/06
v0.3.92025/04/06
v0.3.82025/04/06
v0.3.72025/04/06
v0.3.6.32025/04/04
v0.3.6.22025/04/04
v0.3.6.12025/04/03
v0.3.62025/04/03
v0.3.52025/04/03
v0.3.02025/04/02
v0.2.22025/03/30

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

155.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|4天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|4天前
插件Agent图像

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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架