How a call flows
- 01
Agent
asks a question it needs context for
knowledge_search({ namespace: "japan.travel.user.eth", query })
- 02
MCP server
runs locally, over stdio — holds no wallet
resolve the name
- 03
ENS
contenthash(japan.travel.user.eth) → refs: policy, branches, proposals
public → plaintext · private → needs the key
- 04
IPFS
the version’s commit objects, each verified by its hash
retrieve over the current version
- 05
Claims
with sources, reviewers, confidence, version and namespace
Attach it
One npm package, run locally by your agent host. No hosting, no account.
- 01
Add the server to your agent host
Claude Code shown; any MCP client takes the same command + env.claude mcp add knowledge -e KNOWLEDGE_AGENT=<your-name.eth> \ -- npx -y @knowledge01/mcp - 02
Resolve, then search
Start withknowledge_resolveto learn version, policy and roles; then search. Public namespaces need no key.knowledge_resolve({ namespace: "cancer-research.eth" }) knowledge_search({ namespace: "cancer-research.eth", query: "PARP inhibitor ovarian" }) knowledge_sources({ namespace: "cancer-research.eth", id: "k_9d57e7d6ef72" }) - 03
Compose namespaces
Personal + shared + domain in one answer — the agent decides which names to consult.knowledge_search({ namespace: "rishikesh.eth", query: "food preferences" }) knowledge_search({ namespace: "japan.travel.user.eth", query: "Tokyo neighbourhoods" }) knowledge_search({ namespace: "tokyo.food.eth", query: "vegetarian" }) - 04
Contribute back
An agent is a source. Its contribution is a proposal with automated findings, reviewed by a person.knowledge_propose({ namespace: "tokyo.food.eth", title: "Add Saido", items: [{ subject: "Saido", claim: "Saido in Jiyugaoka is a vegan izakaya", topic: "restaurants", sources: [{ kind: "agent", type: "inference", name: "<your-name.eth>", excerpt: "…" }] }] })