Token导航 LogoToken导航

MCP Server · AI代理

MCP Sprut

一个Go语言编写的服务,用于维护与多个MCP服务器的持久SSE流,监听工具变更通知,并通过批量写入将工具存储到本地数据库。

未说明官方级别未说明来源级核验工具 0
工具管理GoAI代理

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
ErnestK
提供方
ErnestK

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Sprut 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

MCPSprut

一种Go服务,通过多个MCP(模型上下文协议)服务器维护持久的SSE流,监听工具更改通知,并通过批写入将工具存储在本地数据库中。

建筑

flowchart TD
    main["cmd/sprut/main.go"] --> hub["Hub (orchestrator)"]
    hub --> connector["Connector pool"]
    connector --> c1["Conn: server 0"]
    connector --> c2["Conn: server 1"]
    connector --> cN["Conn: server N"]
    c1 --> mcpClient["MCP Client"]
    hub --> batcher["Batcher"]
    batcher --> storage["Storage (interface)"]
    storage --> bolt["BoltDB impl"]
    storage --> future["Future: PG, Redis..."]

运作原理

  1. 启动时,从存储中加载MCP服务器列表
  2. 对于每台服务器,执行MCP握手(initialize + tools/list)并持续使用工具
  3. 向每个服务器打开GET SSE流,监听 notifications/tools/list_changed
  4. 收到通知后(根据MCP规范,有效载荷为空),重新获取 tools/list 并更新存储
  5. 批处理写入存储(可配置: 1 为了实时, 100 用于高通量)
  6. 在运行时检测添加到存储中的新服务器——无需重新启动

数据流

sequenceDiagram
    participant Hub
    participant Connector
    participant MCPServer
    participant Batcher
    participant Storage

    Hub->>Storage: LoadServers()
    Hub->>Connector: Start(serverConfig)

    Connector->>MCPServer: POST initialize
    MCPServer-->>Connector: capabilities

    Connector->>MCPServer: POST tools/list
    MCPServer-->>Connector: tools[]
    Connector->>Batcher: Submit(serverID, tools)

    Connector->>MCPServer: GET /mcp (SSE stream)

    loop On notification
        MCPServer-->>Connector: notifications/tools/list_changed
        Connector->>MCPServer: POST tools/list
        MCPServer-->>Connector: tools[]
        Connector->>Batcher: Submit(serverID, tools)
    end

    Batcher->>Storage: SaveToolsBatch(updates)

项目结构

路径描述
cmd/sprut/main.go入口点、环境配置、优雅关机
internal/hub/hub.goOrchestrator:加载服务器、启动连接器、处理新服务器
internal/connector/connector.go单MCP服务器连接生命周期
internal/mcpclient/client.goHTTP客户端:POST初始化,POST工具/列表
internal/mcpclient/stream.goSSE流:GET/mcp,事件解析
internal/batcher/batcher.go批处理工具更新,按大小或计时器刷新
internal/storage/interface.go存储接口(服务器+工具)
internal/storage/bolt.goBoltDB实现
internal/jsonrpc/schema.goJSON-RPC 2.0消息结构

配置

所有设置都是从环境变量中读取的。

变量描述默认值
SPRUT_DB_PATHBoltDB文件的路径sprut.db
SPRUT_BATCH_SIZE工具写入的批量大小1
SPRUT_BUFFER_SIZE连接器和批处理器之间的通道缓冲区256
SPRUT_FLUSH_INTERVAL冲洗之间的最大间隔5s
SPRUT_CONNECT_TIMEOUTMCP握手超时30s
SPRUT_RETRY_INTERVAL故障时重新连接间隔10s

优雅地关闭

  1. 信号/信号项→ 取消上下文
  2. 所有连接器goroutines关闭SSE流并退出
  3. 批处理程序刷新剩余缓冲区
  4. BoltDB关闭
  5. 进程退出

优雅降级

每个连接器独立运行。如果一台MCP服务器发生故障,其余服务器将继续工作。在SSE流断开连接或握手失败时,连接器会等待 SPRUT_RETRY_INTERVAL 并重试。

跑步

# Start the MCP simulator (separate repo)
cd ~/golang/mcp-simulator
go run ./cmd/simulator/ --servers 10 --port 9090

# Start MCPSprut
cd ~/golang/mcp-sprut
SPRUT_DB_PATH=sprut.db go run ./cmd/sprut/

调用树

main.go
├── config.Load()                              // env → Config
├── storage.NewBoltStorage(dbPath)             // open sprut.db
├── mcpclient.NewClient(timeout)               // HTTP client for MCP
├── batcher.NewBatcher(store, size, interval)
│   └── batcher.Start(ctx)                    // goroutine: buffer → flush to storage
├── hub.NewHub(store, client, batcher, retry)
│   └── hub.Start(ctx)
│       ├── store.LoadServers()                // load servers from BoltDB
│       ├── for each server → startConnector()
│       │   └── go connector.Run(ctx)          // goroutine per server
│       │       └── connect()                  // loop with retry
│       │           ├── client.Initialize()
│       │           ├── client.SendInitialized()
│       │           ├── client.ListTools() → batcher.Submit()
│       │           └── client.SubscribeNotifications() → SSE loop
│       │               └── on notification → client.ListTools() → batcher.Submit()
│       └── store.OnNewServer(callback)        // new servers at runtime
├── <-sigCh                                    // wait for SIGINT/SIGTERM
├── cancel()                                   // stop all goroutines
├── batcher.Wait()                             // wait for remaining flush
└── store.Close()                              // close BoltDB

设计模式

模式地点
存储库Storage 接口抽象底层存储
观察员OnNewServer 事件驱动服务器发现的回调
扇出Hub推出N个连接器goroutines
批处理写入器批处理器在提交到存储之前累积更新
良好的降级单个连接器故障不会导致系统停机

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

工具管理Go本地部署批量写入SSE流MCP协议数据库存储

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Sprut

MCP World · 本页

0未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Sprut 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

MCP Sprut 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

MCP Sprut 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Sprut 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Sprut 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP