Token导航 LogoToken导航TokenDH.com
Only1 MCP logo
运维云端未说明官方级别未说明来源级核验

Only1 MCP

MCP Server

高性能Rust实现的MCP服务器聚合代理,提供统一接口、智能路由和多协议支持,适用于AI应用的多工具集成场景。

工具数

14

提示词数

0

GitHub Stars

2

资源数

0
多协议支持RustClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

doublegate

提供方

doublegate

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

仅1MCP

高性能MCP服务器聚合器和智能代理

![Build Status](<>) ![Tests](<>) ![Phase 1](<>) ![Phase 2](<>) ![Rust](<>) ![License](<>)

状态: 🎉 所有4台MCP服务器均可运行! STDIO、SSE和Streamable HTTP传输正常工作-跨Context7、顺序思维、内存和NWS天气服务器提供14种工具。第2阶段完成所有6个功能-100%测试通过率(127/127)

Only1MCP是一个基于Rust的高性能聚合器和模型上下文协议(MCP)服务器的智能代理。它为AI应用程序提供了一个统一的接口,可以与多个MCP工具服务器进行交互,同时大大降低了上下文开销(减少50-70%)并提高了性能(\ - 状态:✅ 功能齐全

  • 顺序思维 -多步推理引擎(STDIO传输)

- 工具: sequentialthinking - 包装:@modelcontextprotocol/server顺序思维 - 状态:✅ 功能齐全(MCP协议2024-11-05)

  • 记忆 -知识图和实体存储(STDIO传输)

- 工具: create_entities, add_observations, read_graph, search_nodes, open_nodes, create_relations, delete_entities, delete_observations, delete_relations - 包:@modelcontextprotocol/服务器内存 - 状态:✅ 功能齐全(MCP协议2024-11-05)

  • NWS天气 -国家气象局预报和警报(可流式HTTP传输)

- 工具: get-forecast, get-alerts - 端点:http://localhost:8124/mcp - 协议:MCP 2025-03-26(带会话管理的流式HTTP) - 状态:✅ 功能齐全(需要运行本地服务器)

运输支持

  • SSE服务器 -完全支持自动SSE解析(例如Context7)
  • HTTP MCP服务器 -任何具有HTTP/JSON-RPC 2.0的MCP服务器
  • STDIO MCP服务器 -完整的MCP协议初始化握手(协议版本2024-11-05)

- 行分隔JSON-RPC消息 - 自动初始化(初始化→ 已初始化→ 准备就绪) - 非JSON跳行(处理启动消息) - 连接状态管理(Spawned→ 初始化→ 准备就绪→ 关闭) - 具有指数回退的重试逻辑(3次尝试) - 流程池和重用

  • 流式HTTP服务器 -MCP 2025-03-26规范支持

- 自动会话初始化(对调用者透明) - 通过连接池跨请求持久化会话ID - 使用自动会话重新初始化进行错误恢复 - 双格式解析(JSON和SSE响应)

第二阶段特征(✅ 100%完成-6/6个功能)

配置管理

  • 热重新加载 -无需重新启动即可自动更新配置(通知6.1)

- 500ms去抖动文件观看 - 使用ArcSwap进行原子更新 - 首先进行验证(出错时保留旧配置) - YAML和TOML支持

健康监测

  • 主动健康检查 -基于定时器的健康探测器

- HTTP健康检查(GET/health) - STDIO过程健康检查 - 基于阈值的状态转换 - 断路器集成 - Prometheus度量集成

性能优化

  • 响应缓存 -基于TTL的LRU缓存,moka 0.12

- 三层架构(L1:5分钟,L2:30分钟,L3:2小时TTL) - 自动TTL到期和LRU驱逐 - 无锁并发访问 - 缓存命中/未命中/驱逐指标

  • 请求批处理 -使用DashMap进行时间窗口聚合

- 100ms默认批处理窗口(可配置) - 重复数据消除模式(单个后端调用服务于所有客户端) - 无锁并发批处理管理 - 智能冲洗(基于超时或基于大小) - 列表方法的后端调用减少50-70% - 4普罗米修斯效率跟踪指标 - 支持工具/列表、资源/列表、提示/列表 - 11项综合集成测试

  • TUI接口 -实时监控仪表板(完成-2025年10月18日)

- 5个专用选项卡(概述、服务器、请求、缓存、日志) - 闪烁线(请求/秒趋势)和指标(健康状况、缓存命中率) - 21+键盘快捷键(q、Tab、1-5、,↑↓,/、r、c、Ctrl+c) - Prometheus零拷贝直接访问 - 颜色编码状态指示器(绿色/黄色/红色) - 日志过滤和滚动 - \10k) - 内存:100台服务器为78MB(目标:\80%) - 批处理效率:呼叫减少62%(目标:>50%) - 500多行综合指南(docs/performance_benchmark.md)

______________________________________________________________________

🚀 快速开始

先决条件

  • 锈蚀1.75+(稳定)
  • 货物(带有铁锈)
  • Git

安装

# Clone the repository
git clone https://github.com/doublegate/Only1MCP.git
cd Only1MCP

# Build the project
cargo build --release

# Run tests to verify installation
cargo test

# Expected output: 113 tests passing (100% pass rate)

运行代理

# Start the proxy server (development mode)
cargo run -- start --host 0.0.0.0 --port 8080

# Start with release binary
./target/release/only1mcp start --host 0.0.0.0 --port 8080

# Validate configuration
cargo run -- validate config.yaml

# Generate configuration template
cargo run -- config generate --template solo > my-config.yaml

测试设置

# Health check
curl http://localhost:8080/health

# Metrics endpoint
curl http://localhost:8080/api/v1/admin/metrics

# Send a test MCP request
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/list",
    "id": 1
  }'

用法

只有1MCP支持多种操作模式:后台进程模式、前台模式和交互式TUI。

快速开始

# Start daemon in background (default)
only1mcp start

# View available commands
only1mcp --help

# Stop daemon
only1mcp stop

守护程序模式(推荐)

启动守护进程 (在后台运行):

only1mcp start

输出:

✅ Only1MCP server started successfully!
🌐 Proxy URL: http://127.0.0.1:8080
📋 PID File: /home/user/.config/only1mcp/only1mcp.pid
📝 Log File: /home/user/.config/only1mcp/only1mcp.log

🔧 Loaded MCP Servers:
  • Context7 (sse): 2 tools
    - resolve-library-id, get-library-docs
  • Sequential Thinking (stdio): 1 tool
    - sequentialthinking
  • Memory (stdio): 9 tools
    - create_entities, add_observations, delete_entities, ...
  • NWS Weather (streamable_http): 2 tools
    - get-forecast, get-alerts

Total: 14 tools across 4 servers

停止守护进程:

only1mcp stop

检查守护进程状态:

# Via Admin API
curl http://127.0.0.1:8080/api/v1/admin/health

# Response:
{
  "status": "healthy",
  "servers_total": 4,
  "servers_healthy": 4,
  "tools_total": 14,
  "uptime_seconds": 3600
}

前景模式

在当前终端中运行(可用于调试):

only1mcp start --foreground

Ctrl+C 停止。

交互式TUI

启动终端用户界面:

only1mcp tui

自动启动行为:如果守护进程未运行,TUI将自动启动它。

退出行为:按下时 q 要退出TUI,系统将提示您:

🛑 Stop Only1MCP daemon? [y/N]:
  • 类型 y 停止守护进程
  • 类型 n (或按Enter键)让守护进程运行

导航:

  • Tab / Shift+Tab:在选项卡之间切换
  • / :滚动列表
  • q退出TUI

配置

默认位置: ~/.config/only1mcp/only1mcp.yaml

自动创建:如果不存在配置,Only1MCP会自动从独奏模板创建一个。

自定义配置:

only1mcp start --config /path/to/custom.yaml

从模板生成配置:

only1mcp config generate --template solo > only1mcp.yaml
only1mcp config generate --template team > team-config.yaml
only1mcp config generate --template enterprise > enterprise-config.yaml

验证配置:

only1mcp validate
only1mcp validate --config custom.yaml

管理员API

以编程方式查询守护进程状态:

# List all servers
curl http://127.0.0.1:8080/api/v1/admin/servers

# List all tools
curl http://127.0.0.1:8080/api/v1/admin/tools

# Health check
curl http://127.0.0.1:8080/api/v1/admin/health

# System info
curl http://127.0.0.1:8080/api/v1/admin/system

API_REFERENCE.md 获取完整的API文档。

高级用法

自定义主机/端口:

only1mcp start --host 0.0.0.0 --port 9000

启用调试日志记录:

RUST_LOG=debug only1mcp start --foreground

列出可用服务器 (不启动):

only1mcp list --config only1mcp.yaml

故障排除

守护进程无法启动:

  1. 检查是否已运行: curl http://127.0.0.1:8080/health
  2. 检查日志: tail -f ~/.config/only1mcp/only1mcp.log
  3. 尝试前台模式: only1mcp start --foreground

端口已在使用中:

only1mcp start --port 8081

配置验证错误:

only1mcp validate  # Shows detailed error messages

配置热重新加载

只有1MCP支持无需重新启动服务器即可自动重新加载配置:

# Start server with hot-reload enabled
only1mcp start --config only1mcp.yaml

# In another terminal, modify configuration file
vim only1mcp.yaml

# Server automatically detects changes and reloads (within 500ms)
# No restart required!

支持的配置格式: 汤米

重新加载的内容:

  • 后端服务器列表(添加/删除/修改服务器)
  • 健康检查设置
  • 负载平衡配置
  • 服务器权重和优先级
  • 身份验证规则

需要重新启动的内容:

  • 服务器主机/端口绑定
  • TLS证书
  • 核心运行时设置

特征:

  • 📁 文件监视 -通知6.1取消公告的事件(500ms)
  • ⚛️ 原子更新 -通过ArcSwap进行无锁配置交换
  • 验证优先 -无效配置被拒绝,旧配置保留
  • 📊 指标跟踪 -config_reload_total、config_reload_errors
  • 🔔 订阅者模式 -多个组件独立通知

例子:

# only1mcp.yaml
server:
  host: "0.0.0.0"
  port: 8080

servers:
  - id: "backend1"
    name: "Primary MCP Server"
    enabled: true
    transport:
      type: "http"
      url: "http://localhost:3000"
    weight: 100

  # Add new backend without restart!
  - id: "backend2"
    name: "Secondary MCP Server"
    enabled: true
    transport:
      type: "stdio"
      command: "mcp-server"
      args: ["--port", "3001"]
    weight: 50

  # SSE transport for Context7
  - id: "context7"
    name: "Context7 MCP Server"
    enabled: true
    transport:
      type: "sse"
      url: "https://mcp.context7.com/mcp"
      headers:
        Accept: "application/json, text/event-stream"
        Content-Type: "application/json"
    health_check:
      enabled: false
    weight: 75

修改配置,保存,在500毫秒内代理将:

  1. 检测文件更改(已取消)
  2. 加载并验证新配置
  3. 如果验证通过,则进行原子交换
  4. 通知所有订阅者(注册表、健康检查器等)
  5. 记录成功或错误的详细信息

韧性:

  • 无效的YAML/TOML→ 保留旧配置,记录错误
  • 缺失文件→ 记录错误,旧配置处于活动状态
  • 验证失败→ 保留旧配置,详细错误
  • 快速变化→ 取消公告(仅适用最后一次更改)

监控:

# Check reload metrics
curl http://localhost:8080/api/v1/admin/metrics | grep config_reload

主动健康检查

只有1MCP通过可配置的探测器持续监控后端服务器的运行状况:

servers:
  - id: backend-1
    url: "http://localhost:9001"
    health_check:
      enabled: true
      interval_seconds: 10      # Check every 10 seconds
      timeout_seconds: 5        # 5 second timeout
      path: "/health"           # Health endpoint path
      healthy_threshold: 2      # 2 successes = healthy
      unhealthy_threshold: 3    # 3 failures = unhealthy

健康检查类型:

  • 超文本传输协议:GET请求到/health端点(预期200 OK)
  • 工作室:进程活动验证

卫生国家:

  • 健康的 (绿色):服务器接收流量
  • 不健康的 (红色):服务器已停止轮换
  • 恢复中 (黄色):再次测试服务器是否正常

自动故障切换: 不健康的服务器将自动从负载平衡器轮换中删除 一旦它们超过健康阈值,就会重新添加。

指标 (普罗米修斯):

  • health_check_total -检查总数(标签:server_id,结果)
  • health_check_duration_seconds -检查持续时间直方图
  • server_health_status -当前健康状况(0=不健康,1=健康)

响应缓存

只有1MCP缓存后端响应以减少延迟和后端负载:

proxy:
  cache:
    enabled: true
    l1_capacity: 1000      # Tools cache (5 min TTL)
    l2_capacity: 500       # Resources cache (30 min TTL)
    l3_capacity: 200       # Prompts cache (2 hour TTL)

缓存策略:

  • L1(工具):5分钟TTL,1000个条目
  • L2(资源):30分钟TTL,500个条目
  • L3(提示):2小时TTL,200个条目

驱逐政策:

  • TTL(生存时间):条目在配置的持续时间后过期
  • LRU(最近最少使用):达到容量时删除最旧的条目

缓存操作:

  • tools/list -工具发现
  • resources/list -资源枚举
  • prompts/list -提示模板

指标 (普罗米修斯):

  • cache_hits_total -缓存检索成功
  • cache_misses_total -缓存未命中,需要后端调用
  • cache_size_entries -当前缓存条目数
  • cache_evictions_total -LRU驱逐总数

实施:使用moka 0.12进行生产级缓存,具有自动TTL过期和LRU驱逐功能。

运行基准

只有1MCP包括使用Criterion.rs的全面性能基准:

# Run all benchmarks (~5 minutes)
cargo bench

# Run specific category
cargo bench --bench load_balancing   # 15 benchmarks: 5 algorithms × 3 sizes
cargo bench --bench caching           # 5 benchmarks: hit, miss, mixed, eviction, stats
cargo bench --bench batching          # 4 benchmarks: disabled, enabled, varying, concurrent

# Quick mode (faster iteration, less precise)
cargo bench -- --quick

# Save baseline for regression detection
cargo bench -- --save-baseline v0.2.0

# Compare against baseline
cargo bench -- --baseline v0.2.0

# View HTML reports
open target/criterion/report/index.html  # macOS
xdg-open target/criterion/report/index.html  # Linux

性能结果 (已验证):

度量目标实际状态
延迟(p95)\10k需求/秒~12.5k需求/秒
内存(100台服务器)\80%~85%
批处理呼叫减少>50%~62%

绩效基准指南 以获取全面的文档。

TUI接口

启动交互式终端UI进行实时监控:

# Start TUI
cargo run -- tui

# Or with release binary
./target/release/only1mcp tui

键盘快捷键 (总计21+,见 TUI指南):

关键动作关键动作
q退出Tab下一页选项卡
Shift+Tab上一个选项卡1-5跳转到特定选项卡
r刷新数据c清除日志
/ 滚动/搜索日志
Space暂停更新Ctrl+C强制退出

特性:

  • 概述选项卡:指标摘要、火花线图、实时统计数据
  • 服务器选项卡:运行状况表、每台服务器的RPS、状态指示器
  • 请求选项卡:最近的请求日志、方法分布、延迟百分比
  • 缓存选项卡:命中率/未命中率、驱逐统计数据、图层分布
  • 日志选项卡:带过滤功能的可滚动日志查看器

演出:CPU开销\80%,延迟减少>50%(已验证)

  • 特征4:请求批处理 (提交\[待定\]-10月18日)

- DashMap无锁并发批处理管理 - 时间窗口聚合(100ms批处理窗口) - 基于尺寸的冲洗(根据10个请求自动冲洗) - 列表方法的重复数据删除 - Tokio oneshot异步响应分发通道 - 新增11项测试(56→67项测试) - 度量标准:批量请求_总计、后端调用_保存_总计 - 性能:后端呼叫减少50%以上(已验证)

  • 特点5:TUI接口 (提交\[待定\]-10月18日)

- ratatui 0.26框架,带跨术语后端 - 5个选项卡:概述、服务器、请求、缓存、日志 - 21+全键盘导航快捷键 - 实时指标刷新(1秒间隔) - 专门的tokio任务与事件轮询 - 增加了21个测试(67→88个测试,15个单元+6个集成) - 性能:CPU开销\10k)✅ - 内存:78MB(目标:\>DashMap`

  • bb8连接池(可配置限制)
  • 一致的哈希算法,实现均匀的负载分布
  • 多层缓存系统
  • 异步I/O贯穿始终(Tokio运行时)
  • 尽可能实现零拷贝序列化

______________________________________________________________________

🤝 贡献

欢迎投稿!请参阅 贡献.md 作为指导方针。

开发工作流程

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 通过测试进行更改
  4. cargo testcargo clippy
  5. 用常规承诺进行承诺(feat:, fix:, docs:)
  6. 推到您的分支
  7. 打开拉取请求

代码规范

  • 遵循Rust习惯用法和最佳实践
  • 添加新功能的测试
  • 更新API变更文档
  • 保持功能集中和模块化
  • 使用有意义的变量名

______________________________________________________________________

📄 许可证

该项目在以下任一情况下获得双重许可:

由您选择。

______________________________________________________________________

🙏 学分

使用这些出色的Rust板条箱构建:

核心基础设施:

可观测性:

安全:

第二阶段特征:

还有更多令人惊叹的项目!

______________________________________________________________________

📧 联系

______________________________________________________________________

由以下材料制成❤️ 和生锈

目录标签

目录标签

多协议支持RustClaudeAI工具集成本地部署高性能代理负载均衡缓存优化

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP