search_vault
Semantic and keyword search across stored personal records, facts, and memories in the private vault.
queryrequiredtop_k
io.github.Richard-EwingPublished by GitHub account Richard-Ewingv0.2.3Updated Nov 5, 2026
Official MCP bridge to Exogram—the Personal AI Agent for your work, people, and life.
Exogram's official MCP bridge: a personal memory vault and knowledge graph plus governed drafts for Gmail, Drive, Calendar, GitHub, Notion and Slack.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.Richard-Ewing%2Fexogram/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"exogram-personal-ai-agent-workspace": {
"type": "http",
"url": "https://api.exogram.ai/mcp"
}
}
}v0.2.0)[Exogram Plum Mineral AI Workspace & Personal Neural Network Preview]
[PyPI exogram] [PyPI mcp-server-exogram] [npm @exogram/sdk] [Glama MCP Server Score] [Listed on mcpservers.org] [Indexed on TensorBlock MCP Index] [Exogram Protocol RFC] [MIT License]
Exogram (exogram.ai) is a Personal AI Agent and workspace that understands your whole story across your work, people, and everyday life—coordinating specialist agents, turning plain requests into finished interactive deliverables, and executing real tasks with your approval.
This open-core repository provides the official Python/TypeScript SDKs and MCP bridge (mcp-server-exogram) so external AI tools (Claude, Cursor, Windsurf, VS Code, Google Antigravity) can connect directly into that same Exogram Personal Neural Network, interactive widget engine, and action-approval guardrails.
This open-core repository ships the runnable client libraries, local SQLite WAL engine, FastMCP server, and A2UI Living Tile JSON schemas:
python/ (exogram v0.2.0) — Python SDK with Zero-Signup Local SQLite WAL Mode (~/.exogram/vault.db) and Cloud API routing (https://api.exogram.ai).typescript/ (@exogram/sdk v0.2.0) — TypeScript & Node.js SDK with CJS/ESM/DTS builds and zero-signup local mode.mcp-server/ (mcp-server-exogram v0.2.0) — FastMCP Server for Claude Desktop, Cursor, Google Antigravity, and OpenAI Agents.schemas/living-tiles-v5.schema.json — Canonical JSON Schema for all Composable A2UI Living Tiles and the 6 First-Party Kernels.Every SDK and MCP tool runs immediately on your machine using an embedded SQLite WAL vault (~/.exogram/vault.db) with zero account signup or API key required. When you set EXOGRAM_API_KEY, the exact same code routes to Exogram Cloud (https://exogram.ai).
Or run the self-contained demo script directly from this repository:
<30s)~/.exogram/vault.db)https://exogram.ai/api/mcp)@exogram/sdk)Every turn is orchestrated by six specialized first-party kernels and audited by verifyAgentContributionsAgainstTurnOutput so only kernels whose outputs are genuinely cited in the final synthesis display Complete · Cited:
schemas/living-tiles-v5.schema.json)Exogram dispatches structured inline Living Tiles validated for epistemic provenance:
action_draft — Governed outbound drafts (email, message, calendar, PR) with approval controls.checklist — Interactive execution checklists anchored to vault goals.decision_matrix — Multi-criteria weighted scoring tables.curated_places — Grounded venue & location cards with verified ratings.comparison_table — Side-by-side technical or product breakdowns.retail_deals_tile — Verified merchant pricing and availability cards.media_watch_tile — Film, series, book, and podcast recommendations with streaming provenance.occasion_countdown_tile — Recurring event (RRULE:FREQ=YEARLY) countdowns and preparation steps.memory_undo_tile — Transparent memory consolidation card with one-click /api/memory/undo.agent_hud_tile — Real-time telemetry of the 6 First-Party Kernels (Complete · Cited vs Standby).branded_diagram_tile — Publication-grade Plum Mineral (#FAF7F2, #201B20, #4C2B4B, #AEBD9A) SVG diagrams.hyperframes_video_tile — Frame-accurate deterministic HTML/CSS/SVG motion briefings (window.__renderFrame).instinct_computer_tile — Stateful browser/errand operator HUD with Approve Step and Take Over controls.MIT — see LICENSE for details.
Source: README.md at commit 72c347b
Semantic and keyword search across stored personal records, facts, and memories in the private vault.
queryrequiredtop_kSearch the Exogram Personal Neural Network and encrypted memory vault across facts, people, preferences, and commitments.
queryrequiredtop_kAnchor a new fact, code convention, project invariant, or personal memory to your encrypted vault.
contentrequirednamespacePersist or supersede a personal fact, commitment, or preference in your encrypted Exogram memory vault.
contentrequirednamespaceLook up an entity in Exogram's Layer 2 Knowledge Graph. Returns connected entities and directional relationships.
entity_namerequiredRetrieve active entities and concepts mapped in the personal knowledge network.
limitVerify whether an agent action is safe and complies with active execution invariants before running.
actionrequiredparamsRecord an execution decision into the tamper-evident cryptographic audit ledger.
actionrequiredparamsreasondecisionrequiredVerify the cryptographic SHA-256 hash chain integrity of the ledger from genesis to head.
Takes no parameters.
Ask a natural language question against the knowledge graph and receive a structured answer with entity paths and gap analysis.
queryrequiredmax_hopsSearch personal or workspace emails via Gmail API with query syntax (read-only).
queryrequiredmax_resultsCreate an email draft in Gmail. Does NOT send the email without explicit user confirmation.
cctorequiredbodyrequiredsubjectrequiredSearch documents, presentations, and files in Google Drive (read-only).
queryrequiredmax_resultsCreate a new Google Slides presentation draft with structured slides.
titlerequiredslidesrequiredList upcoming meetings, agenda items, and schedule availability from Google Calendar (read-only).
querymax_resultsDraft a new Google Calendar meeting invite. Does NOT send invites without explicit user confirmation.
titlerequiredend_timerequiredattendeesstart_timerequireddescriptionSearch issues and pull requests across connected GitHub repositories (read-only).
repoqueryrequiredDraft a GitHub Pull Request proposal. Does NOT open or publish the PR without explicit user approval.
basebodyrequiredheadrequiredreporequiredtitlerequiredSearch pages and databases in the user connected Notion workspace.
queryrequiredfilter_typeDraft new content or notes to append into an existing Notion page. Gated by explicit user approval.
contentrequiredpage_idrequiredblock_typeList accessible channels in the connected Slack workspace.
typesDraft a message to a Slack channel. Does NOT post without explicit user approval.
channelrequiredmessagerequiredthread_ts100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
pip install exogram
# Or install directly from source:
pip install git+https://github.com/Richard-Ewing/exogram-sdk.gitfrom exogram import ExogramClient
# Automatically initializes ~/.exogram/vault.db (SQLite WAL) when no API key is set,
# or routes to https://api.exogram.ai when api_key="exo_live_..." or EXOGRAM_API_KEY is set.
client = ExogramClient()
# 1. Store memory claims across Work, People, and Life spheres
record = client.vault.store(
"Architecture decision: Production edge deploys to Cloudflare Workers via OpenNext",
namespace="work",
sphere="Work",
confidence=0.98,
temporal_horizon="durable_trait",
)
print(f"Stored {record.id} | State Hash: {record.state_hash}")
# 2. Traverse the Personal Neural Network (Infinite-Hop Spreading Activation + HippoRAG 2 PPR)
context = client.neural_network.retrieve(
query="How does our production edge deploy?",
spheres=["Work", "People", "Life"],
max_hops=4,
)
print(f"PPR Converged: {context.ppr_converged} | Claims: {len(context.claims)}")
# 3. Deterministic 0.07ms State-Hash & Instinct Pre-Mutation Action Gate
judgment = client.governance.evaluate_action(
agent_id="deployment-sentinel",
action_type="deploy_cloudflare_worker",
parameters={"service": "exogram-edge", "environment": "production"},
state_hash=context.state_hash,
)
if judgment.permitted:
receipt = client.actions.execute(judgment.execution_token)
print(f"Committed! Ledger Hash: {receipt.ledger_hash}")python examples/quickstart_local_and_cloud.py{
"mcpServers": {
"exogram": {
"command": "uvx",
"args": ["mcp-server-exogram", "--local"]
}
}
}{
"mcpServers": {
"exogram": {
"command": "uvx",
"args": ["mcp-server-exogram"],
"env": {
"EXOGRAM_API_KEY": "exo_live_your_key_here",
"EXOGRAM_API_URL": "https://api.exogram.ai"
}
}
}
}npm install @exogram/sdkimport { ExogramClient } from '@exogram/sdk';
const client = new ExogramClient(); // Zero-signup local mode or pass { apiKey: process.env.EXOGRAM_API_KEY }
const rec = await client.vault.store('Deploy target is Cloudflare Workers Global Edge', {
namespace: 'work',
sphere: 'Work',
confidence: 0.96,
});
const context = await client.neuralNetwork.retrieve('What is our deploy target?', {
spheres: ['Work', 'People', 'Life'],
maxHops: 4,
});
const judgment = await client.governance.evaluateAction({
agentId: 'ts-agent',
actionType: 'deploy_worker',
parameters: { target: 'cloudflare' },
stateHash: context.stateHash,
});
if (judgment.permitted && judgment.executionToken) {
const receipt = await client.actions.execute(judgment.executionToken);
console.log('Committed Ledger Hash:', receipt.ledgerHash);
}┌──────────────────────────────────────────────────────────────────────────────┐
│ User Prompt / External MCP Agent Call │
└──────────────────────────────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 1. Laya System 1 Deterministic Fast-Path (<15ms In-Memory Understanding) │
│ Resolves vault subjects, intent, sphere routing (Work · People · Life), │
│ and search queries in <15ms over profileDigest + priorTurns. │
└──────────────────────────────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 2. Personal Neural Network (Infinite-Hop Spreading Activation + HippoRAG 2) │
│ • Hybrid RRF Retrieval (Vector + BM25 + Entity Overlap) │
│ • Personalized PageRank (PPR, damping α = 0.85) across multi-hop edges │
│ • 3-Horizon Episodic Memory (ephemeral_episode, recurring_event, durable) │
│ • Read-Time/Write-Time Scalar Conflict Supersession & /api/memory/undo │
└──────────────────────────────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 3. Two-Tier Inference Gateway & 6 Honest First-Party Kernels │
│ • PERSONAL Subtasks → Paid Gemini 3.x (Zero PII leaves encrypted boundary)│
│ • PUBLIC_ONLY Subtasks → PII-stripped & compressed before Free-Token Pool │
│ • Post-Synthesis Citation Verification (Complete · Cited vs Standby) │
└──────────────────────────────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 4. Instinct Pre-Mutation Governance (0.07ms Gate) & A2UI Living Tiles │
│ • Deterministic SHA-256 State-Hash Drift Guard before any tool mutation │
│ • Progressive JSON Patching (AG-UI) & Claim-Predicate Entailment Scoring │
└──────────────────────────────────────────────────────────────────────────────┘exogram-sdk/
├── python/ # Official Python SDK (pip install exogram)
├── typescript/ # Official TypeScript SDK (npm install @exogram/sdk)
├── mcp-server/ # FastMCP Server (uvx mcp-server-exogram)
├── schemas/ # JSON Schemas (living-tiles-v5.schema.json)
├── examples/ # Runnable Local & Cloud Quickstart scripts
└── docs/assets/ # Plum Mineral UI previews & architecture diagrams# 1. Run the 60-second quickstart script
python examples/quickstart_local_and_cloud.py
# 2. Run Python SDK unit tests
pytest python/tests/
# 3. Run FastMCP Server unit tests
pytest mcp-server/tests/
# 4. Run TypeScript SDK unit tests
cd typescript && npm test