██╗ █████╗ ██████╗ ██╗ ██╗██╗███████╗
██║██╔══██╗██╔══██╗██║ ██║██║██╔════╝
██║███████║██████╔╝██║ ██║██║███████╗
██ ██║██╔══██║██╔══██╗╚██╗ ██╔╝██║╚════██║
╚█████╔╝██║ ██║██║ ██║ ╚████╔╝ ██║███████║
╚════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚══════╝
The Agentic MCP Server for Dynamic Tool Management
Jarvis lets your AI agent manage its own tools. Install servers, switch profiles, configure clients—all through natural language. One MCP server to rule them all.
You're using Claude, Cursor, or another AI client. You have MCP servers for memory, search, code tools. But:
- Static configs — Every new tool requires manual JSON editing and client restart
- Per-client duplication — Same servers configured separately in Claude, Cursor, VS Code
- No agent autonomy — Your agent can't install tools it needs mid-conversation
- Context switching — Different projects need different tool sets
Jarvis is an agentic-first MCP server that gives your AI agent control over its own tooling:
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."
No config editing. No restart. The agent handles it.
- Dynamic Tool Installation — Install MCP servers mid-conversation from 200+ registry
- Profile-Based Tool Sets — Composable micro-profiles for different workflows
- Multi-Client Management — Configure Claude, Cursor, VS Code from one place
- Self-Healing Infrastructure — Agent detects and repairs its own tooling
- Context-Efficient — 52% smaller tool definitions (~1,400 tokens saved per connection)
Your agent discovers and installs tools from a registry of 200+ MCP servers:
jarvis_server({ action: "search", query: "pdf" }) // Find tools
jarvis_server({ action: "install", name: "pdf-parse" }) // Install
// Tool is immediately available—no restart neededGroup tools into composable profiles. Switch entire toolsets based on project context:
jarvis_profile({ action: "suggest" }) // Auto-detect best profile for current directory
// Returns: "essentials,dev-core,research" for coding projects| Profile | Tools | Use Case |
|---|---|---|
essentials |
Time, Fetch | Always-on utilities |
dev-core |
Context7 | Coding intelligence |
research |
Kagi, Firecrawl | Web research (Docker) |
memory |
Basic Memory | Persistence |
data |
Qdrant, Postgres | Heavy DBs |
Configure Claude Desktop, Cursor, VS Code, OpenCode—all from one place:
jarvis_client({ action: "edit", client_name: "cursor", add_profile: "memory" })
// Cursor now has memory tools. No manual JSON editing.Agent detects and repairs its own infrastructure:
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.shCopy the output JSON into your AI client config, or use --auto-config to do it automatically.
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 sits between your AI clients and the MCP ecosystem. It's the only MCP server your agent needs to manage all other MCP servers.
9 consolidated tools using action-based routing — 52% smaller than traditional definitions (~1,400 tokens saved per connection):
| Tool | Actions | Purpose |
|---|---|---|
jarvis_check_status |
— | System health check |
jarvis_server |
list, info, install, uninstall, search, edit, create, usage | MCP server management |
jarvis_profile |
list, create, edit, delete, suggest, restart | Profile management |
jarvis_client |
list, edit, import, config | AI client configuration |
jarvis_config |
get, set, list, migrate | MCPM settings |
jarvis_project |
analyze, diff, devops | Project analysis & DevOps |
jarvis_system |
bootstrap, restart, restart_infra | System operations |
jarvis_share |
start, stop, list | Server sharing |
jarvis_diagnose |
profile_health, test_endpoint, logs, full, config_sync | MCP debugging |
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" })Models: Any MCP-compatible model — Claude, GPT, Gemini, DeepSeek, Llama
Clients: Claude Desktop, Claude CLI, Cursor, Windsurf, VS Code, Zed, OpenCode, Kilo Code
Client Configuration
{
"mcpServers": {
"jarvis": {
"command": "/path/to/Jarvis/jarvis",
"args": []
}
}
}That's it. Jarvis manages everything else.
| Without Jarvis | With Jarvis |
|---|---|
| Edit JSON configs manually | Agent installs tools via natural language |
| Restart client for new tools | Hot-load tools mid-conversation |
| Duplicate configs per client | One source of truth, multi-client |
| Fixed tool set per session | Dynamic capabilities on-demand |
| Manual infrastructure repair | Self-healing |
| Large tool definitions (~2,750 tokens) | Consolidated tools (~1,350 tokens) |
See ROADMAP.yaml for the full development plan.
| Feature | Description |
|---|---|
| Daemon Stability | Auto-restart failed servers with backoff, health checks per profile |
| Config Hot Reload | Watch config files and apply changes without manual restarts |
| Smart Error Recovery | Actionable recovery suggestions when tool calls fail |
| Feature | Description |
|---|---|
| Profile Templates | Pre-built profiles for research, coding, data workflows |
| Multi-Model Optimization | Context-aware tool pruning for different LLM providers |
| Usage Analytics | Track tool usage patterns, error rates, response times |
| Feature | Description |
|---|---|
| Granular Client Editing | Fine-grained server config (env vars, headers, enable/disable) via jarvis_client |
Recently Completed
- v5.1 — Docker operations, test runner, config backup/restore
- v3.1 —
jarvis_diagnosetool for self-debugging - v3.0 — Tool consolidation (24 → 9 tools, 52% token reduction)
- HTTP API Transport — MCPM REST API with CLI fallback
| Doc | Description |
|---|---|
| Examples | Workflow examples |
| FAQ | Common questions |
| Architecture | Technical deep dive |
| Configuration | Micro-Profile Strategy |
| Troubleshooting | Issue resolution |
| API Reference | Complete tool reference |
git clone https://github.com/YOUR_USERNAME/Jarvis-mcpm.git
cd Jarvis && go build -o jarvis . && go test -v ./...MIT License · Issues · Discussions