A public registry that serves pre-built code knowledge graphs to AI agents over HTTPS. Instead of parsing repositories on every request, agents fetch validated JSON graphs from a central index. The MCP exposes three tools: list_repos returns the catalog, get_graph fetches a specific graph by URL, and search_concepts filters entries by topic or format. Supports multiple graph formats including Understand-Anything, GitNexus, and generic bundle schemas. The registry validates every entry against JSON schemas and syncs nightly to catch stale links. Useful when you want LLMs to operate on structured codebase metadata without running indexers locally. Graphs stay in source repos; the registry only holds pointers, so there's no vendor lock-in or hosting cost.
A public, machine-readable registry of code-knowledge graphs.
Point AI agents at any indexed repo and they get a current, schema-validated graph — one URL, one fetch.
Latest: v0.4.0 — CLI 0.1.3, MCP 0.1.2, Python SDK 0.1.1, GH Action v0.1.0. CHANGELOG →
Browse → · Add your repo (wizard) · Quickstart · FAQ (plain English) · Alternatives · Badge · Contributing
It's a public directory of "map files" for codebases. Each entry points at a JSON file (a knowledge graph or context bundle) that describes a project's structure — files, functions, modules, how they connect — in a shape that AI tools can read in one network request.
If you're a project maintainer, you can add your repo so AI assistants can understand it instantly. If you're an AI agent or tooling developer, you can fetch any indexed graph by URL with no auth and no SDK.
First time? The FAQ answers "what is a knowledge graph?", "do I need this?", and "what happens after I submit?" in plain language.
curl -fsSL https://looptech-ai.github.io/understand-quickly/registry.json
Pick entries with status: "ok". Fetch entry.graph_url. Cache by last_sha. That's the whole API.
Pick the path that fits:
npx @looptech-ai/understand-quickly-cli add — auto-detects everything. (npm)Three ways, pick whichever your MCP client likes best:
{
"mcpServers": {
// 1. Via the MCP Registry — package name; client resolves it.
"understand-quickly": {
"package": "io.github.looptech-ai/understand-quickly"
},
// 2. Via npm — install once, run the bin.
// npm i -g @looptech-ai/understand-quickly-mcp
"understand-quickly-npm": {
"command": "understand-quickly-mcp"
},
// 3. Via tsx — for hacking on the source in this repo.
"understand-quickly-dev": {
"command": "npx",
"args": ["tsx", "/path/to/understand-quickly/mcp/src/index.ts"]
}
}
}
Tools: list_repos, get_graph, search_concepts. See mcp/README.md.
pip install understand-quickly
from understand_quickly import Registry
print(Registry().list(status="ok"))
See python-sdk/README.md.
git clone https://github.com/looptech-ai/understand-quickly
cd understand-quickly
npm install && npm test
Then read CONTRIBUTING.md.
┌──────────────────────┐
│ looptech-ai/ │
│ understand-quickly │
│ │
│ registry.json │ ← canonical pointers
│ schemas/ │ ← per-format JSON Schemas
│ README.md │ ← auto-rendered table
└────────┬─────────────┘
PR / dispatch │ raw.githubusercontent.com
│
┌─────────────────┴───────────────────┐
▼ ▼
┌──────────────────┐ ┌─────────────────────┐
│ Source repo with │ │ AI agent / MCP / │
│ knowledge graph │ │ human reader │
└──────────────────┘ └─────────────────────┘
registry.json and the graph body.repository_dispatch.| Format | Source tool | Tier |
|---|---|---|
understand-anything@1 | Understand-Anything | first-class |
gitnexus@1 | GitNexus | first-class |
code-review-graph@1 | code-review-graph | first-class |
bundle@1 | repo-context packers (Repomix, gitingest, codebase-digest, …) | first-class |
generic@1 | any {nodes, edges} graph | fallback |
Adding a new format: PR schemas/<name>@<int>.json + an ok and bad fixture under schemas/__fixtures__/<name>/. Full instructions in CONTRIBUTING.md.
Upstream tools that produce these formats can integrate via the integration protocol. PR templates are in docs/integrations/.
Easiest path: drop the looptech-ai/uq-publish-action into your release/build workflow.
- uses: looptech-ai/uq-publish-action@v0.1.0
with:
graph-path: '.your-tool/graph.json'
format: 'your-format@1'
token: ${{ secrets.UNDERSTAND_QUICKLY_TOKEN }}
The Action stamps metadata.{tool, tool_version, generated_at, commit} into the graph and fires a repository_dispatch (event_type=sync-entry) at this registry. See docs/integrations/protocol.md for the full producer contract.
Once registered, link a status badge in your repo's README. Lower-case the owner/repo and replace / with -- — for example looptech-ai/uq-publish-action becomes looptech-ai--uq-publish-action:
[](https://looptech-ai.github.io/understand-quickly/?entry=OWNER/REPO)
The badge auto-updates as your entry's status changes. See docs/badge.md for the full reference.
.well-known/code-graph)Agents can discover this registry's contents without going through registry.json:
curl -fsSL https://looptech-ai.github.io/understand-quickly/.well-known/repos.json
# returns { schema_version, repos: [{id, format, graph_url, last_synced, status, source_sha}] }
To make YOUR repo discoverable without registering here, publish a .well-known/code-graph.json at the root of your repo. See the Code-Knowledge-Graph Protocol (CKGP v1) spec.
| Channel | Install |
|---|---|
| Pages browser + JSON | https://looptech-ai.github.io/understand-quickly/ |
| MCP Registry | io.github.looptech-ai/understand-quickly (listed in https://registry.modelcontextprotocol.io) |
| npm CLI | npm i -g @looptech-ai/understand-quickly-cli |
| npm MCP server | npm i -g @looptech-ai/understand-quickly-mcp |
| PyPI SDK | pip install understand-quickly |
| GitHub Action | looptech-ai/uq-publish-action@v0.1.0 |
All MIT-or-Apache-2.0 source-licensed. All free to use. The registry data itself is covered by the Understand-Quickly Data License 1.0.
The fastest path is the wizard or npx @looptech-ai/understand-quickly-cli add. The manual flow:
Run a supported tool locally and commit its output to your repo.
Fork this repo.
Append an entry to registry.json:
{
"id": "you/yourrepo",
"owner": "you",
"repo": "yourrepo",
"format": "understand-anything@1",
"graph_url": "https://raw.githubusercontent.com/you/yourrepo/main/.understand-anything/knowledge-graph.json",
"description": "one-liner about your project",
"tags": ["python", "agents"]
}
Open a PR. Validation runs automatically.
Drop docs/publish-template.yml into your repo as .github/workflows/understand-quickly-publish.yml. Add a fine-grained UNDERSTAND_QUICKLY_TOKEN PAT (scoped to repository_dispatch on this registry) to your repo secrets. Every push that touches your graph file triggers an immediate registry sync.
Auto-generated. Do not hand-edit between the markers.
| Repo | Format | Description | Status | Last synced |
|---|---|---|---|---|
| understand-quickly/demo-code-review-graph | code-review-graph@1 | Demo entry: a sample code-review-graph export covering files, classes, and tests. | ✅ ok | 2026-06-03 |
| understand-quickly/demo-gitnexus | gitnexus@1 | Demo entry: a sample GitNexus graph modeled on its own codebase. | ✅ ok | 2026-06-03 |
| understand-quickly/demo-understand-anything | understand-anything@1 | Demo entry: a hand-built sample knowledge graph in the understand-anything@1 shape. | ✅ ok | 2026-06-03 |
Each entry's status field tells consumers whether the linked graph is currently usable.
| Emoji | Status | Meaning | What to do |
|---|---|---|---|
| 🆕 | pending | Registered but the registry hasn't synced it yet. | Wait for the next sync (≤24h, or fire repository_dispatch for instant). |
| ✅ | ok | Fetched, validated, current. | Use it. |
| 🟡 | missing | 404 in the last sync. Will keep retrying. | Verify the file exists at the registered URL on the default branch. |
| ⚠️ | invalid | Body failed schema validation. | Run npm run validate locally; fix the field that fails. |
| 📦 | oversize | Graph exceeds 50 MB; not fetched. | Slim the graph or split it. |
| 🔁 | transient_error | Network or 5xx; will retry next sync. | Usually nothing — wait one cycle. |
| 💀 | dead | 7+ consecutive misses. | Re-publish or open an issue to remove the entry. |
| ↪️ | renamed | Superseded by renamed_to. | Update tooling to point at the new id. |
| 🚫 | revoked | Maintainer-retracted. | Don't consume; contact maintainers if unexpected. |
nvm use # Node 20
npm install
npm test # node:test
npm run test:coverage
npm run validate # validate registry.json + graphs
npm run sync # resync all entries (writes registry.json)
npm run smoke # dry-run sync against tests/registry-smoke.json
npm run render # regenerate README table
Test suites at HEAD: 132 root + 25 CLI + 27 MCP + 54 Python SDK + 15 Playwright = 253 tests.
Automated via release-please. Conventional Commits (feat: / fix:) on main → release-please opens a per-component Release PR → merging the PR tags and publishes the affected component (CLI, MCP, Python SDK). See docs/ops/release-process.md for the full flow, tag prefixes, and rollback recipes.
CONTRIBUTING.md walks through every contribution flow. Trusted authors can land registry-only PRs without review — see docs/verified-publishers.md. By participating you agree to the Code of Conduct. Security issues: SECURITY.md. Security model: see threat-model.
For questions, ideas, or showing off your registered graph: GitHub Discussions.
To the maintainers who carry this protocol upstream.
abhigyanpatwari/GitNexus — first project to ship native gitnexus publish integration. Thanks to @magyargergo for the thorough review and @abhigyanpatwari for the project.PRs welcome — see CONTRIBUTING.md.
DATA-LICENSE.md for the full terms.NOTICE.csoai-org/pdf-document-mcp
xt765/mcp-document-converter
io.github.xjtlumedia/markdown-formatter
io.github.ai-aviate/better-notion
suekou/mcp-notion-server
meterlong/mcp-doc