Transform any Cobra CLI into an MCP server
Ophis automatically converts your Cobra commands into MCP tools with CLI commands for integration with Claude Desktop and VSCode.
go get github.com/njayp/ophispackage main
import (
    "os"
    "github.com/njayp/ophis"
)
func main() {
    rootCmd := createMyRootCommand()
    rootCmd.AddCommand(ophis.Command(nil))
    if err := rootCmd.Execute(); err != nil {
        os.Exit(1)
    }
}# Claude Desktop
./my-cli mcp claude enable
# Restart Claude Desktop
# VSCode (requires Copilot in Agent Mode)
./my-cli mcp vscode enableYour CLI commands are now available as MCP tools!
The ophis.Command(nil) adds these subcommands to your CLI:
mcp
├── start            # Start MCP server on stdio
├── tools            # Export available MCP tools as JSON
├── claude
│   ├── enable       # Add server to Claude Desktop config
│   ├── disable      # Remove server from Claude Desktop config
│   └── list         # List Claude Desktop MCP servers
└── vscode
    ├── enable       # Add server to VSCode config
    ├── disable      # Remove server from VSCode config
    └── list         # List VSCode MCP servers
Control which commands and flags are exposed as MCP tools using selectors. By default, all commands and flags are exposed (except hidden/deprecated).
config := &ophis.Config{
    Selectors: []ophis.Selector{
        {
            CmdSelector: ophis.AllowCmdsContaining("get", "list"),
            LocalFlagSelector: ophis.ExcludeFlags("token", "secret"),
            InheritedFlagSelector: ophis.NoFlags,  // Exclude persistent flags
        },
    },
}
rootCmd.AddCommand(ophis.Command(config))See docs/config.md for detailed configuration options.
Ophis bridges Cobra commands and the Model Context Protocol:
- Command Discovery: Recursively walks your Cobra command tree
 - Schema Generation: Creates JSON schemas from command flags and arguments (docs/schema.md)
 - Tool Execution: Spawns your CLI as a subprocess and captures output (docs/execution.md)
 
Build all examples:
make buildExample projects using Ophis:
Contributions welcome! See CONTRIBUTING.md.