streamable-httpMITupdated 1mo ago
Clone this repo, run one script, and within 60 seconds you're building deterministic, content-addressed brain artifacts from any agent file ā Claude project export, OpenAI Assistant config, raw prompt list, or Verdigraph genome JSON. Pure Python core; zero external services required.
What can you do with Verdigraph ā paid hosted MCP for compute routing?
verdigraph-neurogenesis
Clone this repo, run one script, and within 60 seconds you're building deterministic, content-addressed brain artifacts from any agent file ā Claude project export, OpenAI Assistant config, raw prompt list, or Verdigraph genome JSON. Pure Python core; zero external services required.
60-second quickstart
git clone https://github.com/viridis-security/verdigraph-neurogenesis
cd verdigraph-neurogenesis
bash quickstart.sh
That's it. The script creates a venv, installs the package editable, runs the brain builder against an example genome, and prints the deterministic brain_id + content_hash. No Cloudflare account, no Stripe key, no verdigraph.dev account needed. Everything runs locally.
If you also have an internet connection, the script will additionally hit https://verdigraph.dev/app/import with the same input bytes and confirm the hosted Worker produces the exact same brain_id ā that's your proof the local build is byte-equivalent to the production reference implementation.
What it is
Verdigraph turns an agent file into an inspectable cognitive graph with a content-addressed identifier you can pin in git, cite in an audit, or paste into a code review. Three things make this useful:
- Determinism. Identical input bytes always produce identical
brain_id,content_hash, and graph structure. Run it twice, get the same answer twice. Run it in Python locally; run it in TypeScript on the Worker; same answer either way. - Inspectable structure. Every brain carries 9 firing invariants + 1 advisory check (
I9_fitness_metric_wired) so you can prove what the agent file actually compiles to without trusting a black box. - Self-contained build pipeline. No external dependencies beyond the Python stdlib. No SaaS lock-in. You can audit every line of
verdigraph/brain.py(ā 660 lines) in an afternoon.
Use it
Build a brain from a Verdigraph genome
python -m verdigraph build --file examples/hypothetical_research_agent.genome.json --format verdigraph_genome --pretty
Or pipe input:
cat my_agent.json | python -m verdigraph build --stdin --format auto --summary --pretty
Build from a Claude project export
python -m verdigraph build --file my_claude_project_export.json --format claude_project_export --pretty
Build from an OpenAI Assistant config
python -m verdigraph build --file my_assistant.json --format openai_assistant --pretty
Build from a flat prompt list
echo -e "You are a helpful assistant.\nSummarize the user's request.\nPlan steps and execute." \
| python -m verdigraph build --stdin --format prompt_list --pretty
Re-verify a saved brain artifact
python -m verdigraph build --file my_agent.json --pretty > brain.json
python -m verdigraph verify brain.json
Use it as a Python library
from verdigraph.brain import extract, verify_brain, to_dict
genome = b'{"agent_name":"my_agent","purpose":"...","initial_nodes":["planner","executor"],"fitness_metrics":["task_success_rate"]}'
brain = extract("verdigraph_genome", genome)
print(brain.brain_id) # e.g. RMX124YY916WP0TCSEHFYX7M30
print(brain.brain_uri) # verdigraph://brain/RMX124YY916WP0TCSEHFYX7M30
print(brain.content_hash) # sha256 hex
print(len(brain.nodes), "nodes,", len(brain.edges), "edges")
report = verify_brain(brain)
assert report.passed # all non-advisory invariants pass
print(to_dict(brain)) # serialize for storage / round-trip
Expose it as an MCP server for your LLM agent
pip install -e ".[mcp]"
verdigraph-mcp # runs over stdio
Then in Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"verdigraph": {
"command": "/absolute/path/to/repo/.venv/bin/verdigraph-mcp",
"args": []
}
}
}
Or in Claude Code: claude mcp add --transport stdio verdigraph /absolute/path/to/repo/.venv/bin/verdigraph-mcp.
Restart your client. Your agent now has verdigraph_* tools to build/verify/evolve brains directly. No network calls; everything runs on your machine.
Determinism and verifiability
| Field | What it is | How to verify |
|---|---|---|
brain_id |
26-char Crockford-base32; derived from sha256(input_bytes + b":" + format) |
python -m verdigraph build --file <same bytes> ā same id every time |
brain_uri |
verdigraph://brain/<brain_id> |
Self-describing form; safe for content-safety classifiers |
content_hash |
sha256(canonicalize(brain_body_minus_content_hash)) |
See docs/CANONICALIZATION.md for the exact algorithm |
input_sha256 |
sha256(raw_input_bytes) |
sha256sum your_file.json |
| Invariant report | 9 required checks + 1 advisory I9_fitness_metric_wired |
All carry id, description, passed, optional passed_with_default, advisory, detail |
Canonicalization rule (one sentence)
Apply json.dumps with separators=(",", ":") after recursively sorting every object's keys lexicographically by codepoint and coercing integer-valued floats to integers (matches JavaScript JSON.stringify byte-for-byte). UTF-8 encoded before hashing. See verdigraph/brain.py::canonicalize (ā 20 lines, stdlib only).
Layout
verdigraph-neurogenesis/
āāā README.md ā you are here
āāā quickstart.sh ā clone ā first brain in 60 seconds
āāā pyproject.toml ā Python package metadata
āāā verdigraph/ ā Python core (no external deps)
ā āāā brain.py ā deterministic build pipeline (extract / canonicalize / verify / evolve)
ā āāā cli.py ā `python -m verdigraph` CLI
ā āāā genome.py ā AgentGenome / GrowthRules / SafetyAxioms (live-agent runtime)
ā āāā graph.py ā CognitiveGraph / CognitiveNode / CognitiveEdge
ā āāā agent.py ā DevelopmentalAgent (live-agent runtime)
ā āāā growth.py / pruning.py ā evolution operators
ā āāā evaluation.py ā task-outcome ledger
ā āāā compute.py ā compute-routing helpers
ā āāā ledger.py ā immutable event log
āāā verdigraph_mcp/ ā optional: stdio MCP server (`pip install -e ".[mcp]"`)
āāā tests/ ā pytest, all green on a clean clone
āāā examples/ ā runnable demos with fixture genomes
āāā docs/ ā canonicalization spec, architecture, invariants
āāā papers/ ā three companion papers (Zenodo-archived)
āāā hosted-mcp/ ā OPTIONAL: Cloudflare Workers deployment if you want a hosted instance
Optional: deploy your own hosted instance
A reference Cloudflare Workers deployment lives in hosted-mcp/. It serves the same deterministic-build pipeline over HTTPS + OAuth 2.1 + PKCE, adds prepaid USD credits via Stripe, and Ed25519-signed compliance attestations. You do not need this to use the Python core. It exists because the same protocol can run hosted if you want a shared multi-caller environment. See hosted-mcp/README.md for deployment instructions.
A live reference deployment runs at https://verdigraph.dev ā same byte-equivalent pipeline. The local Python implementation is the canonical source; the Worker is a reimplementation for hosting convenience.
Run the tests
Python core:
source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
TypeScript hosted-MCP (Cloudflare Worker):
cd hosted-mcp
npm ci
npm run typecheck
npm test
Both suites run in CI (.github/workflows/tests.yml) on every push and pull
request: the Python job across 3.10 / 3.11 / 3.12, and the hosted-mcp job on
Node 22 ā where the cross-core parity.test.ts executes against a real Python
install rather than self-skipping. A secret-scan job fails the build if a live
Stripe identifier is ever committed.
The tests/test_brain_parity.py suite locks the deterministic-build contract ā specifically that b'{"agent_name":"x","purpose":"y","initial_nodes":["a"],"fitness_metrics":["task_success_rate"]}' produces brain_id == "RMX124YY916WP0TCSEHFYX7M30" and content_hash == "20b9e5be0e5a0d34e564df6d0a554b1232ff9cc3ff309ab8da77a97756602c0c". If either side ever drifts, that test fails on the next CI run and we ship the divergence as a deliberate schema bump.
Companion papers
In papers/:
PAPER_1_Physical_NeuroGenesis_SynapseForge.mdā physical version: AI-agent-architected, 3D-printed, solution-grown neuromorphic substrates.PAPER_2_Verdigraph_Digital_NeuroGenesis.mdā software version: self-evolving digital cognitive graphs.PAPER_3_Verdigraph_Compute_Efficiency.mdā compute-efficiency layer.
To cite:
Hart, Justin. (2026). Verdigraph NeuroGenesis: A Software Framework for Self-Evolving AI-Agent Cognitive Substrates (Version 0.1.0). Zenodo. https://doi.org/10.5281/zenodo.20261687
License & contact
MIT. Maintained by Viridis LLC. Contact: hartjustin6@gmail.com.
This is an experimental research framework. It does not create autonomous unrestricted self-modifying AI. All growth and pruning actions are constrained by explicit genome rules, safety invariants, and an auditable ledger.
Install
Add Verdigraph ā paid hosted MCP for compute routing to your client. Pick the one you use.
claude mcp add --transport http verdigraph-paid-hosted-mcp-for-compute-r https://verdigraph-mcp.hartjustin6.workers.dev/mcpcodex mcp add verdigraph-paid-hosted-mcp-for-compute-r --url https://verdigraph-mcp.hartjustin6.workers.dev/mcp{
"mcpServers": {
"verdigraph-paid-hosted-mcp-for-compute-r": {
"url": "https://verdigraph-mcp.hartjustin6.workers.dev/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"verdigraph-paid-hosted-mcp-for-compute-r": {
"type": "http",
"url": "https://verdigraph-mcp.hartjustin6.workers.dev/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"verdigraph-paid-hosted-mcp-for-compute-r": {
"url": "https://verdigraph-mcp.hartjustin6.workers.dev/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"verdigraph-paid-hosted-mcp-for-compute-r": {
"serverUrl": "https://verdigraph-mcp.hartjustin6.workers.dev/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 41 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint ā no local install
Version history
| Versions | Published |
|---|---|
| 0.2.0Latest | May 19, 2026 |