ctx-gen-mcp
Generates progressive-disclosure code context documentation (L0/L1/L2/L3) for large projects, helping AI coding agents understand codebases efficiently.
README
ctx-gen-mcp
Code context wiki generator -- MCP Server + OpenCode plugin for navigable, progressive-disclosure code docs with domain grouping, tags, and dependency graph.
What It Does
Generates a navigable Code Wiki for large projects, so AI coding agents can quickly locate and understand any module without reading the entire codebase.
Instead of dumping flat documentation, ctx-gen produces:
- INDEX.md -- single entry point with domain table, tag index, and module list
- Cross-linked wiki pages -- each module has its own
.wiki.mdwith YAML front-matter, summary, dependency links, and detailed content - Domain grouping -- modules auto-grouped by directory structure
- Tag-based lookup -- find modules by language, architecture level, tech feature
- Dependency graph -- shallow
#include/importanalysis with cross-links
Progressive Disclosure
The wiki is designed so AI agents read the minimum to locate what they need:
- INDEX.md (~50-100 lines) -- scan domains and tags
- lookup MCP tool -- find modules by keyword without reading the INDEX
- Module wiki page -- full context for one module with cross-links to related modules
- Follow links --
Depends:/Used by:links for impact analysis
One-Click Install
# 1. Install the pip package
pip install ctx-gen-mcp
# 2. Run one-click setup (installs skill + agent + MCP config)
ctx-gen-setup
That's it. OpenCode will now have:
- A
ctx-genskill (loadable via/ctx-gen) - A
ctx-genagent (switchable in agent panel) - MCP server config in
opencode.json AGENTS.mdin your project root
Usage
In OpenCode (recommended)
- Open your project in OpenCode
- Say:
"use the ctx-gen skill to generate context wiki" - Or switch to the
ctx-genagent in the agent panel - The agent will: scan -> generate per-module JSON -> validate -> assemble wiki
MCP Tools (any MCP-compatible agent)
The package exposes 4 deterministic MCP tools:
| Tool | What it does |
|---|---|
scan_skeleton |
Scan repo -> skeleton with domains, tags, dependency graph |
lookup |
Find modules by tag/domain/keyword (no need to read full INDEX) |
validate_coverage |
Check all modules have context, detect stale ones |
assemble_docs |
Build wiki INDEX.md + cross-linked .wiki.md pages |
CLI
# Run MCP server directly (for testing)
ctx-gen-server
# Or:
python -m ctx_gen_mcp.server
# Re-run setup (e.g. after moving project)
ctx-gen-setup --project-dir /path/to/project
# Install globally (all projects)
ctx-gen-setup --global
# Uninstall
ctx-gen-setup --uninstall
Output
After running, you'll have:
.ctx-cache/
skeleton.json # repo structure with domains/tags/deps (deterministic)
ctx/
<module_id>.json # per-module structured context
docs/
wiki/
INDEX.md # single entry point
domains/
<domain>/
<module>.wiki.md # cross-linked per-module wiki page
Add these to .gitignore:
.ctx-cache/
docs/wiki/
Architecture
Core Insight: Separate Deterministic from LLM Operations
| Operation | Who does it | Why |
|---|---|---|
| Repo scanning + domain grouping | scan_skeleton (deterministic) |
Glob + regex never hallucinates |
| Module lookup by tag/keyword | lookup (deterministic) |
String matching is exact |
| Per-module description | LLM (via Agent) | Needs semantic understanding |
| Coverage validation | validate_coverage (deterministic) |
Hash comparison is exact |
| Wiki assembly | assemble_docs (deterministic) |
Template + cross-link generation |
Domain Grouping (Hybrid Strategy)
- Directory-based first:
src/engine/-> domain "engine" - If a domain has >10 modules, flagged for potential LLM subdivision
- Domains are reflected in the output directory structure
Tag Inference (Automatic)
Tags are inferred from file names, directory names, and shallow content analysis:
| Dimension | Examples | Detection Method |
|---|---|---|
| Language | cpp, python, c |
File extension statistics |
| Architecture | kernel-mode, user-mode, shared-lib |
Filename + content keywords |
| Tech feature | driver, crypto, network, async, ipc |
Filename + content keywords |
| Build target | static-lib, shared-lib, exe |
Build system analysis |
Dependency Detection (Shallow)
Only direct #include, import, require statements are analyzed.
This covers ~80% of real dependencies with zero parser overhead.
Requirements
- Python >= 3.10
- OpenCode >= 1.0 (for skill/agent support)
- Or any MCP-compatible agent (Claude Code, etc.)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.