mcpField
U
urfave-cli-mcp

urfave-cli-mcp

本地服务
github.com/thepwagner开发工具241 周前更新

关于 urfave-cli-mcp

urfave-cli-mcp 将 urfave/cli 应用适配为 MCP 服务,把命令树中的子命令转换为工具。它面向希望复用查询型 CLI,或先通过 CLI 开发工具的 Go 开发者。

主要功能

  1. 01将子命令作为 MCP 工具暴露
  2. 02支持描述、标志、默认值和必填标志
  3. 03通过派生当前进程运行工具
  4. 04将命令标准输出作为结果返回

适用场景

  1. 01向 MCP 客户端开放查询型 urfave/cli 应用
  2. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。