麦普克尼夫
MCP服务器的瑞士军刀。一个用于生成、转换UI并将其添加到MCP服务器的命令——使用Unix管道。
mcpknife boot --prompt "Hacker News API https://github.com/HackerNews/API" \
| mcpknife mod --prompt "combine new + best into get_trending" \
| mcpknife ui \
| mcpknife export --output-dir ./my-server就是这样。四个阶段,一个管道,零胶水代码。您可以从API文档转到独立的MCP服务器,在单个命令中使用自定义工具组合和自动生成的UI。
它的作用
mcpknife在一个CLI下统一了三个工具,以及一个导出命令:
| 命令 | 它的作用 | 基础工具 |
|---|---|---|
mcpknife boot | 从提示+API文档生成MCP服务器 | mcpboot |
mcpknife mod | 在MCP服务器上转换、重命名、隐藏或组合工具 | mcpblox |
mcpknife ui | 自动生成MCP服务器工具的交互式UI | mcp用户界面 |
mcpknife export | 将管道作为独立的MCP服务器项目转储 | 内置 |
mcpknife deploy | 将导出的项目部署到云端 | 内置 |
每个阶段从stdin读取上游服务器URL,并将自己的URL写入stdout。标准的Unix管道将它们连接起来。 export 是一个末端阶段,通过以下路径爬行管道 _mcp_metadata 并生成一个自包含的Node.js项目。
安装
npm install -g mcpknife一次安装。三个工具。无需额外设置。
用法
从API文档生成MCP服务器
mcpknife boot --prompt "Yahoo Finance API https://finance.yahoo.com/api"指向API文档并描述您想要的内容。mcpknife使用源自API的工具引导MCP服务器。
在现有服务器上转换工具
mcpknife mod --upstream "npx some-mcp-server" --prompt "hide write tools, expose read-only"使用自然语言重塑任何MCP服务器的工具。重命名、组合、过滤或创建合成聚合工具。
将UI添加到任何MCP服务器
mcpknife ui --upstream-url http://localhost:3000/mcp自动为服务器上的每个工具生成交互式UI。
导出独立服务器
mcpknife boot --prompt "Free Dictionary API https://dictionaryapi.dev/" \
| mcpknife mod --prompt "Create one tool: synonyms and antonyms" \
| mcpknife ui \
| mcpknife export --output-dir ./dict-server追加 mcpknife export 任何管道都可以转储一个自包含的Node.js项目。导出的服务器独立运行,不需要mcpknife、mcpboot、mcpblox或mcp-gen-ui。就 cd dict-server && npm install && node server.js.
部署到云端
# Export and deploy to Fly.io in one pipeline
mcpknife boot --prompt "Free Dictionary API https://dictionaryapi.dev/" \
| mcpknife export \
| mcpknife deploy --name dict-api
# Deploy an existing exported project
mcpknife deploy ./dict-server --name dict-api --region lax
# Set extra environment variables
mcpknife deploy ./dict-server --name dict-api --env DB_URL=postgres://...
# Tear down
mcpknife deploy --destroy --name dict-apiDeploy获取导出的项目目录(位置arg或通过管道从 mcpknife export)并部署它。服务器使用承载身份验证进行保护-自动生成API密钥(或传递 --api-key).这 /health 端点保持开放状态以进行监控。
目前支持Fly.io(--target fly,默认值)。需要 fly CLI已安装并经过身份验证(fly auth login).
用烟斗作曲
真正的力量是组成。每个阶段都是一个由管道连接的独立过程:
# Generate → Transform → UI in one pipeline
mcpknife boot --prompt "GitHub API https://docs.github.com/en/rest" \
| mcpknife mod --prompt "combine issues + pulls into get_activity" \
| mcpknife ui
# Stack multiple transforms
mcpknife mod --upstream "npx some-server" --prompt "rename tools to snake_case" \
| mcpknife mod --prompt "add synthetic summary tool" \
| mcpknife ui --standard openai
# Full pipeline: generate → transform → export → deploy
mcpknife boot --prompt "Yahoo Finance" \
| mcpknife mod --prompt "combine tools" \
| mcpknife export \
| mcpknife deploy --name yahoo-finance配置
创建 ~/.mcpkniferc 在所有管道阶段设置默认值:
{
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"apiKey": "sk-ant-..."
}不再重复 --provider 和 --api-key 每一个命令。当您需要时,CLI标志仍然会覆盖配置值。
项目级别 ./.mcpkniferc 覆盖用户级别设置,因此团队可以共享提供者/模型默认值,而无需共享密钥。
| 字段 | CLI标志 | 说明 |
|---|---|---|
provider | --provider | anthropic 或 openai |
model | --model | LLM型号ID |
apiKey | --api-key | API密钥(或使用env vars) |
verbose | --verbose | 详细日志记录 |
优先: CLI标志>环境变量>项目 .mcpkniferc >用户 ~/.mcpkniferc
运作原理
mcpknife是一个精简的多路复用器。它不实现MCP逻辑——它通过将三个底层工具作为继承stdio的子进程生成,将它们完全委托给它们。
cli.ts → config.ts → resolve.ts → args.ts → spawn.ts → child process这意味着:
- 零开销。
stdio: 'inherit'--操作系统内核处理管道,而不是mcpknife。 - 零耦合。 mcpknife只知道CLI合约。底层工具的内部更改不会影响它。
- 管道协议本机工作。 每个工具都会检测stdout是否是管道,并自动调整其行为(端口选择、URL输出)。
- 信号传播干净。 Ctrl+C会传递给孩子。出口代码通过。
子命令参考
跑 mcpknife --help 有关完整选项:
mcpknife boot --help
mcpknife mod --help
mcpknife ui --help
mcpknife export --help
mcpknife deploy --help发展
npm install
npm run build # esbuild → dist/cli.js
npm test # vitest
npm run dev # tsx (no build needed)许可证
阿帕奇-2.0
