AI-powered code intelligence MCP server — 17 tools for code analysis, search, refactoring and call graph visualization across 6 languages
Drift inferred · capture-to-capture
tool count over time
tools
-
analyze_impact
Analyze impact of changing a symbol. Returns risk level.
-
build_call_subgraph
Build on-demand subgraph centered on a symbol.
-
build_graph
Build call graph for a project. Persists to disk automatically.
-
build_lightweight_index
Build fast symbol-only index.
-
check_architecture
Detect cycles and architecture violations (Tarjan SCC).
-
edit_file
Edit files with syntax validation.
-
export_mermaid
Export call graph as Mermaid flowchart or SVG.
-
find_dead_code
Find unused symbols across the project.
-
find_references
Find all references to a symbol.
-
find_usages
Find all usages of a symbol across the project.
-
find_usages_with_context
Find usages with surrounding context lines.
-
get_all_symbols
Get all symbols in the workspace.
-
get_call_hierarchy
Traverse callers/callees of a symbol.
-
get_complexity
Cyclomatic, cognitive, and nesting complexity metrics.
-
get_entry_points
Find entry-point symbols (no incoming edges).
-
get_file_symbols
Extract symbols from a file. Supports compressed summaries.
-
get_hot_paths
Find most-called functions by fan-in.
-
get_leaf_functions
Find leaf functions (no outgoing edges).
-
get_module_dependencies
Analyze module-level dependencies.
-
get_outline
Hierarchical symbol outline (tree structure).
-
get_per_file_graph
Get call graph for a single file.
-
get_symbol_code
Get full source code of a symbol including docstrings.
-
go_to_definition
Navigate to symbol definition.
-
hover
Get type info and documentation.
-
list_files
List project files with glob filtering.
-
merge_graphs
Merge graphs from multiple files.
-
query_symbol_index
Case-insensitive symbol lookup.
-
read_file
Smart file reader with outline/symbols/compressed modes.
-
safe_refactor
Safe refactoring with validation and preview (rename, extract, inline, move, change signature).
-
search_content
Regex search with .gitignore awareness.
-
semantic_search
Fuzzy symbol search with kind filtering.
-
structural_search
AST-based structural pattern matching.
-
trace_path
Find execution path between two symbols (BFS).
-
validate_syntax
Validate file syntax using Tree-sitter.
-
write_file
Create or overwrite files within workspace.
analyzed commit 4e1d39e · analyzer v33 · 1w ago
skills & prompt files 3
danger signals1
- dynamic code execution eval() Rubentxu-CogniCode-4e1d39e/sandbox/fixtures/rules/javascript/JS_S1523_eval/src/smelly.js :3
return eval(userInput);
code files: 1787
filesystem 10
- fs (weak) Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/e2e/bench-renderer.spec.ts :36
import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/scripts/check-bundle-size.mjs :17
import { readdir, readFile, stat } from "node:fs/promises"; - fs (weak) Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/scripts/coverage-matrix.ts :15
import { readdirSync, readFileSync, writeFileSync, statSync, existsSync } from "node:fs"; - fs Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/bench/entry.ts :10
import { mkdirSync, writeFileSync } from "node:fs"; - fs Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/bench/report.ts :65
await fs.writeFile(jsonPath, json); - fs (weak) Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/tailwind.test.ts :10
import { readFileSync } from "node:fs"; - fs (weak) Rubentxu-CogniCode-4e1d39e/sandbox/fixtures/rules/javascript/JS_NODE1_sync_fs/src/clean.js :2
const fs = require('fs').promises; - fs (weak) Rubentxu-CogniCode-4e1d39e/sandbox/fixtures/rules/javascript/JS_NODE1_sync_fs/src/smelly.js :2
const fs = require('fs'); - fs (weak) Rubentxu-CogniCode-4e1d39e/tests/e2e/screenshots.js :6
const fs = require('fs'); - fs (weak) Rubentxu-CogniCode-4e1d39e/tests/e2e/suite.js :3
const fs = require('fs');
network 9
- net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/public/mockServiceWorker.js :238
return fetch(requestClone, { headers }) - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/App.tsx :52
const response = await fetch(`${base.replace(/\/$/, "")}/health`); - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/api/client.ts :129
return fetch(url, init); - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/components/AnalyticsViews/HotspotTreemap.tsx :14
* emits nothing. The parent owns the data fetch (see LensPanel). - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/hooks/useHealth.ts :53
const response = await fetch(`${base.replace(/\/$/, "")}/health`); - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/hooks/useObject.ts :20
* the fetch (e.g. when no object is selected). - net Rubentxu-CogniCode-4e1d39e/apps/explorer-ui/src/hooks/useRestoreExploration.ts :18
fetch(`/api/exploration-sessions/${sessionId}`) - net (weak) Rubentxu-CogniCode-4e1d39e/tests/e2e/dashboard.spec.js :277
await fetch('/api/projects/register', { - net (weak) Rubentxu-CogniCode-4e1d39e/tests/e2e/visual-enhanced.spec.js :232
await fetch('/api/projects/register', {
declared dependencies 92
- rmcp@1.7
- playwright@^1.59.1
- @playwright/test@^1.60.0
- vite-plugin-wasm@^3.6.0
- cognicode-core@*
- cognicode-graph-algos@*
- cognicode-macros@*
- reqwest@0.12
- tar@0.4
- flate2@1
- tree-sitter@0.24
- tree-sitter-python@0.23
- tree-sitter-rust@0.23
- tree-sitter-javascript@0.23
- tree-sitter-typescript@0.23
- tree-sitter-go@0.23
- tree-sitter-java@0.23
- tree-sitter-c@0.21
- tree-sitter-cpp@0.23
- tree-sitter-c-sharp@0.23
- tree-sitter-hcl@1.1
- tree-sitter-yaml@0.7
- tree-sitter-ruby@0.23
- tree-sitter-php@0.24
- tree-sitter-swift@0.7
- tree-sitter-scala@0.26
- tree-sitter-lua@0.5
- tree-sitter-zig@1.1
- tree-sitter-dart@0.2
- tree-sitter-groovy@0.1
- tree-sitter-elixir@0.3
- tree-sitter-erlang@0.19
- tree-sitter-haskell@0.23
- tree-sitter-julia@0.23
- tree-sitter-bash@0.25
- tree-sitter-r@1.2
- tree-sitter-powershell@0.26
- tree-sitter-json@0.24
- tree-sitter-fortran@0.6
- tree-sitter-verilog@1.0
- tree-sitter-systemverilog@0.3
- petgraph@0.6
- tokio@1.45
- async-trait@0.1
- futures-util@0.3
- tower@0.5
- axum@0.7
- tokio-util@0.7
- serde@1.0
- serde_json@1.0
- serde_yaml@0.9
- sqlparser@0.53
- bincode@2.0
- blake3@1.5
- sha2@0.10
- notify@7
- anyhow@1.0
- thiserror@2.0
- arc-swap@1.0
- dashmap@5
- indexmap@2
- parking_lot@0.12
- ignore@0.4
- walkdir@2
- tempfile@3.27
- glob@0.3
- which@6
- chrono@0.4
- time@0.3
- tracing@0.1
- tracing-subscriber@0.3
- regex@1
- oas3@0.22
- base64@0.22
- hex@0.4
- subtle@2.6
- pulldown-cmark@0.10
- rayon@1.11.0
- lsp-types@0.93
- opentelemetry@0.27
- opentelemetry_sdk@0.27
- opentelemetry-otlp@0.27
- opentelemetry-prometheus@0.27
- prometheus@0.13
- mermaid-rs-renderer@0.2
- clap@4.4
- process-wrap@9.1
- rig-core@0.35
- toml@0.8
- tokio-test@0.4
- mockall@0.11
- uuid@1.10