mcpField
U
urfave-cli-mcp

urfave-cli-mcp

ローカル
github.com/thepwagner開発ツール241 週間前に更新

urfave-cli-mcp について

urfave-cli-mcpは、urfave/cliアプリのコマンドツリーをツールに変換し、MCPサーバーとして利用できるようにします。クエリ中心のCLIを再利用したいGo開発者や、まずCLIでツールを開発したい開発者向けです。

主な機能

  1. 01サブコマンドをMCPツールとして公開
  2. 02説明・フラグ・既定値・必須フラグに対応
  3. 03現在のプロセスをフォークしてツールを実行
  4. 04コマンドの標準出力を結果として返却

活用シーン

  1. 01クエリ専用のurfave/cliアプリをMCPクライアントに公開
  2. 02CLIコマンドからMCPツールを試作

MCP 対応

urfave/cliのコマンドツリーをMCPツールに変換し、MCPクライアントからコマンドを実行して標準出力を受け取れるようにします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

urfave-cli-mcp

これは、urfave/cli アプリを Model Context Protocol サーバーとして再利用するための簡易実装です。 指定された Command ツリーを走査し、サブコマンドを MCP ツールとして公開します。説明、フラグ、デフォルト値、必須フラグに対応しています。 ツールは現在のプロセスをフォークして呼び出され、標準出力が結果として返されます。

クエリ専用の CLI を、1 行のコードで 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)
}

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。