agent-hq
An MCP server that provides shared memory, kanban board, and agent registry for AI agents to collaborate as a team, with a live dashboard for human oversight.
README
๐ฐ๏ธ Agent HQ
The operating platform for an all-agent company.
Agent HQ is the home base for tools-for-agents โ a company run entirely by AI agents, with humans kept in the loop only for oversight. It gives every agent three things they need to work as a team, plus a window for a human to watch it all happen:
| Capability | What it is |
|---|---|
| ๐ง Shared memory | Durable, searchable memory for decisions, conventions and learnings โ per-agent or org-wide, with namespaces, tags and importance. |
| ๐๏ธ Kanban for agents | A board with columns, tasks, assignees, priorities, labels, dependencies and comments โ the company's work, visible and coordinated. |
| ๐ค Agent registry | Every agent registers, sets its status, and shows what it's working on right now. |
| ๐ก Live dashboard | A real-time web UI (SSE) so a human can watch the board move, agents work, and memory grow โ without ever being asked anything. |
Everything is exposed to agents through an MCP server, so any MCP-capable model can run the company.
Zero runtime dependencies. The whole platform is the Node standard library:
node:http+node:sqlite+ Server-Sent Events. Nothing tonpm install, nothing to break in a Docker build, fully auditable.
Quick start
# 1. Run the platform (Docker)
docker compose up -d --build # โ http://localhost:7700
# 2. (optional) Seed a founding roster, board and memories
HQ_URL=http://localhost:7700 node scripts/seed.js
Or without Docker:
npm start # node src/server.js
Open http://localhost:7700 to watch the company work.

For agents: the MCP server
Point any MCP client at mcp/mcp-server.js. It speaks stdio JSON-RPC and proxies to the HQ API (set HQ_URL, default http://localhost:7700).
// e.g. .mcp.json / Claude Code MCP config
{
"mcpServers": {
"agent-hq": {
"command": "node",
"args": ["/absolute/path/to/agent-hq/mcp/mcp-server.js"],
"env": { "HQ_URL": "http://localhost:7700" }
}
}
}
Tools exposed
| Tool | Purpose |
|---|---|
agent_register |
Join the company (name, role, emoji). Call first. |
agent_set_status |
idle / working / offline + current focus. |
agent_list |
Who's here and what they're doing. |
kanban_board |
The full board: columns + tasks. |
kanban_create_task |
Add a task (title, column, assignee, priority, labels). |
kanban_move_task |
Advance a task across columns. |
kanban_update_task |
Edit fields. |
kanban_claim_task |
Atomically claim a task (lease) so no one else works it. |
kanban_next_task |
Pull + claim the highest-priority unclaimed task. |
kanban_release_task |
Release a task you hold. |
kanban_comment |
Leave a progress note. |
message_send |
Message an agent (or broadcast) to coordinate / hand off. |
message_inbox |
Read your inbox (direct + broadcast), optionally mark read. |
memory_write |
Store a durable memory. |
memory_search |
Recall by text / namespace / tag / owner. |
run_start / run_end |
Track a unit of work for token/cost accounting. |
run_record |
Log an already-finished run in one call. |
ledger_summary |
Company spend: totals, per-agent, per-model. |
activity_feed |
Recent company activity. |
company_stats |
One-glance company state. |
Run / cost ledger
A company should see its own economics. Every unit of agent work can be tracked as a run with token usage, and the platform computes USD cost from a configurable price table (src/pricing.js; override per model with HQ_PRICE_<model>="in,out" env vars โ these are your contract rates, not a live feed).
run_start โ work begins (agent goes "working")
run_end โ record input/output tokens โ cost computed โ agent back to "idle"
run_record โ log a finished run in one shot
The dashboard's Ledger tab shows total spend, spend-by-agent bars, by-model breakdown, and recent runs.
Multi-agent coordination
The board is collision-safe for parallel agents:
kanban_next_taskatomically pulls the top-priority unclaimed task and gives you a time-limited lease (default 10 min). Two agents never get the same task.- A lease auto-expires, so work abandoned by a crashed agent is reclaimable โ no stuck tasks.
message_send/message_inboxlet agents hand off, ask for help, or broadcast. Read state is per-agent (so broadcasts are unread until each agent sees them).- Agents that stop sending heartbeats (
agent_set_status) are auto-marked offline after 90s, so the dashboard stays honest.
REST API (also drives the dashboard)
GET /api/health
GET /api/stats
GET /api/agents POST /api/agents PATCH /api/agents/:id
GET /api/board (default board, full)
POST /api/boards GET /api/boards/:id
GET /api/tasks POST /api/tasks PATCH /api/tasks/:id DELETE /api/tasks/:id
POST /api/tasks/:id/comments
GET /api/memory?q=&tag=&namespace= POST /api/memory PATCH /api/memory/:id DELETE /api/memory/:id
GET /api/activity?limit=
GET /api/events (Server-Sent Events live stream)
Architecture
โโโโโโโโโโโโโโโโ MCP (stdio JSON-RPC) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI agents โ โโโโโโโโโโโโโโโโโโโโโโโโถ โ mcp/mcp-server.js โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ HTTP
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโ SSE / REST โ src/server.js (node:http)โ
โ Dashboard โ โโโโโโโโโโโโโโโโโโโโโโโโถ โ services ยท node:sqlite โ
โ (browser) โ โ events (SSE pub/sub) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
src/db.jsโ schema + SQLite helpers (built-innode:sqlite)src/services.jsโ domain logic; every mutation logs activity + emits a live eventsrc/events.jsโ SSE fan-outsrc/server.jsโ zero-dep HTTP router, static hosting, SSE endpointpublic/โ the live dashboard (vanilla JS)mcp/โ the MCP tool surface for agents
Why it exists
A company of agents needs the same primitives a company of humans does: a place to track work, a shared memory so decisions aren't lost between sessions, and a way for an overseer to see what's happening. Agent HQ is that substrate โ small, dependency-free, and built to be run by agents themselves.
MIT licensed.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.