Exogram — Personal AI Agent & Workspace

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.

Overview

AI-generated overview

Exogram's official MCP bridge: a personal memory vault and knowledge graph plus governed drafts for Gmail, Drive, Calendar, GitHub, Notion and Slack.

What you can do
  • Search, store and update personal memories, facts and preferences in an encrypted vault, and query the personal knowledge graph for entities, relationships and natural-language answers.
  • Check whether a proposed agent action is safe, record decisions in a hash-chained audit ledger, and verify that ledger's integrity.
  • Search Gmail messages, Google Drive files, GitHub issues and pull requests, Notion pages and Slack channels (read-only).
  • Draft emails, Google Slides presentations, calendar invites, GitHub pull requests, Notion page content and Slack messages, each gated by explicit user approval.
When to use it
Useful when you want an assistant to keep durable personal context across work, people and life, and to prepare outbound actions in connected Google, GitHub, Notion and Slack workspaces for your review rather than sending them itself.
Requirements
Runs as a hosted endpoint or as a local process via the mcp-server-exogram package (uvx). Local mode needs no signup and uses an embedded SQLite vault; cloud mode needs an Exogram API key in EXOGRAM_BEARER_TOKEN or an Authorization bearer header, plus EXOGRAM_API_URL to point at the API. Google, GitHub, Notion and Slack tools require those accounts to be connected.
Before you install
The API key is a secret; keep it out of shared configs. Cloud mode sends your memories and queries to Exogram's servers, which route some subtasks to third-party model providers. Write tools create drafts and are described as requiring explicit approval, but review each draft before anything is sent or published.

Installation

In SourceWeft

  1. Open Exogram — Personal AI Agent & Workspace in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

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.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "exogram-personal-ai-agent-workspace": {
      "type": "http",
      "url": "https://api.exogram.ai/mcp"
    }
  }
}

README

Exogram Open-Core SDK & FastMCP Server (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.

60-Second Zero-Signup Quickstart (Local SQLite WAL & Cloud)

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).

1. Run the Python SDK in 30 Seconds

bash
pip install exogram
# Or install directly from source:
pip install git+https://github.com/Richard-Ewing/exogram-sdk.git
python
from 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}")

Or run the self-contained demo script directly from this repository:

bash
python examples/quickstart_local_and_cloud.py

2. Connect Claude Desktop, Cursor, or Antigravity via FastMCP (<30s)

Option A: Zero-Signup Local SQLite WAL Mode (~/.exogram/vault.db)
json
{
  "mcpServers": {
    "exogram": {
      "command": "uvx",
      "args": ["mcp-server-exogram", "--local"]
    }
  }
}
Option B: Hosted Exogram Cloud MCP (https://exogram.ai/api/mcp)
json
{
  "mcpServers": {
    "exogram": {
      "command": "uvx",
      "args": ["mcp-server-exogram"],
      "env": {
        "EXOGRAM_API_KEY": "exo_live_your_key_here",
        "EXOGRAM_API_URL": "https://api.exogram.ai"
      }
    }
  }
}

3. TypeScript / Node.js Quickstart (@exogram/sdk)

bash
npm install @exogram/sdk
typescript
import { 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);
}

Architecture Overview (Master Plan v5)

┌──────────────────────────────────────────────────────────────────────────────┐
│                     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  │
└──────────────────────────────────────────────────────────────────────────────┘

The 6 First-Party Cognitive Kernels

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:

KernelResponsibility
Neural Graph KernelTraverses multi-hop associative paths across Work, People, and Life using Spreading Activation and HippoRAG 2 Spectral PPR.
Generative UI KernelSynthesizes and validates Composable A2UI Living Tiles against schemas/living-tiles-v5.schema.json.
Live Web & Places ScoutExecutes PII-stripped public web & place verification for PUBLIC_ONLY subtasks.
Action & Draft KernelPrepares governed emails, calendar events, and external tool mutations gated by the 0.07ms Instinct Action Gate.
Analytical Synthesis KernelPerforms multi-constraint reasoning, tradeoff matrices, and structured comparisons.
Grounded Citation KernelEnforces contrastive claim-predicate entailment (scoreClaimPredicateEntailment) and Perplexity-style [1], [2] citations.

Composable A2UI Living Tiles (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.

Repository Structure & Verification

text
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

Run the Test Suites Locally

bash
# 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

License

MIT — see LICENSE for details.

Source: README.md at commit 72c347b

Tools

22

search_vault

Semantic and keyword search across stored personal records, facts, and memories in the private vault.

Parametersqueryrequiredtop_k

search_memory_vault

Search the Exogram Personal Neural Network and encrypted memory vault across facts, people, preferences, and commitments.

Parametersqueryrequiredtop_k

store_memory

Anchor a new fact, code convention, project invariant, or personal memory to your encrypted vault.

Parameterscontentrequirednamespace

update_memory_vault

Persist or supersede a personal fact, commitment, or preference in your encrypted Exogram memory vault.

Parameterscontentrequirednamespace

get_neural_cluster

Look up an entity in Exogram's Layer 2 Knowledge Graph. Returns connected entities and directional relationships.

Parametersentity_namerequired

list_entities

Retrieve active entities and concepts mapped in the personal knowledge network.

Parameterslimit

check_action_safety

Verify whether an agent action is safe and complies with active execution invariants before running.

Parametersactionrequiredparams

record_decision

Record an execution decision into the tamper-evident cryptographic audit ledger.

Parametersactionrequiredparamsreasondecisionrequired

verify_audit_trail

Verify the cryptographic SHA-256 hash chain integrity of the ledger from genesis to head.

Takes no parameters.

query_graph

Ask a natural language question against the knowledge graph and receive a structured answer with entity paths and gap analysis.

Parametersqueryrequiredmax_hops

gmail_search_messages

Search personal or workspace emails via Gmail API with query syntax (read-only).

Parametersqueryrequiredmax_results

gmail_create_draft

Create an email draft in Gmail. Does NOT send the email without explicit user confirmation.

Parameterscctorequiredbodyrequiredsubjectrequired

drive_search_files

Search documents, presentations, and files in Google Drive (read-only).

Parametersqueryrequiredmax_results

drive_create_presentation

Create a new Google Slides presentation draft with structured slides.

Parameterstitlerequiredslidesrequired

calendar_list_events

List upcoming meetings, agenda items, and schedule availability from Google Calendar (read-only).

Parametersquerymax_results

calendar_create_meeting

Draft a new Google Calendar meeting invite. Does NOT send invites without explicit user confirmation.

Parameterstitlerequiredend_timerequiredattendeesstart_timerequireddescription

github_search_issues

Search issues and pull requests across connected GitHub repositories (read-only).

Parametersrepoqueryrequired

github_create_pr_draft

Draft a GitHub Pull Request proposal. Does NOT open or publish the PR without explicit user approval.

Parametersbasebodyrequiredheadrequiredreporequiredtitlerequired

notion_search_pages

Search pages and databases in the user connected Notion workspace.

Parametersqueryrequiredfilter_type

notion_append_block

Draft new content or notes to append into an existing Notion page. Gated by explicit user approval.

Parameterscontentrequiredpage_idrequiredblock_type

slack_list_channels

List accessible channels in the connected Slack workspace.

Parameterstypes

slack_post_message_draft

Draft a message to a Slack channel. Does NOT post without explicit user approval.

Parameterschannelrequiredmessagerequiredthread_ts

Version history

2
  1. v0.2.3LatestOct 29, 2026
  2. v0.1.3Sep 16, 2026

Score

100% 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.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts