Codex Context Engine
Indexes a workspace and exposes code-navigation tools to Codex, enabling symbol lookup, reference finding, dependency analysis, and security audit for local codebases.
README
Codex Context Engine
Codex Context Engine is a local MCP server that indexes a workspace and exposes code-navigation tools to Codex.
It parses JavaScript and TypeScript files with Babel, uses simple regex-based indexing for Python, Go, and Rust, writes an index to .codex-context.json, and generates a CODEBASE_MAP.md report.
The project is useful for quick local navigation, reference lookup, dependency checks, and lightweight audits. It is not a replacement for a compiler, language server, type checker, or dedicated security scanner.
What It Does
- Indexes source files with these extensions:
.js,.jsx,.ts,.tsx,.mjs,.cjs,.py,.go,.rs. - Ignores common generated or heavy paths such as
node_modules,.git,dist,build, package lockfiles, and its own index file. - Extracts symbols, imports, exports, and call expressions into a JSON index.
- Watches the workspace for changes and updates indexed files incrementally. If recursive
fs.watchis not available, it falls back to polling. - Provides MCP tools over stdio for local Codex integrations.
- Runs locally and does not call external APIs during indexing.
Current Limits
- JavaScript and TypeScript support is AST-based, but it is still a static heuristic indexer. It does not type-check code or resolve every dynamic pattern.
- Python, Go, and Rust support is regex-based and intentionally shallow.
- Reference and call-graph results are best-effort. Dynamic dispatch, aliasing, reflection, generated code, and complex module resolution may be missed.
semantic_queryis keyword scoring over names, paths, and comments. It is not embeddings or AI semantic search.audit_securitydetects common secret patterns and source map files. It can miss secrets and can produce false positives.estimate_semver_impactrequires a Git repository and compares exported JavaScript/TypeScript signatures heuristically.
Architecture
graph TD
A[Codex Agent] <-->|JSON-RPC over stdio| B[MCP Server]
B <--> C[Query Engine]
B <--> D[Codebase Indexer]
D -->|JS/TS AST parsing| E[Babel Parser]
D -->|Python/Go/Rust regex parsing| H[Regex Fallbacks]
D -->|Watches files| F[fs.watch or polling]
D -->|Writes JSON| G[.codex-context.json]
D -->|Generates report| I[CODEBASE_MAP.md]
MCP Tools
| Tool | Parameters | What it returns |
|---|---|---|
index_workspace |
None | Rebuilds the workspace index. |
find_definitions |
symbolName: string |
Definition locations, line ranges, docs when available, and code snippets. |
find_references |
symbolName: string |
Import and call-expression references found in the indexed files. |
get_call_graph |
functionName: string, direction?: "incoming" | "outgoing" |
Best-effort caller/callee data from indexed call expressions. |
semantic_query |
queryText: string, limit?: number |
Weighted keyword matches over symbol names, docs, and file paths. |
detect_circular_dependencies |
None | Cycles found in resolved internal imports. |
find_unused_exports |
None | Exports that are not imported elsewhere in the indexed workspace. |
estimate_semver_impact |
refBranch?: string |
Heuristic SemVer suggestion based on Git diff against a ref. |
audit_security |
None | Common credential-pattern warnings, source map files, and sensitive config filenames. |
get_file_outline |
filePath: string |
Symbols, import count, and export count for one indexed file. |
Installation
Requires Node.js 18 or newer.
npm install
Running Locally
npm start
The server communicates over stdio, so normal diagnostic output is written to stderr to avoid corrupting MCP JSON-RPC messages on stdout.
Codex MCP Configuration
Project-scoped example:
[mcpServers.codex-context-engine]
command = "node"
args = ["/absolute/path/to/codex-context-engine/src/server.js"]
Global config locations commonly used by Codex:
- Windows:
%USERPROFILE%\.codex\config.toml - macOS/Linux:
~/.codex/config.toml
This repository also includes .mcp.json for plugin-style configuration:
{
"mcpServers": {
"codex-context-engine": {
"command": "node",
"args": ["./src/server.js"]
}
}
}
Generated Files
.codex-context.json: local index cache. It is ignored by Git.CODEBASE_MAP.md: generated workspace report. This repository currently tracks it as a sample/report artifact.
Testing
npm test
The test suite covers:
- JS/TS symbol indexing and doc extraction.
- CommonJS imports and exports.
- Destructured bindings.
- Basic Python, Go, and Rust regex indexing.
- Circular dependency and unused export detection.
- Git-based SemVer impact estimation.
- Security-audit masking for common patterns.
- Polling watcher fallback.
- MCP stdio safety for indexer diagnostics.
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.