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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。