动态工具管理服务器

Jarvis是一个基于MCP协议的代理式服务器,用于动态管理和安装AI代理的工具集,支持多客户端配置和自愈功能。

  • by JRedeker
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 JRedeker/Jarvis-mcpm

使用说明

贾维斯

     ██╗ █████╗ ██████╗ ██╗   ██╗██╗███████╗
     ██║██╔══██╗██╔══██╗██║   ██║██║██╔════╝
     ██║███████║██████╔╝██║   ██║██║███████╗
██   ██║██╔══██║██╔══██╗╚██╗ ██╔╝██║╚════██║
╚█████╔╝██║  ██║██║  ██║ ╚████╔╝ ██║███████║
 ╚════╝ ╚═╝  ╚═╝╚═╝  ╚═╝  ╚═══╝  ╚═╝╚══════╝

用于动态刀具管理的代理MCP服务器

Jarvis允许您的AI代理管理自己的工具。 通过自然语言安装服务器、切换配置文件、配置客户端。一个MCP服务器来管理它们。


问题

您正在使用Claude、Cursor或其他AI客户端。您有用于内存、搜索和代码工具的MCP服务器。但是:

  • 静态配置 --每个新工具都需要手动JSON编辑和客户端重启
  • 每个客户端重复 --在Claude、Cursor和VS Code中分别配置相同的服务器
  • 无代理自主权 --您的代理无法安装对话中需要的工具
  • 上下文切换 --不同的项目需要不同的工具集

解决方案

贾维斯是一个 代理第一MCP服务器 这使您的AI代理可以控制自己的工具:

You: "I need to analyze some PDFs"
Agent: [searches registry → installs pdf-parse → uses it immediately]
Agent: "Done. The contract has a 30-day payment term on page 3."

没有配置编辑。不重新启动。代理人处理它。


主要特点

  • 动态工具安装 --从200多个注册表在对话中安装MCP服务器
  • 基于轮廓的工具集 --适用于不同工作流程的可组合微型型材
  • 多客户端管理 --从一个地方配置Claude、Cursor、VS代码
  • 自愈基础设施 --代理检测并修复自己的工具
  • 上下文高效 --52%的工具定义更小(每个连接节省约1400个令牌)

核心能力

1.动态工具安装

您的代理从200多台MCP服务器的注册表中发现并安装工具:

jarvis_server({ action: "search", query: "pdf" })     // Find tools
jarvis_server({ action: "install", name: "pdf-parse" }) // Install
// Tool is immediately available—no restart needed

2.基于轮廓的工具集

将工具分组到可组合的配置文件中。根据项目上下文切换整个工具集:

jarvis_profile({ action: "suggest" })  // Auto-detect best profile for current directory
// Returns: "essentials,dev-core,research" for coding projects
简介 工具 用例
essentials Time,Fetch 始终打开的实用程序
dev-core Context7 编码智能
research Kagi,Firecrawl 网络研究(Docker)
memory 基本记忆 持久性
data Qdrant,Postgres 重型DB

3.多客户端管理

配置克劳德桌面、光标、VS代码、OpenCode——所有这些都可以在一个地方完成:

jarvis_client({ action: "edit", client_name: "cursor", add_profile: "memory" })
// Cursor now has memory tools. No manual JSON editing.

4.自愈基础设施

代理检测并修复自己的基础设施:

You: "My search isn't working"
Agent: [checks status → finds Qdrant down → restarts → confirms healthy]
Agent: "Fixed. Qdrant was down, restarted it. Search should work now."

安装

git clone https://github.com/JRedeker/Jarvis-mcpm.git
./Jarvis-mcpm/scripts/setup-jarvis.sh

将输出JSON复制到AI客户端配置中,或使用 --auto-config 自动完成。


运作原理

flowchart TB
    subgraph Clients["AI Clients"]
        Claude[Claude Desktop]
        Cursor[Cursor]
        VSCode[VS Code]
        OpenCode[OpenCode]
    end

    subgraph Jarvis["Jarvis (Agentic MCP Server)"]
        Gateway[Tool Management API]
        Registry[(200+ Server Registry)]
    end

    subgraph Daemon["MCPM Daemon"]
        P1[Profile: Research]
        P2[Profile: Memory]
        P3[Profile: Dev-Core]
    end

    Clients -->|"Install/Switch/Configure"| Gateway
    Gateway --> Registry
    Gateway -->|Manage| Daemon
    Daemon --> P1 & P2 & P3

Jarvis位于您的AI客户端和MCP生态系统之间。 这是您的代理管理所有其他MCP服务器所需的唯一MCP服务器。


工具参考

9个综合工具 使用基于动作的路由-- 缩小52% 比传统定义(每个连接节省约1400个令牌):

工具 行动 目的
jarvis_check_status -- 系统健康检查
jarvis_server 列表、信息、安装、卸载、搜索、编辑、创建、使用 MCP服务器管理
jarvis_profile 列表、创建、编辑、删除、建议、重新启动 配置文件管理
jarvis_client 列表、编辑、导入、配置 AI客户端配置
jarvis_config 获取、设置、列出、迁移 MCPM设置
jarvis_project 分析、差异、开发 项目分析和devops
jarvis_system bootstrap、restart、restart_infra 系统操作
jarvis_share 启动、停止、列表 服务器共享
jarvis_diagnose profile_health、test_endpoint、日志、完整、config_sync MCP调试
Example Commands
// Install a new tool
jarvis_server({ action: "install", name: "brave-search" })

// Switch project profile
jarvis_profile({ action: "edit", name: "my-project", add_servers: "context7,firecrawl" })

// Configure a client
jarvis_client({ action: "edit", client_name: "opencode", add_profile: "memory" })

// Check system health
jarvis_check_status()

// Bootstrap everything
jarvis_system({ action: "bootstrap" })

// Debug when tools fail to load
jarvis_diagnose({ action: "profile_health" })
jarvis_diagnose({ action: "logs", profile: "research" })

// Audit config synchronization
jarvis_diagnose({ action: "config_sync" })

通用兼容性

模型: 任何兼容MCP的型号——Claude、GPT、Gemini、DeepSeek、Llama

客户: Claude Desktop、Claude CLI、游标、Windsurf、VS Code、Zed、OpenCode、Kilo Code

Client Configuration
{
  "mcpServers": {
    "jarvis": {
      "command": "/path/to/Jarvis/jarvis",
      "args": []
    }
  }
}

就是这样。贾维斯管理着其他一切。


为什么是贾维斯?

没有贾维斯 有贾维斯
手动编辑JSON配置 代理通过自然语言安装工具
重新启动新工具的客户端 对话中热加载工具
每个客户端重复配置 一个真实来源,多个客户端
每个会话的固定工具集 按需动态功能
手动基础设施修复 自我修复
大型工具定义(约2750个令牌) 合并工具(约1350个令牌)

路线图

看 ROADMAP.yaml 全面发展规划。

现在

特性 描述
守护进程稳定性 自动重启失败的服务器,根据配置文件进行回退和健康检查
配置热重新加载 查看配置文件并应用更改,无需手动重新启动
智能错误恢复 工具调用失败时可操作的恢复建议

下一步

特性 描述
配置文件模板 用于研究、编码和数据工作流程的预构建配置文件
多模型优化 针对不同LLM提供商的上下文感知工具修剪
使用情况分析 跟踪工具使用模式、错误率、响应时间

提议的

特性 描述
精细客户端编辑 通过以下方式进行细粒度服务器配置(环境变量、标头、启用/禁用) jarvis_client
Recently Completed
  • v5.1 --Docker操作、测试运行器、配置备份/恢复
  • v3.1 — jarvis_diagnose 自调试工具
  • v3.0 --工具整合(24→9个工具,代币减少52%)
  • HTTP API传输 -带CLI回退的MCPM REST API

文档

文档 描述
例子 工作流示例
常见问题解答 常见问题
建筑 技术深潜
配置 微观轮廓策略
故障排除 问题解决
API 参考 完整的工具参考

贡献

git clone https://github.com/YOUR_USERNAME/Jarvis-mcpm.git
cd Jarvis && go build -o jarvis . && go test -v ./...

MIT许可证 · 问题 · 讨论