工具流mcp
toolflow-mcp 是一个Bun MCP服务器,用于组合管道和Nushell风格的数据传递。
面向模型的曲面有意最小化:
- 二元的:
toolflow - 可选外壳别名:
tf - 主MCP工具:
toolflow - 内省工具:
toolflow_registry
该设计的灵感来自F#管道正向组合、高阶函数组合子和Nushell风格的结构化数据流,同时保持MCP表面足够通用,可以通过本地插件而不是向上流式处理每个动词来进化。
目标
- 将多步骤工作放在一个MCP工具调用中。
- 通过管道保留功能“当前值”。
- 故障时停止并返回结构化的尸检痕迹。
- 通过配置和secrets文件从本地模块加载新动词。
- 将其他MCP服务器连接到一个客户端可见的MCP条目后面。
- 除非网桥发生故障,否则将上游网桥stderr排除在面向用户的客户端路径之外。
数字用户线路
管道形状:
verb [args] |> verb [args] |> verb [args]规则:
- 每个成功步骤的输出将成为下一步的输入。
- 使用
$path.to.value从当前值中选择。 - 使用
tee在不替换当前值的情况下运行副作用。 - 字符串使用单引号。
- 对象和数组参数允许使用JSON文本。
示例:
get 'https://example.com/data.json' |> jq '.items.0' |> write 'tmp/item.json'read 'package.json' |> json |> jq '.name'get 'https://example.com/data.json' |> tee write 'tmp/raw.json' |> jq '.items'配置和秘密
除非被环境变量覆盖,否则服务器会在当前工作目录中查找两个文件:
toolflow.config.jsontoolflow.secrets.json
环境覆盖:
TOOLFLOW_CONFIGTOOLFLOW_SECRETS
配置示例:
{
"plugins": [
{
"name": "example-http",
"module": "./src/plugins/example-http.ts",
"enabled": true,
"config": {
"baseUrl": "https://example.com/api"
}
}
]
}示例秘密:
{
"example-http": {
"token": "replace-me"
}
}此拆分将连接详细信息保存在跟踪的配置文件中,将凭据保存在单独的本地文件中。
回购包括:
toolflow.config.json作为默认跟踪配置toolflow.secrets.example.json作为跟踪秘密模板
插件合同
插件模块必须导出以下任一项 default 或 definePlugin 并返回:
type PluginDefinition = {
name: string;
description?: string;
verbs?: ToolflowVerb[];
tools?: ToolflowTool[];
};插件动词被连接到 toolflow,这使MCP表面保持在单个执行入口点,同时仍然允许流DSL后面的本地插件增长。
MCP桥接插件
toolflow-mcp 还可以桥接其他stdio MCP服务器。
当前映射模型:
- 用于组合的命名空间流动词:
flox.search_packages - 桥接工具没有直接的顶级MCP再导出
通用网桥助手通过stdio启动上游MCP服务器,在内部实现命名空间流谓词 toolflow,并捕获上游stderr,这样启动横幅就不会泄露到客户端会话中。
当前第一座桥:
flox-bridge在src/plugins/flox-bridge.tsnixos-bridge在src/plugins/nixos-bridge.ts
内置动词
echo:返回第一个参数或当前值get:获取URL内容并在可能的情况下解析JSONjq:从当前值中选择点路径write:将当前值写入文件并保持流动read:读取UTF-8文件json:将当前字符串值解析为JSONtee:运行副作用并保留当前值
Bridge动词示例
flox.search_packages '{"search_term":"python","limit":5}'flox.run_command '{"working_dir":"/home/rona","environment_dir":"","command":"command -v bun"}'nixos.nix '{"action":"search","source":"nixos","type":"packages","query":"ripgrep","limit":3}'安装
bun install
bun run dev最小MCP配置:
{
"mcpServers": {
"toolflow": {
"command": "toolflow"
}
}
}范围
- Bun首次MCP运行时
- 带有跟踪输出的组合管道执行
- Nushell风格的结构化数据在步骤之间传递
- 可配置的插件加载
- 一个顶级MCP工具,其他所有内容都表示为流动词
命令行界面
该二进制文件还公开了本地shell/operator子命令:
toolflow registry
toolflow status
toolflow doctor
toolflow helptf 在安装可选的短输出时,可用作短shell别名。
下一步
- 除了动词外,还注册插件定义的直接MCP工具
- 添加更丰富的选择器和转换
- 在核心包外添加OneTool和Context Mode桥接插件
