【技术文档摘要】:

将任何Cobra CLI转换为MCP服务器
Ophis自动将您的Cobra命令转换为MCP工具,并提供与Claude Desktop、VSCode和Cursor集成的CLI命令。
go get github.com/njayp/ophis
package 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
# 重启Claude Desktop
# VSCode(需要代理模式下的Copilot)
./my-cli mcp vscode enable
# Cursor
./my-cli mcp cursor enable
现在,您的CLI命令可以作为MCP工具使用!
通过HTTP公开您的MCP服务器以进行远程访问:
./my-cli mcp stream --host localhost --port 8080
ophis.Command(nil)向您的CLI添加了这些子命令:
mcp
├── start # 在标准I/O上启动MCP服务器
├── stream # 通过HTTP流传输MCP服务器
├── tools # 将可用的MCP工具导出为JSON
├── claude
│ ├── enable # 将服务器添加到Claude Desktop配置
│ ├── disable # 将服务器从Claude Desktop配置中移除
│ └── list # 列出Claude Desktop MCP服务器
├── vscode
│ ├── enable # 将服务器添加到VSCode配置
│ ├── disable # 将服务器从VSCode配置中移除
│ └── list # 列出VSCode MCP服务器
└── cursor
├── enable # 将服务器添加到Cursor配置
├── disable # 将服务器从Cursor配置中移除
└── list # 列出Cursor MCP服务器
使用选择器控制哪些命令和标志被暴露为MCP工具。默认情况下,所有命令和标志都被暴露(除了隐藏或已弃用的)。
config := &ophis.Config{
Selectors: []ophis.Selector{
{
CmdSelector: ophis.AllowCmdsContaining("get", "list"),
LocalFlagSelector: ophis.ExcludeFlags("token", "secret"),
InheritedFlagSelector: ophis.NoFlags, // 排除持久性标志
// 为这些命令添加超时
PreRun: func(ctx context.Context, ctr *mcp.CallToolRequest, ti ophis.ToolInput) (context.Context, *mcp.CallToolRequest, ophis.ToolInput) {
ctx, _ = context.WithTimeout(ctx, time.Minute)
return ctx, ctr, ti
},
},
},
}
rootCmd.AddCommand(ophis.Command(config))
查看docs/config.md了解详细的配置选项。
Ophis连接Cobra命令和模型上下文协议:
构建所有示例:
make build
使用Ophis的示例项目:
欢迎贡献!请参阅CONTRIBUTING.md。