返回市场
蛇神服务器

蛇神服务器

作者:njayp60 星标更新:2025-11-16

项目介绍

【技术文档摘要】: 项目Logo

将任何Cobra CLI转换为MCP服务器

Ophis自动将您的Cobra命令转换为MCP工具,并提供与Claude Desktop、VSCode和Cursor集成的CLI命令。

快速开始

安装

go get github.com/njayp/ophis

添加到您的CLI

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、VSCode或Cursor中启用

# 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流传输

通过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命令和模型上下文协议:

  1. 命令发现:递归遍历您的Cobra命令树
  2. 模式生成:根据命令标志和参数创建JSON模式(docs/schema.md
  3. 工具执行:作为子进程启动您的CLI并捕获输出(docs/execution.md

示例

构建所有示例:

make build

使用Ophis的示例项目:

贡献

欢迎贡献!请参阅CONTRIBUTING.md