Mycelium
Query-driven. Agent-native. Growing.
Open-source framework for agent-native data networks — scoped ecosystems where a supervisor routes entity queries to specialist agents. Person CRM today, via MCP and CLI.
What ships today
Mycelium is an open-source framework for agent-native data networks: scoped ecosystems where a supervisor routes entity queries to specialist agents that classify, research, and persist attributes — starting with person CRM, exposed via MCP and CLI.
299 pytest green on the framework repo — prototype quality, not enterprise-ready.
Networks
Isolated network_root per domain. Use network create and register names in ~/.config/mycelium/networks.json.
Entity registry
Canonical entities.json at runtime. Optional bootstrap seed.json imports at refresh or create only — not read on query.
MCP + CLI
Query-only public API: describe_network, query_entity, and health_check. No caller-supplied ingest payload.
Specialist research
Generated specialists per category. Sync LLM + Tavily on cache miss; findings persist under agents/<category>/.
Examples
crm (15-person bootstrap), empty-crm (growth from bind), and crm-metering (priced research negotiation).
Admin demo
./bin/restart-admin — read-only status UI polling entity and specialist growth on localhost.
Try it
Clone the framework, bootstrap the CRM example, and run your first entity query.
git clone https://github.com/myceliumdata/mycelium.git
cd mycelium && uv sync --all-extras
./bin/refresh-example-network crm
uv run mycelium query --entity-key "Nichanan Kesonpat" Full quick start: framework README
| Example | Command | Story |
|---|---|---|
| crm | ./bin/refresh-example-network crm | 15-person bootstrap → entities.json |
| empty-crm | ./bin/refresh-example-network empty-crm | No preloaded people; Paul Murphy bind creates first row |
| crm-metering | ./bin/refresh-example-network crm-metering | Priced research negotiation (quote_required) |
How a query works
The real CRM network path — from bootstrap to cached specialist results.
Refresh or create a network
Copy an example with ./bin/refresh-example-network or run network create. Optional seed.json imports at bootstrap only — queries read entities.json.
Connect an agent (MCP)
Call describe_network at connect time. The response includes guide.md, ontology categories, and framework usage policy.
Query an entity
Send entity_key plus optional requested_attributes. The supervisor classifies fields, routes to specialists, and runs sync research on cache miss.
crm example
Agent asks for Andrea Kalmans's email → supervisor routes to the contact specialist → research runs once → result cached → repeat query is fast.
empty-crm example
First bind for Paul Murphy @ Acme Corp creates the registry row — the network grows from zero without bootstrap people.
For agents (MCP)
Built for LLM client integrators. One long-lived MCP server per network; call describe_network at connect time.
query_entity request
{
"entity_key": "Andrea Kalmans",
"requested_attributes": ["email"],
"thread_id": "optional-session-id"
} QueryResponse snippet
{
"outcome": "assembled",
"suggestions": [],
"results": [
{
"id": "3fe6db14-a41d-50fe-9959-c5263dc5f53b",
"name": "Andrea Kalmans",
"employer": "Lontra Ventures",
"email": "[email protected]"
}
],
"message": "Found record for Andrea Kalmans; assembled from registry and specialist contributions."
}
Agents should branch on outcome before trusting results — values include found, assembled, not_found, and entity_key_unresolved.
MCP setup: framework README
Under the hood
Supervisor routing, specialist research, and a query-only public surface.
Entity registry
Canonical entities.json with stable UUIDs, bind keys, and validation states. Bootstrap seed.json imports at refresh only.
Specialist collectives
Generated agents per category under specialists/. Classification grows attribute_map lazily; research persists per entity.
Structured agent API
MCP and CLI return QueryResponse with outcome, suggestions, results, and message. Metering negotiation on crm-metering demo network.
Query graph (simplified)
Vision
Today's data sources are rigid, manually maintained, and lag behind the speed of agentic AI systems.
Mycelium aims to change that.
Agents bind and enrich entities; operators steer via network guides and validation rules. The long-term goal is data infrastructure where AI agents take primary ownership of organization, quality, and evolution.
"Mycelium lets AIs discover, structure, update, and serve data in real time — with operators setting policy, not hand-curating every field."
Future directions
- → Custom domains beyond person CRM (e.g. fleet, agronomic networks via network create)
- → Schema evolution guided by operator ontology and validation rules
- → Inter-network handoff between scoped ecosystems
What we don't claim yet
- · Arbitrary non-person domains as turnkey products
- · Public data-ingest API (returns as internal agent coordination later)
- · Inter-network routing
- · Fully autonomous schema evolution without operator ontology