MCP Server
Model Context Protocol server exposing the entire holonic core as callable tools
Status: early β
@holons/mcp-uiis at0.1.0. The tool surface and identity model are working but may evolve. Pin versions in production deployments and expect the occasional breaking change until1.0.
The @holons/mcp-ui package is the canonical interface between AI agents and the Holons ecosystem. It implements the Model Context Protocol and exposes every public function in @holons/core as an independently-callable tool. With it, a Claude (or any MCP-compatible) agent can fully participate in a holon: create tasks, vote on proposals, log expenses, calculate scores, publish to federation, manage DNA, and moreβwithout any custom integration.
This is what makes a Claude agent a first-class holon member rather than an external assistant.
What it is
Name:
holons-mcp-uiLocation:
harvest/packages/mcp-ui/in the Harvest monorepoReplaces: the legacy HTTP API (port 3101) and the duplicate MCP wrappers under
telegram-ui/mcpTool count: ~100 tools across 14 domain modules
Transports
The server supports two transports out of the box:
stdio (default). Used by Claude Desktop, IDE integrations, and any MCP client that spawns a subprocess.
node packages/mcp-ui/dist/index.jsSSE over HTTP. Used when the server needs to be reachable over the network.
node packages/mcp-ui/dist/index.js --port 3200When --port is set, the server exposes:
GET
/sse
Open an SSE stream for an MCP session
POST
/messages
Send a client message to the open SSE session
GET
/
Health check β returns { name, version }
Identity model
Every tool call resolves an actorβthe user the call is acting on behalf of. This is what makes writes attributable to a specific person (or agent) inside HoloSphere.
The actor is resolved from environment variables, with per-call overrides possible:
HOLONS_ACTOR_ID
Acting user ID
mcp-ui
HOLONS_ACTOR_NAME
Display name
MCP-UI
HOLONS_ACTOR_USERNAME
@handle
(unset)
For an AI agent to participate as a known person, set these to that person's identity before launching the server.
HoloSphere connection
The server connects to the HoloSphere substrate using two environment variables:
HOLONS_PEER
Gun relay URL
https://gun.holons.io/gun
HOLONS_APP
HoloSphere app namespace
Holons
Every read and writeβacross every toolβlands in this namespace, which is also where the web dashboard, Telegram bot, and CLI write. All interfaces share one source of truth.
Tool domains
Each domain module exposes one tool per public function in the corresponding @holons/core domain. Tools are registered automatically at startup; missing domain files are skipped silently.
tasks
10
Create, update, plan, complete quests; manage participants and appreciation
council
13
Full proposal lifecycle β create, save, vote, tally, block, check agreement
dna
12
Holon DNA sequences and chromosomes β get, save, add, remove, validate, seed
settings
11
Per-holon and per-user configuration, with hex-grid integration
library
11
Shared resource catalog β CRUD, tagging, search
users
9
User CRUD and appreciation tracking
scoring
9
Value-equation evaluation β per user, per action, breakdown, full-holon
holosphere
8
Direct substrate access β put, get, getAll, delete, subscribe, history
checklists
7
Recurring and role-based checklist operations
expenses
6
Log shared costs, split expenses, calculate per-member shares
shopping
6
Shopping list items shared across a holon
calendar
5
Events, recurring events, scheduling
federation
3
Cross-holon publishing, federated snapshots, hex-coded settings
commands
2
Meta β dispatch a named command, list available commands
Each tool is a thin wrapper around a @holons/core function. The dependency surface for each tool is just two functions, injected at registration:
This means a tool is stateless from the MCP server's perspectiveβevery call resolves its actor and substrate fresh.
How agents use it
The two common patterns:
Claude Desktop / IDE integration. Configure the MCP client to launch node packages/mcp-ui/dist/index.js over stdio with the desired HOLONS_ACTOR_* and HOLONS_PEER / HOLONS_APP env vars. Claude can now call any of the ~100 tools as part of normal conversation.
Embedded agent (@holons/ai-ui). The AI UI package inside Harvest wraps @holons/core functions directly as Claude tool-use loop calls. The MCP server is what makes the same capability available to external agents and clients.
Relationship to the rest of the stack
Every interface ultimately writes to HoloSphere, so an action taken through the MCP server is identicalβin attribution, scoring, and federation propagationβto one taken in the Telegram bot or the web app.
See also
Harvest Dashboard β the monorepo that contains
@holons/mcp-uialongside the other UI shells.HolonsBot β the Telegram interface that shares the same core.
HoloSphere β the distributed substrate every tool reads from and writes to.
Glossary β vocabulary for holons, federation, value equation, and friends.
Last updated
Was this helpful?