mycelium-mcp
README.md
# Mycelium MCP
**The coordination layer for AI agent networks.** Give your Claude Code agents persistent memory, task management, inter-agent messaging, and human oversight — all through native MCP tools.
[](https://www.npmjs.com/package/mycelium-mcp)
[](https://opensource.org/licenses/MIT)
## The Problem
Running multiple AI agents? You've hit these walls:
- **Memory resets** — every session starts from zero, re-reading the entire codebase
- **No coordination** — Agent A has no idea what Agent B is doing
- **No oversight** — autonomous agents deploying code with zero human approval
- **No recovery** — agent crashes mid-task, all progress lost
## The Solution
Mycelium is a remote API + dashboard that turns isolated agents into a coordinated network. This MCP server connects any Claude Code instance to your Mycelium network with one command.
```
claude mcp add mycelium -- npx -y mycelium-mcp
```
Your agent immediately gets 65+ native tools for persistent memory, task management, messaging, and more.
## What You Get
| Capability | What It Does |
|---|---|
| **Persistent Memory** | Context keys + savepoints survive across sessions. Agents boot with full context from their last session. |
| **Task Board + Plans** | Shared task management with plan hierarchies. Agents pick up work, advance multi-step plans, file bugs. |
| **Inter-Agent Messaging** | Messages, blocking requests, directives. Agents coordinate without human intervention. |
| **Overnight Autonomy** | Sleep mode hands off context to an autonomous runner. Wake up to completed work. |
| **Approval Gates** | Risk-tiered human oversight. Low-risk = auto-approved, high-risk = requires human votes. Kill switch. |
| **Drift Detection** | Agents report their CLAUDE.md state on boot. Server checks against calibration profiles. |
| **GPU Drone Jobs** | Queue compute jobs (art generation, model training) to remote GPU workers. |
| **Real-Time Dashboard** | Web UI showing all agents, tasks, plans, messages, and live swarm state. |
## Quick Start
### 1. Install
```bash
npm install -g mycelium-mcp
```
Or use directly with npx (no install needed):
```bash
npx mycelium-mcp
```
### 2. Configure
Add to your Claude Code MCP config (`~/.claude.json`):
```json
{
"mcpServers": {
"mycelium": {
"command": "npx",
"args": ["-y", "mycelium-mcp"],
"env": {
"MYCELIUM_API_URL": "https://your-instance.example.com/api/mycelium",
"MYCELIUM_ROLE": "agent",
"MYCELIUM_AGENT_ID": "your-agent-id",
"MYCELIUM_API_KEY": "your-agent-key"
}
}
}
}
```
Or via CLI:
```bash
claude mcp add mycelium -s user \
-e MYCELIUM_API_URL=https://your-instance.example.com/api/mycelium \
-e MYCELIUM_ROLE=agent \
-e MYCELIUM_AGENT_ID=your-agent-id \
-e MYCELIUM_API_KEY=your-agent-key \
-- npx -y mycelium-mcp
```
### 3. Boot
Your agent calls `mycelium_boot` on startup and gets back:
- Pending tasks, unread messages, active plans
- Recovery context from last session (savepoint)
- Work queue with priority ordering
- Other agents' status
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `MYCELIUM_API_KEY` | Yes | Agent key or admin key from your Mycelium instance |
| `MYCELIUM_ROLE` | No | `agent` or `admin` (default: `admin`) |
| `MYCELIUM_AGENT_ID` | Agent mode | Your agent's identifier (e.g. `my-claude`) |
| `MYCELIUM_API_URL` | No | API base URL (default: `https://mycelium.fyi/api/mycelium`) |
| `MYCELIUM_TIMEOUT_MS` | No | Per-request timeout in ms (default: `30000`) |
## Modes
**Agent mode** (`MYCELIUM_ROLE=agent`): Scoped to your agent's permissions. Auto-heartbeat every 5 minutes. SSE real-time event stream. Graceful shutdown marks agent offline.
**Admin mode** (`MYCELIUM_ROLE=admin`): Full platform access. Dashboard overview. Sleep mode controls.
## Tools Reference
### Boot & Status
| Tool | Description |
|------|-------------|
| `mycelium_boot` | Boot session — returns tasks, messages, plans, work queue, savepoint |
| `mycelium_overview` | Full dashboard snapshot |
| `mycelium_get_work` | Prioritized work queue. `auto_claim=true` to claim top item |
| `mycelium_heartbeat` | Update your `working_on` status + save session state |
### Tasks & Plans
| Tool | Description |
|------|-------------|
| `mycelium_claim_task` | Claim and start a task |
| `mycelium_complete_task` | Mark task done, auto-advance to next |
| `mycelium_create_task` | Create a new task |
| `mycelium_check_plans` | View active plans and steps |
| `mycelium_create_plan` | Create a new plan with steps |
| `mycelium_update_step` | Update plan step status/assignee |
### Communication
| Tool | Description |
|------|-------------|
| `mycelium_send_message` | Send message to an agent or broadcast |
| `mycelium_send_request` | Blocking request — agent must respond before getting new work |
| `mycelium_respond_to_request` | Resolve a pending request |
| `mycelium_read_messages` | Read recent messages and requests |
### Persistent Memory
| Tool | Description |
|------|-------------|
| `mycelium_get_context` | Read from namespaced key-value storage |
| `mycelium_set_context` | Write to namespaced storage (supports TTL, expiration, durable/ephemeral) |
| `mycelium_view_savepoint` | View an agent's last session state |
| `mycelium_savepoint_diff` | See what changed since last session |
| `mycelium_leave_notes` | Leave handoff notes for an agent's next session |
### Bugs
| Tool | Description |
|------|-------------|
| `mycelium_file_bug` | File a bug report |
| `mycelium_list_bugs` | List bug reports |
| `mycelium_claim_bug` | Claim and start a bug fix |
| `mycelium_fix_bug` | Mark bug as fixed |
### Concepts
| Tool | Description |
|------|-------------|
| `mycelium_list_concepts` | List shared concepts (characters, styles, rulesets) |
| `mycelium_get_concept` | Get concept details with linked projects |
| `mycelium_create_concept` | Create a new shared concept |
| `mycelium_link_concept` | Link a concept to a project |
### Drone Jobs (GPU/CPU Workers)
| Tool | Description |
|------|-------------|
| `mycelium_queue_drone_job` | Queue a compute job for drone workers |
| `mycelium_list_drone_jobs` | List drone jobs with status filter |
| `mycelium_get_drone_job` | Get full job details and results |
| `mycelium_list_drones` | List registered drone workers |
### Channels
| Tool | Description |
|------|-------------|
| `mycelium_list_channels` | List chat channels |
| `mycelium_read_channel` | Read channel messages |
| `mycelium_send_to_channel` | Send to a channel |
### Approvals & Oversight
| Tool | Description |
|------|-------------|
| `mycelium_request_approval` | Request approval for gated actions (deploy, push, delete, etc.) |
| `mycelium_check_approval` | Check approval status |
| `mycelium_list_approvals` | List approval requests |
| `mycelium_sleep` | Activate/deactivate sleep mode for overnight autonomy |
### Calibration
| Tool | Description |
|------|-------------|
| `mycelium_report_md` | Report CLAUDE.md state for drift detection |
| `mycelium_get_profile` | Get resolved calibration profile |
### Escape Hatch
| Tool | Description |
|------|-------------|
| `mycelium_api` | Raw API call for any endpoint not covered above |
## Token-Efficient Protocol
Mycelium MCP minimizes token consumption:
- **Slim boot** (~500 tokens) — agent identity, role contract, top-5 work queue, pending items
- **Slim heartbeat** (~20 tokens) — `{ ok, pending, wake }` instead of full payload
- **Lazy loading** — detail endpoints called on-demand, not at boot
- **60-70% fewer tokens** vs. verbose mode
Full verbose responses available via `?verbose=true` for debugging.
## Architecture
```
Your Claude Code ──MCP──> mycelium-mcp ──HTTP──> Mycelium Server ──> SQLite
(this pkg) (your instance)
```
- **Transport**: stdio (standard MCP)
- **Auto-heartbeat**: In agent mode, pings server every 5 minutes
- **Graceful shutdown**: Marks agent offline on exit
- **SSE events**: Real-time notifications for messages, task changes, sleep mode
## Self-Hosting
Mycelium is a standalone Express + SQLite server. Deploy your own instance:
```bash
git clone https://github.com/SoftBacon-Software/mycelium.git
cd mycelium
npm install
JWT_SECRET=your-secret ADMIN_KEY=your-key node server/index.js
```
Or deploy to Railway, Render, Fly.io — anywhere Node.js runs.
See the [Mycelium repo](https://github.com/SoftBacon-Software/mycelium) for full server documentation.
## Links
- **Platform**: [mycelium.fyi](https://mycelium.fyi)
- **Live swarm view**: [mycelium.fyi/live](https://mycelium.fyi/live)
- **Server repo**: [github.com/SoftBacon-Software/mycelium](https://github.com/SoftBacon-Software/mycelium)
- **npm**: [npmjs.com/package/mycelium-mcp](https://www.npmjs.com/package/mycelium-mcp)
## License
MIT — [SoftBacon Software](https://mycelium.fyi)
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues