MCP.so
Sign In

Overview

What is urfave-cli-mcp?

urfave-cli-mcp is a Go package that reuses a urfave/cli application as a Model Context Protocol (MCP) server. It crawls the application's Command tree and exposes subcommands as MCP tools, supporting descriptions, flags, default values, and required flags. It is intended for developers who want to turn query-only CLIs into MCP servers with minimal code, or to prototype MCP tools as a CLI before exposing them to an MCP client.

How to use urfave-cli-mcp?

Add the urfaveclimcp.NewMCPCommand(App) command to your application's Commands slice, as shown in the example. The package will then handle the MCP protocol, exposing subcommands as tools that are invoked by forking the current process and returning stdout as the result.

Key features of urfave-cli-mcp

  • Crawls the entire urfave/cli Command tree.
  • Exposes subcommands as MCP tools automatically.
  • Supports flag descriptions, default values, and required flags.
  • Invokes tools by forking the current process.
  • Returns stdout as the tool result.
  • Enables one‑line reuse of query‑only CLIs as MCP servers.

Use cases of urfave-cli-mcp

  • Reuse an existing query‑only CLI as an MCP server by adding a single command.
  • Prototype new MCP tools as a CLI application, then switch to MCP mode without rewriting.
  • Allow MCP clients to interact with command‑line tools that have complex flag configurations.

FAQ from urfave-cli-mcp

How do I integrate urfave-cli-mcp into my Go app?

Add the MCP command to your app's Commands slice: App.Commands = append(App.Commands, urfaveclimcp.NewMCPCommand(App)). The example in the README shows the full setup.

Can I use ur

Tags

More from Developer Tools