christina
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@christinaWhat's the blast radius of changing parse_request?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Project Christina: Autonomous Cognitive Amplifier
Quick Start • Architecture • MCP Tools • CLI Reference • Documentation • Contributing
🌟 Executive Overview: Eliminating Context Rot
Modern AI coding agents fail on large codebases ($10\text{M}+$ tokens) not due to reasoning limitations, but due to Context Rot: attention distraction, unindexed prompt pollution, lost architectural constraints across context wipes, and uncoordinated swarm collisions.
Project Christina solves this through an integrated, high-performance cognitive trinity:
RLM (Recursive Language Models — Context as a Variable): Moves massive codebases out of conversational prompt transcripts into sandboxed heap variables (
context). Agents execute bounded sub-queries ($D \le 2, N \le 20$) and transactional copy-on-write (CoW) Python control loops with automated rollback.Graphify (Deterministic CPG & AST Radar): Builds an in-memory SQLite3 WAL call graph delivering sub-0.3ms recursive CTE queries, transitive blast radius calculation, and God node centrality ranking with a 71.5x token discovery reduction.
OKF (Durable Semantic Memory & Epistemic Evolution): Sub-microsecond regex frontmatter parsing ($6.72\ \mu\text{s}$/doc), formal AGM belief revision, Ebbinghaus decay, and Mark-and-Sweep epistemic garbage collection with an automated $\le 400$-token post-compaction memory recovery anchor.
Cross-Project Epistemic Distillation: Anonymizes proprietary code into mathematical archetypes with a strict Zero-Information Leakage invariant ($\mathcal{I} = 0$), multi-base Shannon entropy secret scrubbing, and Bayesian invariant aggregation across code repositories.
Swarm Concurrency Control: Decentralized multi-agent execution using Kung-Robinson Optimistic Concurrency Control (OCC), Tree-CRDT 3-way AST merge, and Linda tuple-space blackboard.
Related MCP server: MindGraph
🏛️ Tri-Pillar Cognitive Architecture
┌─────────────────────────────────────────┐
│ SUPERVISOR / AGENT │
│ (Antigravity / OpenCode / Claude / AI) │
└────────────────────┬────────────────────┘
│ JSON-RPC 2.0 (stdio)
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ PROJECT CHRISTINA FAST-MCP GATEWAY │
├──────────────────────────────────────┬────────────────────────────────────┬───────────────────────────────────────┤
│ PILLAR 1: RLM ENGINE │ PILLAR 2: GRAPHIFY CPG │ PILLAR 3: OKF MEMORY │
│ (Context as Variable) │ (AST Code Radar) │ (Semantic Evolution) │
├──────────────────────────────────────┼────────────────────────────────────┼───────────────────────────────────────┤
│ • Out-of-core Heap Variables │ • In-Memory SQLite3 WAL Graph │ • Sub-microsecond OKF Regex Parser │
│ • Transactional CoW Rollback │ • Sub-0.3ms Transitive Blast Query │ • Formal AGM Belief Revision │
│ • 3-Phase EGRI Invariant Linter │ • Composite God-Node Centrality │ • Ebbinghaus Forgetting & GC │
│ • Dynamic Governor (D<=2, N<=20) │ • Circular Dependency & Wave Sort │ • Symbol-to-ADR Constraints │
└──────────────────────────────────────┴────────────────────────────────────┴───────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DECENTRALIZED SWARM & DISTILLERY │
├───────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────┤
│ SWARM CONCURRENCY BLACKBOARD │ GLOBAL EPISTEMIC DISTILLERY │
├───────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────┤
│ • Kung-Robinson Optimistic Concurrency Control (OCC) │ • Zero-Information Leakage (I = 0) │
│ • Semantic Tree-CRDT 3-Way AST Merge Resolution │ • Multi-Base Shannon Entropy Secret Redaction │
│ • Linda Tuple Space (`out`, `rd`, `in`, `eval`, `digest`) │ • Bayesian Invariant Distillation (0700 Fence)│
└───────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────┘Mermaid Flowchart
flowchart TD
Host[Host Agent Context] -->|JSON-RPC 2.0 stdio| MCP[Christina FastMCP Server]
subgraph Trinity["Autonomous Cognitive Trinity"]
MCP -->|cpg_query| CPG[Graphify CPG Radar<br/><i>sub-0.3ms SQLite WAL</i>]
MCP -->|rlm_execute| RLM[RLM Sandbox<br/><i>Transactional CoW REPL</i>]
MCP -->|memory_evolve| OKF[OKF Semantic Memory<br/><i>AGM Revision & Epistemic GC</i>]
end
subgraph SwarmDistill["Swarm & Cross-Project Substrate"]
MCP -->|swarm_blackboard| OCC[Swarm Concurrency<br/><i>Kung-Robinson OCC + Tree-CRDT</i>]
OKF -->|distill_global| Distill[Global Epistemic Distillery<br/><i>Anonymized Archetypes (I=0)</i>]
end
CPG -.->|Blast Radius & Waves| OCC
RLM -.->|Isolated Sub-Calls| Host
OKF -.->|ADR Anchor <=400 Tokens| Host🚀 1-Command Zero-Friction Installation
Christina installs in seconds without background daemons, native compilation, or root privileges:
cd christina
./install.shAutomated Diagnostic Preflight
./install.sh doctor================================================================
Christina Cognitive Amplifier Diagnostics (v1.0.0)
================================================================
✓ Python Version: 3.11+ (Requirement satisfied)
✓ SQLite3 in-memory WAL Engine: Ready
✓ OKF Semantic Memory Engine: Ready
✓ Google Antigravity Plugin: Registered
✓ OpenCode Plugin: Registered
✓ Global memory directory: ~/.config/christina/global_memory (0700 fenced)
================================================================
✅ All systems functional.Run Full Test Suite (62/62 Passed in <1.2s)
./install.sh test
# Or with pytest directly:
pytest tests/ -v🛠️ The Canonical FastMCP Tool Matrix
Christina exposes 4 unified JSON-RPC 2.0 stdio tools compatible with any MCP host:
Tool | Category | Key Capabilities & Modes | Performance Bound |
| AST Code Radar |
| $<0.3\text{ms}$ in-memory traversal |
| Sandboxed Execution | Sub-agent MapReduce, transactional CoW REPL, 3-phase EGRI linting, compute governor | $D \le 2, N \le 20$ recursion bound |
| Semantic Memory |
| $6.72\ \mu\text{s}$/doc parsing |
| Swarm Concurrency |
| Lock-free optimistic validation |
MCP Tool Invocations
1. Blast Radius Analysis (cpg_query)
{
"name": "cpg_query",
"arguments": {
"symbol": "PaymentGateway",
"mode": "blast_radius",
"depth": 3
}
}2. Transactional Sub-Query Execution (rlm_execute)
{
"name": "rlm_execute",
"arguments": {
"query": "Audit error recovery handling in database connection pool",
"scope_paths": ["src/db/", "src/pools/"]
}
}3. Semantic Memory Search with Symbol Constraint (memory_evolve)
{
"name": "memory_evolve",
"arguments": {
"action": "search",
"query": "zero-trust authentication policy",
"linked_symbols": ["AuthMiddleware"]
}
}4. Swarm OCC Conflict Validation (swarm_blackboard)
{
"name": "swarm_blackboard",
"arguments": {
"action": "occ_validate",
"worker_id": "worker_security_audit",
"read_version": 4,
"read_set": ["AuthMiddleware", "SessionToken"],
"write_set": ["AuthMiddleware"]
}
}⚡ CLI Quick Reference
# 1. Scan codebase and index AST knowledge graph into in-memory SQLite3 WAL
python3 -m christina.cli scan .
# 2. Calculate static blast radius for a target symbol
python3 -m christina.cli blast AuthService --depth 3
# 3. List top God Nodes ranked by composite degree centrality
python3 -m christina.cli god-nodes --limit 10
# 4. Search OKF institutional memory, ADRs, and symbol constraints
python3 -m christina.cli memory "connection pool timeout" --symbol DatabasePool
# 5. Run FastMCP JSON-RPC 2.0 stdio server
python3 -m christina.cli serve
# 6. Execute system diagnostics
python3 -m christina.cli doctor🔌 Multi-Host Compatibility & Setup
Christina includes seamless 1-command registration across all standard AI agent hosts:
1. Google Antigravity CLI (agy)
Automatically symlinked to ~/.gemini/antigravity-cli/plugins/christina and registered in ~/.gemini/antigravity-cli/mcp_config.json.
2. OpenCode
Automatically registered in ~/.config/opencode/plugins/christina and ~/.config/opencode/opencode.json.
3. Claude Desktop
Automatically configured in ~/.claude/claude_desktop_config.json (or Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"christina": {
"command": "python3",
"args": ["-m", "christina.bridge.mcp_server"],
"env": {
"PYTHONPATH": "/path/to/christina"
}
}
}
}4. OpenAI Codex CLI
Automatically registered in ~/.config/codex/config.json.
🪮 Ponytail Ultra: Zero-Dependency Guarantee
Project Christina is strictly engineered under Ponytail Ultra discipline:
Zero External Runtime Dependencies: Uses Python standard library only (
ast,sqlite3,re,json,hashlib,fcntl,math,pathlib,typing).Zero Heavy Daemons: No Docker, no Neo4j, no ChromaDB, no Redis. In-memory SQLite3 WAL and POSIX file locks deliver sub-millisecond execution with $0\text{MB}$ idle background RAM.
Strict Code Brevity: Every module is concise ($<250$ LOC), cohesive, and self-contained.
📚 Documentation & Guides
Document | Description |
Step-by-step setup, verification, and first agent workflow. | |
Progressive disclosure skill definitions ( | |
Ponytail Ultra development guidelines, Nix setup, test suites, and ADR workflow. | |
Zero-information leakage ($\mathcal{I} = 0$), Shannon entropy secret scrubbing, and containment. | |
Detailed release notes and version history. |
📜 License
Project Christina is distributed under the open-source MIT License.
Copyright (c) 2026 Christina Engineering Swarm & Contributors.
Available Tools
4 toolscpg_queryC
CPG & AST radar: def-use chains, CFG, virtual interfaces, blast radius.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| mode | No | blast_radius | |
| depth | No | ||
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It doesn't mention side effects, performance, output format, or constraints like whether the code parameter is required. The description is too thin to disclose anything beyond the raw feature list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It does not front-load key information about what the tool does or how to call it; instead it reads as a product tagline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, a rich enum, no annotations, and no output schema, the description is vastly incomplete. It explains none of the modes, the meaning of depth, or the expected output, leaving an agent unable to use the tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters (code, mode, depth, symbol) or explain their roles. The enum values like blast_radius and def_use are self-explanatory, but no guidance is given for depth or symbol.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions specific analysis features like def-use chains, CFG, and blast radius, which suggests it's a code analysis tool, but it uses the vague metaphor 'radar' rather than a clear verb-resource structure. It doesn't explicitly state that it operates on code or what input it expects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no context about when to use this tool, what scenarios it fits, or any alternatives. Sibling tools are unrelated, and no exclusions are stated. An agent would have to infer that it's for code analysis from the feature list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_evolveC
Semantic memory: AGM revision, GC, distill_global, query_global, search, persist.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| tags | No | ||
| query | No | ||
| title | No | ||
| action | No | search | |
| content | No | ||
| repo_path | No | ||
| supersedes | No | ||
| entity_type | No | concept | |
| linked_symbols | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden, but it only names operations such as GC and revision without disclosing side effects, destructive potential, permissions, or return behavior. The label 'GC' implies deletion/cleanup, yet this is never stated explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short with no filler, but it is under-specified rather than appropriately concise: a list of acronyms and operation names is not a structured explanation of the tool. It is compact but not optimally front-loaded for decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-action tool with 10 parameters, no annotations, and no output schema, yet the description provides only a fragment-level list of operations. An agent cannot determine required parameters per action, expected effects, or result formats, so the context is critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, and the description does not mention code, tags, query, title, content, repo_path, supersedes, entity_type, or linked_symbols at all. It names a few actions but gives no mapping between parameters and actions, leaving the agent without usable parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a semantic memory resource and lists several operation names (search, persist, distill_global, query_global), which is more than a bare tautology. However, it lacks a main verb and uses unexplained jargon (AGM revision, GC), and the tool's 'evolve' purpose is only implied by the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this tool over its siblings (cpg_query, rlm_execute, swarm_blackboard) or when to use one internal action over another. The phrase 'Semantic memory' hints at context but offers no conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rlm_executeC
Sandboxed RLM REPL executor with transactional CoW rollback, 3-phase EGRI linter, governor.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| query | No | ||
| scope_paths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions several safety mechanisms (sandbox, transactional CoW rollback, linter, governor) which imply controlled side effects and validation. However, it does not specify whether the operation is read-only or mutating, what happens on error, or the nature of side effects beyond rollback. This is a moderate level of transparency given the short description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs multiple salient features without fluff. It is front-loaded with the primary action ('Sandboxed RLM REPL executor') and immediately conveys key behavioral characteristics. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no schema descriptions, the description is severely incomplete. It omits an explanation of what RLM is, what each parameter means, what the return value looks like, and under what circumstances the tool should be used. The agent would have to guess at nearly every aspect of usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to any of the three parameters (code, query, scope_paths). Since schema description coverage is 0% and the description never touches them, the agent receives no semantic context beyond the bare parameter names, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action: executing RLM code in a REPL, and adds notable features (sandboxed, transactional CoW rollback, linter, governor). However, it does not differentiate this tool from its siblings (cpg_query, memory_evolve, swarm_blackboard) by explaining what distinguishes it or when to prefer it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not state conditions, prerequisites, or explicitly mention alternatives, forcing the agent to infer usage solely from the name and generic executor label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_blackboardD
Swarm blackboard & OCC concurrency: Kung-Robinson OCC validation, Tree-CRDT 3-way merge, Linda tuple space.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | rd | |
| channel | No | default | |
| payload | No | ||
| read_set | No | ||
| topic_key | No | % | |
| worker_id | No | ||
| write_set | No | ||
| read_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must carry all behavioral disclosure. It fails to state side effects, mutability, persistence, per-action semantics, or requirements. Terms like 'OCC validation' and 'tree merge' imply operations but do not disclose whether state changes are destructive or reversible, leaving the agent entirely in the dark.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only one sentence, but it is not appropriately sized because it is dense with jargon yet empty of actionable meaning. It is under-specification rather than conciseness—every term could be omitted without loss since none are explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters, a complex action enum, nested objects, and no output schema, yet the description provides none of the necessary context for an agent to call it correctly. There is no explanation of expected payloads, return values, or interaction with the blackboard, making the tool effectively unusable without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description makes no attempt to explain any of the 8 parameters or the action enum. The action values (out, rd, in, eval, etc.) are unexplained, and payload, read_set, write_set, and read_version have no semantic context. The description adds zero value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions 'Swarm blackboard & OCC concurrency' and lists algorithms (Kung-Robinson OCC, Tree-CRDT merge, Linda tuple space) but never states what the tool actually does for the caller or what resource it operates on. It reads as a feature list rather than a clear verb+resource statement, leaving the agent without a concrete purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, when not to use it, or any prerequisites. The sibling tools are entirely unrelated (cpg_query, rlm_execute, memory_evolve), and the description provides no comparative context, so an agent cannot determine appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
cpg_query - First observed
memory_evolve - First observed
rlm_execute - First observed
swarm_blackboard
TDQS
Scored across 4 tools
Each tool targets a completely different subsystem: static code analysis, sandboxed execution, semantic memory, and concurrency/blackboard coordination. There is no overlap or plausible confusion between them.
All tools follow a readable two-part snake_case format with domain-specific prefixes. However, the suffixes mix verbs (query, execute, evolve) with a noun (blackboard), creating a minor deviation from a fully uniform pattern.
Four tools is a reasonable, focused count for a server whose scope appears to be a coordinated agent runtime: analyze, execute, remember, and coordinate. Each tool earns its place and none feel redundant.
The tool surface covers the major capabilities one would expect from this kind of system: code understanding, safe execution, memory persistence, and shared-state coordination. There are minor gaps such as explicit file/API interaction, but the broad sub-operations embedded in each tool make the overall surface feel fairly complete.
Maintenance
Related MCP Connectors
Codebase graphs, caller impact analysis, and recorded project context for AI coding agents.
Company brain for AI agents — temporal knowledge graph search, exploration, and durable memory.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Hosted runtime for persistent agent teams, durable workflows, memory, schedules, and goals.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.6 npm8MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query and analyze code across multiple repositories through a unified knowledge graph, with tools for symbol search, impact analysis, and graph algorithms.17 npmMIT
- AlicenseNot gradedqualityAmaintenanceProvides AI coding agents with an embedded knowledge graph and architecture governance tools, enabling blast radius analysis, compliance checks, and smart context extraction from codebases.Apache 2.0
- FlicenseNot gradedqualityAmaintenanceEnables developer agents to perform semantic codebase search, dependency and impact analysis, cross-file refactoring, and full-stack API tracing through a unified query DSL over a high-performance graph engine.-