关于 urfave-cli-mcp
urfave-cli-mcp 将 urfave/cli 应用适配为 MCP 服务,把命令树中的子命令转换为工具。它面向希望复用查询型 CLI,或先通过 CLI 开发工具的 Go 开发者。
主要功能
- 01将子命令作为 MCP 工具暴露
- 02支持描述、标志、默认值和必填标志
- 03通过派生当前进程运行工具
- 04将命令标准输出作为结果返回
适用场景
- 01向 MCP 客户端开放查询型 urfave/cli 应用
- 02先编写 CLI 命令,再逐步开发 MCP 工具
MCP 相关
它将 urfave/cli 命令树转换为 MCP 工具,使 MCP 客户端能够调用命令并接收其标准输出。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
urfave-cli-mcp
这是一个快速实现的小工具,可将 urfave/cli 应用复用为 Model Context Protocol 服务。
它会遍历提供的 Command 树,并将子命令作为 MCP 工具公开。支持描述、标志、默认值和必需标志。
工具通过派生当前进程来调用,并将 stdout 作为结果返回。
我用它通过一行代码将仅用于查询的 CLI 复用为 MCP 服务。 它也可能适用于创建新的 MCP 服务,因为你可以先将工具作为 CLI 迭代,再将其公开给 MCP 客户端。
示例
package main
import (
"context"
"fmt"
"os"
urfaveclimcp "github.com/thepwagner/urfave-cli-mcp"
"github.com/urfave/cli/v3"
)
var App = &cli.Command{
Name: "hello",
Usage: "say hello",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "name",
Usage: "the name to say hello to",
Value: "World",
},
},
Action: func(_ context.Context, c *cli.Command) error {
fmt.Println("Hello,", c.String("name"))
return nil
},
}
func main() {
// Pass the root command you want to expose, then add the "mcp" command to your App
App.Commands = append(App.Commands, urfaveclimcp.NewMCPCommand(App))
App.Run(context.Background(), os.Args)
}
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。