# Trace MCP server

Agent View of the PolicyLayer registry record for Trace: identity, probed posture, risk grade, and all 191 tools classified. HTML page: https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp

## Facts

- Server id: `nikolai-vysotskyi/trace-mcp`
- Homepage: https://github.com/nikolai-vysotskyi/trace-mcp
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 191
- Tool categories present: Destructive, Execute, Read, Write
- Tags: nikolai vysotskyi trace mcp, admin, automation
- Record last modified: 2026-10-04T11:54:07.662Z

## Tools (191)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `delete_corpus` | Destructive | Critical | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/delete-corpus.md |
| `remove_dead_code` | Destructive | Critical | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/remove-dead-code.md |
| `repair_index` | Destructive | Critical | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/repair-index.md |
| `call_project_tool` | Execute | High | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/call-project-tool.md |
| `reindex` | Execute | High | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/reindex.md |
| `visualize_graph` | Execute | High | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/visualize-graph.md |
| `analyze_perf` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/analyze-perf.md |
| `assess_change_risk` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/assess-change-risk.md |
| `audit_config` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/audit-config.md |
| `benchmark_project` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/benchmark-project.md |
| `check_architecture` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-architecture.md |
| `check_claudemd_drift` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-claudemd-drift.md |
| `check_duplication` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-duplication.md |
| `check_edit_safe` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-edit-safe.md |
| `check_embedding_drift` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-embedding-drift.md |
| `check_quality_gates` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-quality-gates.md |
| `check_rename` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/check-rename.md |
| `compare_branches` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/compare-branches.md |
| `detect_antipatterns` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-antipatterns.md |
| `detect_ast_clones` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-ast-clones.md |
| `detect_communities` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-communities.md |
| `detect_drift` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-drift.md |
| `detect_topic_tunnels` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/detect-topic-tunnels.md |
| `diff_graph_snapshots` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/diff-graph-snapshots.md |
| `discover_claude_sessions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/discover-claude-sessions.md |
| `discover_hermes_sessions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/discover-hermes-sessions.md |
| `embed_repo` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/embed-repo.md |
| `explain_architecture` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/explain-architecture.md |
| `explain_symbol` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/explain-symbol.md |
| `export_decisions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/export-decisions.md |
| `export_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/export-graph.md |
| `export_security_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/export-security-context.md |
| `extract_function` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/extract-function.md |
| `find_similar` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/find-similar.md |
| `find_usages` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/find-usages.md |
| `generate_insights_report` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/generate-insights-report.md |
| `generate_sbom` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/generate-sbom.md |
| `get_api_contract` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-api-contract.md |
| `get_api_surface` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-api-surface.md |
| `get_artifacts` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-artifacts.md |
| `get_call_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-call-graph.md |
| `get_change_impact` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-change-impact.md |
| `get_changed_symbols` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-changed-symbols.md |
| `get_circular_imports` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-circular-imports.md |
| `get_cluster_decisions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-cluster-decisions.md |
| `get_co_changes` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-co-changes.md |
| `get_code_owners` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-code-owners.md |
| `get_communities` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-communities.md |
| `get_community` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-community.md |
| `get_complexity_report` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-complexity-report.md |
| `get_complexity_trend` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-complexity-trend.md |
| `get_component_tree` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-component-tree.md |
| `get_context_bundle` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-context-bundle.md |
| `get_contract_drift` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-contract-drift.md |
| `get_contract_versions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-contract-versions.md |
| `get_control_flow` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-control-flow.md |
| `get_coupling` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-coupling.md |
| `get_coupling_trend` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-coupling-trend.md |
| `get_cross_domain_deps` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-cross-domain-deps.md |
| `get_cross_service_impact` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-cross-service-impact.md |
| `get_cross_workspace_impact` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-cross-workspace-impact.md |
| `get_dataflow` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-dataflow.md |
| `get_dead_code` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-dead-code.md |
| `get_decision` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-decision.md |
| `get_decision_clusters` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-decision-clusters.md |
| `get_decision_stats` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-decision-stats.md |
| `get_decision_timeline` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-decision-timeline.md |
| `get_dependency_diagram` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-dependency-diagram.md |
| `get_di_tree` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-di-tree.md |
| `get_diagnostics` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-diagnostics.md |
| `get_domain_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-domain-context.md |
| `get_domain_map` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-domain-map.md |
| `get_edge_bottlenecks` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-edge-bottlenecks.md |
| `get_endpoint_analytics` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-endpoint-analytics.md |
| `get_env_vars` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-env-vars.md |
| `get_event_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-event-graph.md |
| `get_feature_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-feature-context.md |
| `get_federation_impact` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-federation-impact.md |
| `get_file_health_timeline` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-file-health-timeline.md |
| `get_git_churn` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-git-churn.md |
| `get_graph_timeline` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-graph-timeline.md |
| `get_health_trends` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-health-trends.md |
| `get_implementations` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-implementations.md |
| `get_import_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-import-graph.md |
| `get_index_health` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-index-health.md |
| `get_livewire_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-livewire-context.md |
| `get_middleware_chain` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-middleware-chain.md |
| `get_minimal_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-minimal-context.md |
| `get_model_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-model-context.md |
| `get_module_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-module-graph.md |
| `get_navigation_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-navigation-graph.md |
| `get_nova_resource` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-nova-resource.md |
| `get_outline` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-outline.md |
| `get_package_deps` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-package-deps.md |
| `get_pagerank` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-pagerank.md |
| `get_plugin_registry` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-plugin-registry.md |
| `get_project_health` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-project-health.md |
| `get_project_map` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-project-map.md |
| `get_refactor_candidates` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-refactor-candidates.md |
| `get_related_symbols` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-related-symbols.md |
| `get_request_flow` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-request-flow.md |
| `get_risk_hotspots` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-risk-hotspots.md |
| `get_runtime_call_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-runtime-call-graph.md |
| `get_runtime_deps` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-runtime-deps.md |
| `get_runtime_profile` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-runtime-profile.md |
| `get_schema` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-schema.md |
| `get_screen_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-screen-context.md |
| `get_service_deps` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-service-deps.md |
| `get_service_map` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-service-map.md |
| `get_session_journal` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-session-journal.md |
| `get_session_snapshot` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-session-snapshot.md |
| `get_startup_context_audit` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-startup-context-audit.md |
| `get_state_stores` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-state-stores.md |
| `get_subproject_clients` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-subproject-clients.md |
| `get_subproject_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-subproject-graph.md |
| `get_subproject_impact` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-subproject-impact.md |
| `get_suggested_questions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-suggested-questions.md |
| `get_surprises` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-surprises.md |
| `get_symbol` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-symbol.md |
| `get_symbol_complexity_trend` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-symbol-complexity-trend.md |
| `get_symbol_owners` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-symbol-owners.md |
| `get_task_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-task-context.md |
| `get_tech_debt` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-tech-debt.md |
| `get_tests_for` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-tests-for.md |
| `get_type_hierarchy` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-type-hierarchy.md |
| `get_untested_symbols` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-untested-symbols.md |
| `get_wake_up` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-wake-up.md |
| `get_workspace_map` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/get-workspace-map.md |
| `graph_query` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/graph-query.md |
| `list_bundles` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/list-bundles.md |
| `list_corpora` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/list-corpora.md |
| `list_graph_snapshots` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/list-graph-snapshots.md |
| `list_pins` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/list-pins.md |
| `list_projects` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/list-projects.md |
| `mine_sessions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/mine-sessions.md |
| `name` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/name.md |
| `pack_context` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/pack-context.md |
| `plan_batch_change` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/plan-batch-change.md |
| `plan_refactoring` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/plan-refactoring.md |
| `predict_bugs` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/predict-bugs.md |
| `query_by_intent` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/query-by-intent.md |
| `query_corpus` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/query-corpus.md |
| `query_decisions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/query-decisions.md |
| `regenerate_project_memo` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/regenerate-project-memo.md |
| `review_change` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/review-change.md |
| `rollback_startup_recommendations` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/rollback-startup-recommendations.md |
| `scan_code_smells` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/scan-code-smells.md |
| `scan_security` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/scan-security.md |
| `search` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/search.md |
| `search_bundles` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/search-bundles.md |
| `search_sessions` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/search-sessions.md |
| `search_text` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/search-text.md |
| `self_audit` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/self-audit.md |
| `suggest_queries` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/suggest-queries.md |
| `suggest_tests` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/suggest-tests.md |
| `taint_analysis` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/taint-analysis.md |
| `trace_state_get` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-get.md |
| `trace_state_init` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-init.md |
| `trace_state_list` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-list.md |
| `trace_state_rollback` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-rollback.md |
| `traverse_graph` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/traverse-graph.md |
| `tune_decision_weights` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/tune-decision-weights.md |
| `tune_weights` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/tune-weights.md |
| `verify_docs` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/verify-docs.md |
| `verify_index` | Read | Low | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/verify-index.md |
| `add_decision` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/add-decision.md |
| `apply_codemod` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/apply-codemod.md |
| `apply_move` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/apply-move.md |
| `apply_rename` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/apply-rename.md |
| `apply_startup_recommendations` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/apply-startup-recommendations.md |
| `approve_decision` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/approve-decision.md |
| `build_corpus` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/build-corpus.md |
| `build_decision_clusters` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/build-decision-clusters.md |
| `change_signature` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/change-signature.md |
| `consolidate_decisions` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/consolidate-decisions.md |
| `generate_docs` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/generate-docs.md |
| `index_sessions` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/index-sessions.md |
| `invalidate_decision` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/invalidate-decision.md |
| `pin` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/pin.md |
| `refresh_co_changes` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/refresh-co-changes.md |
| `register_edit` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/register-edit.md |
| `reject_decision` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/reject-decision.md |
| `remember_decision` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/remember-decision.md |
| `snapshot_graph` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/snapshot-graph.md |
| `subproject_add_repo` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/subproject-add-repo.md |
| `subproject_sync` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/subproject-sync.md |
| `trace_state_add_dead_end` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-add-dead-end.md |
| `trace_state_checkpoint` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-checkpoint.md |
| `trace_state_patch` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/trace-state-patch.md |
| `unpin` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/unpin.md |
| `visualize_subproject_topology` | Write | Medium | https://policylayer.com/tools/nikolai-vysotskyi-trace-mcp/visualize-subproject-topology.md |

## Tool descriptions

- `delete_corpus` — Remove a saved corpus (manifest + packed body). Returns JSON: { deleted: bool, name }.
- `remove_dead_code` — Safely remove a dead symbol from its file. Verifies the symbol is actually dead (multi-signal detection or zero incoming edges) before removal. Warns about orphaned imports in other files. Dry-run by default — preview the plan, then re-c…
- `repair_index` — Apply a targeted repair to the local SQLite index. Modes: drop-orphans (delete embedding rows whose symbol_id no longer exists), drop-vec (drop the entire vector store — search falls back to BM25; embed_repo rebuilds), rebuild-fts (drop …
- `call_project_tool` — Relay a trace-mcp tool call to a DIFFERENT registered project than this session
- `reindex` — Trigger (re)indexing of the project or a subdirectory. Mutates the local index (SQLite). Use after major file changes; for single-file updates prefer register_edit instead. The optional
- `visualize_graph` — Open interactive HTML graph in browser showing file/symbol dependencies. Supports force/hierarchical/radial layouts, community coloring. Use granularity=symbol to see individual functions/classes/methods as nodes instead of files. Writes…
- `analyze_perf` — Per-tool latency telemetry: p50/p95/max, count, error_rate. Default reads the current session ring;
- `assess_change_risk` — Before modifying a file or symbol, predict risk level (low/medium/high/critical) with contributing factors and recommended mitigations. Combines blast radius, complexity, git churn, test coverage, and coupling. Use as a quick risk check.…
- `audit_config` — Scan AI agent config files (CLAUDE.md, AGENTS.md, .cursorrules, etc.) for stale references, dead paths, token bloat, and (when include_drift is set) drift between agent rules and the live MCP tool / skill / command surface. Read-only. Re…
- `benchmark_project` — Synthetic token efficiency benchmark: compare raw file reads vs trace-mcp compact responses across symbol lookup, file exploration, search, and impact analysis scenarios. Read-only, no side effects. Use to quantify token savings. Returns…
- `check_architecture` — Check architectural layer rules: detect forbidden imports between layers (e.g. domain importing infrastructure). Supports auto-detected presets (clean-architecture, hexagonal) or custom layers. Use to enforce architectural boundaries. Re…
- `check_claudemd_drift` — Detect drift between AI agent config files (CLAUDE.md, AGENTS.md, .cursorrules) and the live tool/skill/command surface: dead path references, references to non-existent MCP tools, references to missing skills/commands, oversized section…
- `check_duplication` — Check if a function/class name already exists before creating it. Pass
- `check_edit_safe` — Edit-safety preflight: before modifying a symbol or file, get one verdict for
- `check_embedding_drift` — Pin and re-check a 16-string canary against the active embedding provider. Catches silent provider model swaps (OpenAI/Voyage/etc.) that quietly degrade hybrid retrieval. First call (or with capture=true) saves the baseline; subsequent c…
- `check_quality_gates` — Run configurable quality gate checks (complexity, coupling, circular imports, dead exports, tech debt, security, antipatterns, code smells). Designed for CI / pre-commit verification. Read-only. With no gates configured, returns
- `check_rename` — Pre-rename collision detection: checks the symbol
- `compare_branches` — Compare two branches at symbol level: what was added, modified, removed. Resolves merge-base automatically, groups by category/file/risk, includes blast radius and risk assessment. Requires git. For a quick list of changed symbols withou…
- `detect_antipatterns` — Detect performance & design antipatterns: N+1 queries, missing eager loading, unbounded queries, event listener leaks, circular ORM association cycles, missing FK indexes, memory leaks, god classes (>=25 methods or >=500 LOC), long metho…
- `detect_ast_clones` — Find Type-2 AST clones: functions/methods with identical structure after normalizing identifiers and literals (tree-sitter parse + AST subtree hash). Unlike check_duplication (name/signature similarity), this finds structurally identical…
- `detect_communities` — Run Leiden community detection on the file dependency graph. Identifies tightly-coupled file clusters (modules). Mutates the community index (stores results); idempotent. Deterministic — same
- `detect_drift` — Detect architectural drift: cross-module co-change anomalies (files in different modules that always change together) and shotgun surgery patterns (commits touching 3+ modules). Requires git. Use to identify hidden coupling across module…
- `detect_topic_tunnels` — Cross-project topic tunnels: links between registered subprojects sharing canonical entities — manifest package names, top-level declared dependencies, and git contributors (bots filtered). Tunnel weight favors shared people/project name…
- `diff_graph_snapshots` — Compare two named graph snapshots and report deltas in counts, communities, and top in-degree files. Use to track graph evolution over time without git as the axis (e.g. before/after a refactor, week-over-week health). Read-only. Returns…
- `discover_claude_sessions` — Scan ~/.claude/projects for projects Claude Code has touched on this machine, decode each directory name back to its absolute path, and report which ones still exist plus session-file count and last activity. With add_as_subprojects=true…
- `discover_hermes_sessions` — List Hermes Agent (NousResearch) sessions visible on this machine. Scans $HERMES_HOME (default ~/.hermes) for state.db plus any profiles/<name>/state.db. Hermes conversations are GLOBAL — results are NOT filtered by the current project. …
- `embed_repo` — Precompute and cache symbol embeddings for semantic / hybrid search. Also computed lazily on first semantic query — call this once after a fresh index to avoid that latency spike. Requires an AI provider (ollama/openai) enabled in config…
- `explain_architecture` — AI-powered architecture analysis — layers, patterns, and data flow
- `explain_symbol` — Explain a symbol in detail using AI — purpose, behavior, relationships, usage patterns
- `export_decisions` — Export decisions to JSONL or Markdown. Read-only; no schema mutations. Use for audit, sharing with external tooling, or pre-LLM digestion. JSONL emits one decision per line with
- `export_graph` — Export the dependency graph in formats external tools understand. Supports GraphML (Gephi/yEd/NetworkX), Cypher (Neo4j import script), and Obsidian (markdown vault with [[wikilinks]]). Use to crunch the graph in tools that already exist …
- `export_security_context` — Export security context for MCP server analysis. Generates enrichment JSON for skill-scan: tool registrations with annotations, transitive call graphs classified by security category (file_read, file_write, network_outbound, env_read, sh…
- `extract_function` — Extract a line range out of an enclosing function into a new named helper (AST-aware, TypeScript/JavaScript). Computes the parameter list via free-variable analysis and a return value from bindings used after the slice. The helper is ins…
- `find_similar` — Find semantically similar symbols using vector search + optional AI reranking
- `find_usages` — Find all references to a symbol or file (imports, calls, renders, dispatches). Use instead of Grep for symbol usages — semantic, not text matches. For raw text use search_text; for a bidirectional call graph use get_call_graph. Weakly-gr…
- `generate_insights_report` — Single-call narrative health snapshot: god files (PageRank), architectural bridges (edge bottlenecks), risk hotspots (complexity × churn), edge resolution-tier breakdown, and gap counts (dead exports, untested, cycles). Aggregates alread…
- `generate_sbom` — Generate a Software Bill of Materials (SBOM) from package manifests and lockfiles. Supports npm, Composer, pip, Go, Cargo, Bundler, Maven. Outputs CycloneDX, SPDX, or plain JSON. Includes license compliance warnings for copyleft licenses…
- `get_api_contract` — Get API contract (OpenAPI/gRPC/GraphQL) for a service. Parses spec files found in the service repo. Use to inspect a service
- `get_api_surface` — List all exported symbols (public API) of a file or matching files. Use to understand what a module exposes. For finding unused exports use get_dead_code with mode: exports_only. Read-only. Returns JSON: { files: [{ path, exports: [{ nam…
- `get_artifacts` — Surface non-code knowledge from the index: DB schemas (migrations, ORM models), API specs (routes, OpenAPI endpoints), infrastructure (docker-compose services, K8s resources), CI pipelines (jobs, stages), and config (env vars). All data …
- `get_call_graph` — Build a bidirectional call graph centered on a symbol (who calls it + what it calls). Each branch keeps its direction: depth 2 = callers of callers, callees of callees. Use to understand control flow through a function. For flat list of …
- `get_change_impact` — Full change impact report: risk score + mitigations, breaking change detection, enriched dependents (complexity, coverage, exports), module groups, affected tests, co-change hidden couplings. Pass symbol_ids to scope to changed symbols. …
- `get_changed_symbols` — Map a git diff to affected symbols (functions, classes, methods), for PR review. If
- `get_circular_imports` — Find circular dependency chains in the import graph (Kosaraju SCC algorithm). Considers only import-typed edges (esm_imports / imports / py_imports / py_reexports); call, reference, member_of, and test_covers edges are NOT walked. Test f…
- `get_cluster_decisions` — Return the member decisions of a cluster, plus the cluster header. Use after get_decision_clusters to drill into a specific topic. Read-only. Returns JSON: { cluster, decisions }.
- `get_co_changes` — Find files that frequently change together in git history (temporal coupling). Requires git. Use to discover hidden dependencies between files. For cross-module co-change anomalies use detect_drift instead. Read-only. Returns JSON: { fil…
- `get_code_owners` — Git-based code ownership: who contributed most to specific files (git shortlog). Requires git. Use to identify who to ask about specific files. For symbol-level ownership use get_symbol_owners instead. Read-only. Returns JSON: [{ file, o…
- `get_communities` — Get previously detected communities (file clusters). Run detect_communities first. Read-only. Returns JSON: { communities: [{ id, files, size }], total }.
- `get_community` — Get details for a specific community: files, inter-community dependencies. Read-only. Use after detect_communities to drill into a specific cluster. Returns JSON: { id, files, interCommunityDeps }.
- `get_complexity_report` — Get complexity metrics (cyclomatic, max nesting, param count) for symbols in a file or across the project. Use to identify complex code before refactoring. For historical trends use get_complexity_trend instead. Read-only. Returns JSON: …
- `get_complexity_trend` — File complexity over git history: cyclomatic complexity at past commits. Shows if a file is getting more or less complex. Requires git. Use to track whether a file is improving or degrading. For current snapshot use get_complexity_report…
- `get_component_tree` — Build a component render tree starting from a given .vue file. Use to visualize parent-child component hierarchy. Read-only. Returns JSON: { root, children: [{ component, props, slots, depth }], totalComponents }.
- `get_context_bundle` — Get a symbol
- `get_contract_drift` — Detect mismatches between API spec and implementation: endpoints in spec but not in code, or in code but not in spec. Use to verify API contract accuracy. For reading the contract itself use get_api_contract instead. Read-only. Returns J…
- `get_contract_versions` — Show version history for a service API contract with breaking change detection between versions. Compares request/response schemas across snapshots to flag removed fields, type changes, and renames. Use to review API evolution. For curre…
- `get_control_flow` — Build a Control Flow Graph (CFG) for a function/method: if/else branches, loops, try/catch, returns, throws. Shows logical paths through the code. Outputs Mermaid diagram, ASCII, or JSON. Use to understand branching logic before modifyin…
- `get_coupling` — Coupling analysis: afferent (Ca), efferent (Ce), instability index per file. Shows which modules are stable vs unstable. Use to identify fragile or overly-depended-on modules. For coupling changes over time use get_coupling_trend instead…
- `get_coupling_trend` — File coupling over git history: Ca/Ce/instability at past commits. Shows if a module is stabilizing or destabilizing. Requires git. Use to track module stability over time. For current coupling snapshot use get_coupling instead. Read-onl…
- `get_cross_domain_deps` — Show which business domains depend on which. Based on edges between symbols in different domains. Use to understand domain coupling. Read-only. Returns JSON: { dependencies: [{ from, to, edgeCount }] }.
- `get_cross_service_impact` — Analyze cross-service impact of changing an endpoint or event. Shows which services would be affected. Use before modifying a shared endpoint. For within-codebase impact use get_change_impact instead; for the full cross-repo blast radius…
- `get_cross_workspace_impact` — Show which workspaces are affected by changes in a given workspace. Lists all cross-workspace edges, affected symbols, and the public API surface consumed by other workspaces. Use before modifying shared code in a monorepo. Read-only. Re…
- `get_dataflow` — Intra-function dataflow analysis: track how each parameter flows through the function body — into which calls, where it gets mutated, and what is returned. Phase 1: single function scope. Use to understand data transformations within a f…
- `get_dead_code` — Dead code detection. Modes:
- `get_decision` — Fetch a single decision by id, including its full
- `get_decision_clusters` — List decision clusters with optional full-text filter. Each row carries a short noun-phrase title, 1-3 sentence summary, member count, and a preview of member decision titles. Use to navigate the decision store by topic instead of chrono…
- `get_decision_stats` — Overview of the decision knowledge graph: total decisions, active/invalidated counts, breakdown by type and source. Shows how much institutional knowledge is captured. Read-only. Returns JSON: { total, active, invalidated, by_type, by_so…
- `get_decision_timeline` — Chronological timeline of decisions for a project, symbol, or file. Shows when decisions were made and invalidated — like git log but for architectural decisions. Read-only. Use to review decision history. Returns JSON: { timeline: [{ id…
- `get_dependency_diagram` — Render dependency diagram for a file/directory path as Mermaid or DOT. Input: a path like
- `get_di_tree` — Trace NestJS dependency injection tree (what a service injects + who injects it). Use to understand DI wiring for a specific provider. For module-level graph use get_module_graph instead. Read-only. Returns JSON: { service, injects: [{ n…
- `get_diagnostics` — Execute type-checker (tsc, mypy, pyright) and map errors to enclosing AST symbols. Read-only.
- `get_domain_context` — Get all code related to a specific business domain. Supports
- `get_domain_map` — Get hierarchical map of business domains with key symbols per domain. Auto-builds domain taxonomy on first call using heuristic classification. Use to understand business domain boundaries. For specific domain code use get_domain_context…
- `get_edge_bottlenecks` — Find architectural bottleneck edges in the import graph: edges on many shortest paths (betweenness), edges whose removal would disconnect the graph (bridges), and single-point-of-failure nodes (articulation points). bottleneckScore = bet…
- `get_endpoint_analytics` — Per-route analytics: request count, error rate, latency, caller services. Requires OTLP trace ingestion. Read-only, queries external runtime data. Use to understand endpoint performance and traffic. Returns JSON: { uri, method, requestCo…
- `get_env_vars` — List environment variable keys from .env files with inferred value types/formats. Never exposes actual values — only keys, types, and formats (url/email/ip/path/uuid/json/base64/csv/dsn/etc). Safe for secrets. Pass
- `get_event_graph` — Get event/signal/task dispatch graph (Laravel events, Django signals, NestJS events, Celery tasks, Socket.io events). Use to understand event-driven architecture and trace event producers/consumers. Read-only. Returns JSON: { events: [{ …
- `get_feature_context` — Search code by keyword/topic → returns ranked source snippets within a token budget. Use when you need to READ actual code for a concept or feature. For structured task context with tests and entry points use get_task_context instead; fo…
- `get_federation_impact` — Aggregates cross-repo impact into ONE call: if you change an endpoint, service, or symbol, this combines subproject client-call impact (which repos/files call it), cross-service edge impact (dependent services via HTTP/event edges), and …
- `get_file_health_timeline` — Aggregates get_complexity_trend, get_coupling_trend, and get_git_churn into one per-file time series: complexity, coupling, and a lightweight risk_score per historical snapshot, plus a whole-window churn summary. Answers
- `get_git_churn` — Per-file git churn: commits, unique authors, frequency, volatility assessment. Requires git. Use to identify frequently-changed files. For combined churn+complexity hotspots use get_risk_hotspots instead. Read-only. Returns JSON: { resul…
- `get_graph_timeline` — Graph-evolution timeline: samples evenly-spaced historical commits (via git log) and reports file-count + commit churn per period, with a short narrative diff marker. Symbol/edge counts reflect the current HEAD only, not reconstructed pe…
- `get_health_trends` — Time-series health metrics for a file or module: bug score, complexity, coupling, churn over time. Populated by predict_bugs runs. Use to track if a module is improving or degrading. Read-only. Returns JSON: { dataPoints: [{ date, bugSco…
- `get_implementations` — Find all classes that implement or extend a given interface or base class. Use when you know the interface name. For full hierarchy tree (ancestors + descendants) use get_type_hierarchy instead. Read-only. Returns JSON: { implementations…
- `get_import_graph` — Show file-level dependency graph: what a file imports and what imports it (requires reindex for ESM edge resolution). Use to understand module dependencies for a specific file. For project-wide coupling analysis use get_coupling; for vis…
- `get_index_health` — Get index status, statistics, health, and pipeline progress (indexing, summarization, embedding). Includes the session projectRoot; when the index is empty, next_steps names the empty root and points at list_projects + call_project_tool …
- `get_livewire_context` — Get full context for a Livewire component: properties, actions, events, view, child components. Use to understand a specific Livewire component before modifying it. Read-only. Returns JSON: { component, properties, actions, events, view,…
- `get_middleware_chain` — Trace middleware chain for a route URL (Express/NestJS/FastAPI/Flask). Use when you only need the middleware stack, not the full request flow. For full route→controller→service flow use get_request_flow instead. Read-only. Returns JSON: …
- `get_minimal_context` — Single-call orientation context (~150 tokens). Returns project shape, top 3 risk hotspots, top 3 PageRank-central files, top 3 communities, and 3-5 task-routed next-tool suggestions. Use at session start instead of chaining get_project_m…
- `get_model_context` — Get full model context: relationships, schema, and metadata (Eloquent/Mongoose/Sequelize/SQLAlchemy/Prisma/TypeORM/Drizzle). Use to understand a specific ORM model. For raw table schema without ORM context use get_schema instead. Read-on…
- `get_module_graph` — Build NestJS module dependency graph (module -> imports -> controllers -> providers -> exports). Use to understand NestJS module structure and DI wiring. For provider-level DI tree use get_di_tree instead. Read-only. Returns JSON: { modu…
- `get_navigation_graph` — Build React Native navigation tree from screens, navigators, and deep links. Use to understand app navigation structure. For details on a specific screen use get_screen_context instead. Read-only. Returns JSON: { navigators, screens, dee…
- `get_nova_resource` — Get full context for a Laravel Nova resource: model, fields, actions, filters, lenses, metrics. Use to understand a Nova admin resource before modifying it. Read-only. Returns JSON: { resource, model, fields, actions, filters, lenses, me…
- `get_outline` — Get all symbols for a file (signatures only, no bodies) — cheaper than Read for understanding a file before editing. Follow up with get_symbol to read one symbol\
- `get_package_deps` — Cross-repo package dependency analysis: find which registered projects depend on a package, or what packages a project publishes. Scans package.json/composer.json/pyproject.toml across all repos in the registry. Use for cross-project dep…
- `get_pagerank` — File importance ranking via PageRank on the import graph. Shows most central/important files. Use to identify architecturally critical files. For combined health metrics use get_project_health instead. By default markdown files (.md/.mdx…
- `get_plugin_registry` — List registered indexer plugins and edge types. Read-only. Returns JSON: { language_plugins, framework_plugins, edge_type_categories, active_frameworks }; include_edge_types adds full catalog.
- `get_project_health` — Structural health: coupling instability, dependency cycles, PageRank rankings, refactor candidates. Use for architecture review as a single aggregated report. For individual metrics use get_coupling, get_circular_imports, or get_pagerank…
- `get_project_map` — Get project overview: detected frameworks, languages, file counts, structure. Read-only, no side effects. Call with summary_only=true at session start to orient yourself before diving into code. Use instead of manual ls/find. Returns JSO…
- `get_refactor_candidates` — Find functions with high complexity called from many files — candidates for extraction to shared modules. Use during architecture review to identify hotspots worth refactoring. Read-only. Returns JSON: [{ symbol_id, name, file, cyclomati…
- `get_related_symbols` — Find symbols related via co-location (same file), shared importers, and name similarity. Use when exploring a symbol to discover sibling code. For call-graph relationships use get_call_graph instead; for all usages use find_usages. Read-…
- `get_request_flow` — Trace request flow for a URL+method: route → middleware → controller → service (Laravel/Express/NestJS/Fastify/Hono/tRPC/FastAPI/Flask/DRF). Use to understand how a request is handled end-to-end. For middleware-only analysis use get_midd…
- `get_risk_hotspots` — Code hotspots: files with both high complexity AND high git churn (Adam Tornhill methodology). Score = complexity × log(1 + commits). Heuristic triage, not validated (calibration notes in _methodology). Requires git. For per-file bug-ris…
- `get_runtime_call_graph` — Actual call graph from runtime traces (vs static analysis). Shows observed call paths with call counts and latency. Requires OTLP trace ingestion. Read-only, queries external runtime data. For static call graph use get_call_graph instead…
- `get_runtime_deps` — Which external services (databases, caches, APIs, queues) does this code actually call at runtime. Based on OTLP traces. Read-only, queries external runtime data. Use to discover actual runtime dependencies vs static analysis. Returns JS…
- `get_runtime_profile` — Runtime profile for a symbol or route: call count, latency percentiles (p50/p95/p99), error rate, calls per hour. Requires OTLP trace ingestion. Read-only, queries external runtime data. Use for performance analysis of specific endpoints…
- `get_schema` — Get database schema reconstructed from migrations or ORM model definitions. Use to understand table structure. For ORM-level context with relationships use get_model_context instead. Read-only. Returns JSON: { tables: [{ name, columns: […
- `get_screen_context` — Get full context for a React Native screen: navigator, navigation edges, deep link, platform variants, native modules. Use to understand a specific screen before modifying it. For the full navigation tree use get_navigation_graph instead…
- `get_service_deps` — Get external service dependencies: which services this one calls (outgoing) and which call it (incoming). Use to understand a single service
- `get_service_map` — Get map of all services, their APIs, and inter-service dependencies. Auto-detects services from Docker Compose or treats each repo as a service. Use to understand microservice topology. For subproject-level graph use get_subproject_graph…
- `get_session_journal` — Session history: all tool calls made, files read, zero-result searches, and duplicate queries. Use to avoid repeating work. For a compact snapshot use get_session_snapshot instead. Read-only. Returns JSON: { calls, filesRead, zeroResults…
- `get_session_snapshot` — Compact session snapshot (~200 tokens) for context recovery after compaction. Returns focus files (by read count), edited files, key searches, and dead ends. Also used by the PreCompact hook to preserve session orientation automatically.…
- `get_startup_context_audit` — What every session pays before your first message, what it costs, and what went unused: source decomposition, cache-rebuild prices, and removals proven unused — never merely big.
- `get_state_stores` — List all Zustand stores and Redux Toolkit slices with their state fields, actions/reducers, and dispatch sites. Use to understand state management architecture. Read-only. Returns JSON: { stores: [{ type, name, handler, metadata }], disp…
- `get_subproject_clients` — Find all client calls across subprojects that call a specific endpoint. Shows file, line, call type, and confidence. Use to find all consumers of an endpoint before modifying it. Read-only. Returns JSON: { endpoint, clients: [{ repo, fil…
- `get_subproject_graph` — Show all subprojects and their cross-repo connections. A subproject is any working repository in your project ecosystem (microservices, frontends, backends, shared libraries, CLI tools, etc.). Displays repos, endpoints, client calls, and…
- `get_subproject_impact` — Cross-repo impact analysis: find all client code across subprojects that would break if an endpoint changes. Resolves down to symbol level when per-repo indexes exist. Use before modifying a shared API endpoint; for the full cross-repo b…
- `get_suggested_questions` — Auto-generated, prioritized review questions derived from the analyses we already cache (untested framework entry points, circular imports, ast-clone clusters, dead-export drift, untested-but-exported symbols). Use during PR review to su…
- `get_surprises` — Rank cross-module file edges by how unexpected they look (deep folder distance + popular target + few edges = high surprise). Surfaces hidden coupling that shotgun-changes through unrelated modules. Requires detect_communities to have be…
- `get_symbol` — Look up a symbol by symbol_id or FQN and return its source code. Use instead of Read when you need one specific function/class/method — returns only the symbol, not the whole file. For multiple symbols at once, prefer get_context_bundle.…
- `get_symbol_complexity_trend` — Single symbol complexity over git history: cyclomatic, nesting, params, lines at past commits. Requires git. Use to track a specific function
- `get_symbol_owners` — Git blame-based symbol ownership: who wrote which lines of a specific symbol. Requires git. Use for fine-grained ownership of a specific function/class. For file-level ownership use get_code_owners instead. Read-only. Returns JSON: { sym…
- `get_task_context` — All-in-one context for starting a dev task: execution paths, tests, entry points, adapted by task type. Use as your FIRST call when beginning any new task — replaces manual chaining of search → get_symbol → Read. For narrower feature-cod…
- `get_tech_debt` — Per-module tech debt score (A–F grade) combining: complexity, coupling instability, test coverage gaps, and git churn. Includes actionable recommendations. Use for architecture review and prioritizing cleanup. Read-only. Returns JSON: { …
- `get_tests_for` — Find test files/functions covering a given symbol or file. Understands test-to-source mapping, not just filename conventions. With symbol_id/fqn, narrows to tests that actually exercise it (direct_invocation, import_and_call, or text_mat…
- `get_type_hierarchy` — Walk TypeScript class/interface hierarchy: ancestors (what it extends/implements) and descendants (what extends/implements it). Use to understand inheritance trees. For a flat list of implementations only use get_implementations instead.…
- `get_untested_symbols` — Find symbols lacking test coverage. scope=
- `get_wake_up` — Compact orientation context (~300 tokens) for session start. By default returns a {stable, dynamic} split: stable content (project identity, conventions, architecture) is provider-cacheable when injected into system_prompt; dynamic conte…
- `get_workspace_map` — List all detected monorepo workspaces with file counts, symbol counts, and languages. Returns dependency graph between workspaces showing cross-workspace imports. Use for monorepo structure overview. For impact of changes on other worksp…
- `graph_query` — Trace how named symbols relate in the dependency graph → returns subgraph + Mermaid diagram. Input is NATURAL LANGUAGE only — NOT SQL. Must contain symbol/class names (e.g.
- `list_bundles` — List installed pre-indexed bundles for dependency libraries. Shows package name, version, symbol/edge counts, and size. Read-only. Returns JSON: { bundles: [{ name, version, symbols, edges, size }], total }.
- `list_corpora` — List every corpus saved on disk with its manifest (scope, project_root, sizes, timestamps). Read-only. Use to discover what corpora are available to query.
- `list_graph_snapshots` — List previously captured graph snapshots, most recent first. Each entry includes its summary so you can inspect counts without diffing. Read-only. Returns JSON: { snapshots: [{ id, name, captured_at, summary }], total }.
- `list_pins` — List all active ranking pins with weight, scope, target, expiry, and creator. Use to inspect what is currently boosted/demoted in PageRank-driven ranking. Read-only. Returns JSON: { pins: [{ scope, target_id, weight, expires_at, created_…
- `list_projects` — List projects registered with trace-mcp (~/.trace/registry.json) — the roots call_project_tool accepts. Use to query a project other than the one this session is attached to. Subprojects nested inside those roots are not valid targets, s…
- `mine_sessions` — Mine Claude Code / Claw Code session logs for architectural decisions, tech choices, bug root causes, and preferences. Strategies:
- `name` — description
- `pack_context` — Pack project context into a single document for external LLMs. Intelligent selection by graph importance, fits within token budget. Better than Repomix for focused context. Strategies: most_relevant (default — feature/PageRank ranked), c…
- `plan_batch_change` — Analyze the impact of updating a package/dependency. Shows all affected files, import references, and generates a PR template with checklist. Use before upgrading a dependency to understand blast radius. Read-only (analysis only, does no…
- `plan_refactoring` — Preview any refactoring (rename, move, extract, signature) without applying. Returns all edits as {old_text, new_text} pairs. Read-only (does not modify files). Use to review the blast radius before calling apply_rename, apply_move, chan…
- `predict_bugs` — Heuristic bug-risk triage: ranks files by git churn, fix-commit ratio, complexity, coupling, PageRank, and author count — a prioritization heuristic, NOT a validated predictor (calibration notes in the response
- `query_by_intent` — Map a business question to domain taxonomy → returns domain ownership and relevance scores (no source code). Use when you need to know WHICH DOMAIN owns specific functionality. For actual source code use get_feature_context instead. Read…
- `query_corpus` — Answer a natural-language question against a saved corpus. Loads the corpus body, primes the configured AI provider with it as system context, and returns the response. When mode=
- `query_decisions` — Query the decision knowledge graph. Filter by type, subproject, code symbol, file path, tag, or time — answers
- `regenerate_project_memo` — Synthesise (or refresh) the project memo — a 250-400 word LLM-written orientation digest over the decision store. Skips work when fewer than
- `review_change` — AI-powered review of a file change — identify issues, risks, and suggestions
- `rollback_startup_recommendations` — Undo one apply_startup_recommendations(dry_run:false) call byte-for-byte: restores files and moved skills. Defaults to the latest backup. Returns JSON: { backupId, restored, errors }.
- `scan_code_smells` — Find deferred work and shortcuts: TODO/FIXME/HACK/XXX comments, empty functions & stubs, hardcoded values (IPs, URLs, credentials, magic numbers), and per-language debug artifacts (console.log, debugger, var_dump, pdb.set_trace, etc). Co…
- `scan_security` — Scan project files for OWASP Top-10 vulnerabilities (SQLi, XSS, command injection, path traversal, hardcoded secrets, insecure crypto, open redirects, SSRF — reported with CWE IDs). Skips test files. Low-confidence findings are held back…
- `search` — Search symbols by name, kind, or text. Use instead of Grep for functions, classes, methods, variables. For raw text/comment search use search_text; for references to a known symbol use find_usages. Read-only. Returns JSON: { items: [{ sy…
- `search_bundles` — Search pre-indexed bundles for symbols from popular libraries (React, Express, etc.). Returns symbol definitions from dependency bundles — useful for go-to-definition into node_modules/vendor. Install bundles via CLI:
- `search_sessions` — Search across all past session conversations. Finds what was discussed, decided, or debugged in previous sessions. Full-text search with porter stemming — e.g.,
- `search_text` — Full-text search across all indexed files. Supports regex, glob file patterns, language filter. Use for finding strings, comments, TODOs, config values, error messages — anything not captured as a symbol. Skips .env files: secret values …
- `self_audit` — Dead code & coverage audit: dead exports, untested public symbols, heritage debt. Use as a one-shot health check combining dead exports + untested symbols + heritage debt. For individual checks use get_dead_code or get_untested_symbols s…
- `suggest_queries` — Onboarding helper: shows top imported files, most connected symbols (PageRank), language stats, and example tool calls. Call this first when exploring an unfamiliar project. For a structured project map use get_project_map instead. Read-…
- `suggest_tests` — Suggest test cases for a symbol using AI
- `taint_analysis` — Track flow of untrusted data from sources (HTTP params, env vars, file reads) to dangerous sinks (SQL queries, exec, innerHTML, redirects). Framework-aware (Express, Laravel, Django, FastAPI, etc). Reports unsanitized flows with CWE IDs …
- `trace_state_get` — Retrieve current execution state for a task in compact markdown (~150 tokens) or full JSON.
- `trace_state_init` — Initialize structured execution state for a task (arXiv:2608.26263). Saves state to SQLite and returns compact initial state.
- `trace_state_list` — List recent agent execution task states and their status in storage.
- `trace_state_rollback` — Rollback task execution state to a previously saved checkpoint snapshot by label or ID.
- `traverse_graph` — Walk the dependency graph from a starting symbol or file using BFS/DFS, with a hard token budget on the response. Use when you want a structured
- `tune_decision_weights` — Decision memory, not retrieval ranking (that is
- `tune_weights` — Retrieval fusion ranking for
- `verify_docs` — Verify a markdown document against the code graph — the reverse of generate_docs, for catching doc drift after a rename. forward: backticked paths and identifiers that no longer resolve, each with its heading path. reverse: public symbol…
- `verify_index` — Read-only structural check of the local SQLite index: SQLite integrity_check, foreign-key violations, required-table presence, FTS5 integrity-check, embedding dimension consistency, and orphan embedding detection. Returns a check-by-chec…
- `add_decision` — Manually record an architectural decision, tech choice, preference, or convention. Links to code symbols/files and optionally to a specific subproject for code-aware memory. Decisions have temporal validity — they can be invalidated late…
- `apply_codemod` — Structural (AST-aware) or regex find-and-replace across files. Default engine
- `apply_move` — Move a symbol to a different file or rename/move a file, updating all import paths across the codebase. Dry-run by default (safe preview). Modifies source files. Use plan_refactoring with type=
- `apply_rename` — Rename a symbol across all usages (definition + all importing files). Runs collision detection first and aborts on conflicts. Dry-run by default — preview the plan, then re-call with dry_run: false to apply. Returns the list of edits app…
- `apply_startup_recommendations` — Apply or preview a get_startup_context_audit recommendation: disable an unused MCP server, move an unused skill aside, or delete duplicated instruction lines. dry_run defaults to true; every write is backed up first. Returns JSON: { dryR…
- `approve_decision` — Approve a decision currently in the memoir-style review queue (review_status=
- `build_corpus` — Pack a slice of project context into a persistent corpus on disk so future query_corpus calls can prime an LLM with the same snapshot without re-running the pack pipeline. Mutates the corpora store; returns JSON with the saved manifest. …
- `build_decision_clusters` — Recompute the L2 thematic cluster overlay over the decision store using the configured LLM. Stable cluster ids: a fresh cluster whose title matches an existing one (trigram Jaccard >=0.8) updates the existing row in place. Mutates the cl…
- `change_signature` — Change a function/method signature (add/remove/rename/reorder parameters) and update all call sites. Dry-run by default (safe preview). Modifies source files. Use plan_refactoring with type=
- `consolidate_decisions` — LLM-driven semantic dedup of the decision store. For each decision in scope, finds top-K similar candidates (FTS + title-trigram) and asks the LLM to merge / replace / invalidate where appropriate. Mutating; respects dry_run (default tru…
- `generate_docs` — Generate project documentation from the code graph — architecture, API surface, data models, components, dependencies. For checking an existing document instead, use verify_docs. Returns JSON: { format, sections, outputPath }.
- `index_sessions` — Index conversation content from Claude Code / Claw Code sessions for cross-session search. Stores chunked messages in FTS5 — enables
- `invalidate_decision` — Mark a decision as no longer valid. The decision remains in the knowledge graph for historical queries but is excluded from active queries. Use when a decision is superseded or reversed. Mutates the decision store; idempotent. Returns JS…
- `pin` — Boost (or demote) a symbol and/or file in PageRank-driven ranking by setting a multiplicative weight. Unifies pin_symbol/pin_file — pass symbol_id and/or file_path (at least one required; pass both to pin them together with the same weig…
- `refresh_co_changes` — Rebuild co-change index from git history. Mutates the co-change index; idempotent. Use after significant git history changes. Returns JSON: { status, pairs_stored, window_days }.
- `register_edit` — Notify trace-mcp that a file was edited. Reindexes the single file and invalidates search caches. Call after Edit/Write to keep index fresh — much lighter than full reindex. Also flags duplicate symbols — if
- `reject_decision` — Reject a decision currently in the memoir-style review queue (review_status=
- `remember_decision` — Live agent write into the decision knowledge graph. Confidence-scores the input and routes it through the memoir review queue: high-confidence rows enter the active graph immediately, mid-confidence rows queue for human approval, low-con…
- `snapshot_graph` — Capture the current graph shape (file/symbol counts, edges by type, top in-degree files, communities, exported symbols) under a named label. Use as a checkpoint before/after a refactor; later compare with diff_graph_snapshots. Mutates a …
- `subproject_add_repo` — Add a repository as a subproject of the current project. Pass
- `subproject_sync` — Re-scan all subprojects: re-discover services, re-parse contracts, re-scan client calls, and re-link everything. Mutates the topology store; idempotent. Use after code changes in subproject repos. Returns JSON: { synced, services, contra…
- `trace_state_add_dead_end` — Shortcut to record a failed approach or dead end into task state without a full patch.
- `trace_state_checkpoint` — Save a named state checkpoint snapshot for safe rollback if a future exploration path fails.
- `trace_state_patch` — Apply an RFC 7396 JSON Merge Patch to update state atomically. Validates schema and increments version. Returns compact status.
- `unpin` — Remove a ranking pin by target. Pass either symbol_id (for a pinned symbol) or file_path (for a pinned file). At least one is required. Returns JSON: { ok, deleted }.
- `visualize_subproject_topology` — Open interactive HTML visualization of the subproject topology: services as nodes, API calls as edges, health/risk indicators per service. Node size = endpoint count, color = health (green/yellow/red). Writes an HTML file to disk. Use fo…

## Related servers

- UnClick (1662 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Apibase (1384 tools) — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase.md
- Delx Mcp A2a (1068 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- MCP Framework Personal (912 tools) — https://policylayer.com/tools/inggerman-mcps.md
- Hermoso (896 tools) — https://policylayer.com/tools/hermoso.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Altium-MCP-Suite (817 tools) — https://policylayer.com/tools/altium-mcp-suite.md
- Eda Agent (777 tools) — https://policylayer.com/tools/eda-agent.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=nikolai-vysotskyi-trace-mcp · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/nikolai-vysotskyi-trace-mcp
