{"slug":"ashfordeou/grasp","name":"grasp-mcp-server a","description":"36 tools for dependency graphs, architecture   analysis, security scanning, refactoring, and CI tracking for LLM   agents","category":"development","tags":[],"official":false,"stars":6,"transport":"stdio","install":[{"cmd":"npx -y grasp-mcp-server`","imports":[]}],"tools":[{"name":"grasp_analyze","description":"Full analysis of any repo or local path — returns session_id for follow-up queries"},{"name":"grasp_sessions","description":"List active sessions (persist 7 days, survive restarts)"},{"name":"grasp_diff","description":"Compare two snapshots — what changed between analyses?"},{"name":"grasp_watch","description":"Re-analyse a directory and diff against a prior run"},{"name":"grasp_rules_check","description":"Run grasp.yml architecture rules and report violations"},{"name":"grasp_config_check","description":"Validate a session against architecture rules — returns violations"},{"name":"grasp_file_deps","description":"What does this file depend on?"},{"name":"grasp_dependents","description":"What breaks if I change this file?"},{"name":"grasp_cycles","description":"Are there circular dependencies?"},{"name":"grasp_architecture","description":"What layers does this codebase have?"},{"name":"grasp_hotspots","description":"Which files are riskiest to touch?"},{"name":"grasp_metrics","description":"Lines, complexity, fan-in/fan-out per file"},{"name":"grasp_find_path","description":"How does file A connect to file B?"},{"name":"grasp_patterns","description":"What design patterns are in use?"},{"name":"grasp_unused","description":"Dead code — defined but never called"},{"name":"grasp_explain","description":"Plain-English explanation of any file or function"},{"name":"grasp_refactor","description":"Step-by-step refactor plan for a file or session"},{"name":"grasp_suggest","description":"Ranked refactoring suggestions by effort-to-impact ratio"},{"name":"grasp_onboard","description":"Ordered reading path for new engineers entering a codebase area"},{"name":"grasp_types","description":"Type annotation coverage — prioritises high fan-in files lacking types"},{"name":"grasp_similarity","description":"Ranked duplicate clusters and code-clone groups"},{"name":"grasp_stale","description":"Active but abandoned files — low churn, high fan-in, no test counterpart"},{"name":"grasp_change_risk","description":"Risk score 0–100 for a set of changed files"},{"name":"grasp_security","description":"Hardcoded secrets, injection risks, dangerous patterns"},{"name":"grasp_sbom","description":"SBOM in CycloneDX 1.4 or SPDX 2.3 JSON"},{"name":"grasp_sarif","description":"SARIF 2.1.0 export for GitHub Code Scanning"},{"name":"grasp_license","description":"Dependency licenses — flags copyleft and unknown"},{"name":"grasp_pii_trace","description":"BFS trace from PII source files to all consumers"},{"name":"grasp_duties","description":"Separation of duties — files that both initiate and approve"},{"name":"grasp_reg_impact","description":"Regulatory change blast radius (GDPR/HIPAA/SOX/PCI-DSS)"},{"name":"grasp_env_vars","description":"All env var reads — flags undocumented and test-only vars"},{"name":"grasp_feature_flags","description":"All feature flag reads (LaunchDarkly, GrowthBook, env-var flags)"},{"name":"grasp_pr_comment","description":"Generate PR health comment with blast radius for changed files"},{"name":"grasp_pr_review","description":"Post inline review comments on a GitHub PR at high-severity lines"},{"name":"grasp_commits","description":"Commit counts for last 7d and 30d"},{"name":"grasp_ci_status","description":"Latest GitHub Actions run — passing/failing/in-progress"},{"name":"grasp_dora","description":"DORA metrics — Deployment Frequency, Lead Time, CFR, MTTR"},{"name":"grasp_adr","description":"AI-powered MADR-format Architecture Decision Record"},{"name":"grasp_embed","description":"Generate iframe, README badge, React snippet for sharing"},{"name":"grasp_timeline","description":"Last N commits with per-commit changed files + co-change matrix"},{"name":"grasp_contributors","description":"Per-file ownership, bus-factor, top contributors"},{"name":"grasp_coverage","description":"Test coverage overlay — which files lack tests?"},{"name":"grasp_issues","description":"Map GitHub Issues to the files they mention"},{"name":"grasp_jira_issues","description":"Map Jira issues to source files via project key"},{"name":"grasp_service_graph","description":"Service-level dependency graph from OTEL / custom trace JSON"},{"name":"grasp_deps_dev","description":"Ecosystem dependents via deps.dev — how many packages depend on this repo"},{"name":"grasp_brain_index","description":"Analyse and persist a repo to the local SQLite brain"},{"name":"grasp_brain_status","description":"What's indexed in the brain and when?"},{"name":"grasp_context","description":"Rich file context — layer, complexity, coupling, security, dependents, dependencies"},{"name":"grasp_arch_diff","description":"Compare current state vs brain baseline — detect degradations"},{"name":"grasp_ask","description":"Ask a natural language question about your architecture"},{"name":"graph_query","description":"Run read-only Cypher queries against the persistent function/file call graph"},{"name":"call_chain","description":"Trace caller and callee chains for any function, up to configurable depth"},{"name":"type_propagation","description":"Find all functions sharing a return type and their call neighbors"},{"name":"function_graph","description":"Render a Mermaid / DOT / JSON subgraph centred on any named function"},{"name":"grasp_dead_packages","description":"npm deps in package.json but never imported"},{"name":"grasp_runtime_calls","description":"Merge a live runtime trace with static edges — actual hot paths"},{"name":"grasp_db_coupling","description":"ORM/SQL-to-table coupling map — god tables, high-coupling files"},{"name":"grasp_migration_plan","description":"Phased topologically-ordered plan for replacing a package/module"},{"name":"grasp_api_surface","description":"Unified API surface from OpenAPI, GraphQL, Express/FastAPI routes"},{"name":"grasp_events","description":"Event emitters and subscribers — orphaned emits, ghost subscriptions"},{"name":"grasp_perf","description":"N+1 queries, synchronous I/O, JSON serialization in loops"},{"name":"grasp_bundle","description":"Bundle size treemap — largest files by size category"},{"name":"grasp_dep_impact","description":"Impact of upgrading a dependency across all files"},{"name":"grasp_cross_repo","description":"Compare two sessions — shared files, diverged functions"},{"name":"grasp_diagram","description":"Generate Mermaid flowchart or C4 diagrams from the dependency graph"},{"name":"grasp_req_trace","description":"Requirement traceability — scan @REQ-NNN tags against a CSV"},{"name":"grasp_anomaly","description":"Anomaly investigation — BFS blast radius, security in call chain, plain-English summary"},{"name":"grasp_reuse","description":"Software reuse assessor — Red/Amber/Green compatibility matrix"},{"name":"grasp_safety_trace","description":"Safety constraint tracer — finds paths that bypass all safety gates"},{"name":"grasp_multilang","description":"Cross-language call graph (Ada→C, Python→C, JS→WASM)"},{"name":"grasp_heritage","description":"Heritage software genealogy — zero-delta certification shortcuts"},{"name":"grasp_icd","description":"ICD mapper — match Interface Control Document entries to code"},{"name":"grasp_ecss","description":"ECSS-E-ST-40C compliance checker (DI-01, DI-04, DI-07, DI-10, DI-15)"},{"name":"grasp_run_diff","description":"Training run diff — changed hyperparameters and affected code"},{"name":"grasp_eval_coverage","description":"Eval coverage map — safety gates with no eval coverage flagged critical"},{"name":"grasp_org_graph","description":"Org-level multi-repo dependency graph with inter-repo edges"},{"name":"grasp_api_diff","description":"Breaking API change detector — removed/changed exported symbols"},{"name":"grasp_plugins","description":"Extension-point map — plugin interfaces, hook points, strategy patterns"},{"name":"grasp_semver","description":"Semantic versioning enforcer — validate semver bump for the change set"},{"name":"grasp_abi_diff","description":"ABI/API stability checker — stability score 0–100"},{"name":"grasp_subsystems","description":"Kernel/OS subsystem"}],"env_vars":["GRASP_NVD_API_KEY","GITHUB_TOKEN"],"auth_type":"none","github":"https://github.com/ashfordeOU/grasp","homepage":"","server_url":"","status":"active","source":"mcpservers.org","updated_at":"Thu May 28"}