github Python analyzed f41d956

jgravelle/jcodemunch-mcp

github

Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.

maintainer
jgravelle
license
NOASSERTION
first seen
2026-06-24
last seen
2026-08-02
releases · 30d
114
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret ×4, dynamic code execution ×6 in jgravelle/jcodemunch-mcp
  2. HIGH code analysis flagged dynamic code execution in jgravelle/jcodemunch-mcp
  3. HIGH code analysis flagged dynamic code execution in jgravelle/jcodemunch-mcp
  4. HIGH code analysis flagged dynamic code execution in jgravelle/jcodemunch-mcp
  5. HIGH code analysis flagged dynamic code execution in jgravelle/jcodemunch-mcp
  6. HIGH code analysis flagged dynamic code execution in jgravelle/jcodemunch-mcp
capabilities 0 tools
transport stdio · streamable-http · http · sse counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit f41d956 · analyzer v28 · 2d ago

skills & prompt files 2

danger signals10

code evidence vv1.108.200 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 667

filesystem 95

  • fs jgravelle-jcodemunch-mcp-f41d956/.github/actions/health-radar/render_comment.py :16 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/munch-bench/munch_bench/cli.py :8 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/munch-bench/munch_bench/corpus.py :7 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/munch-bench/munch_bench/evaluate.py :122 with open(path, "w", encoding="utf-8") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/munch-bench/munch_bench/leaderboard.py :217 with open(output_path, "w", encoding="utf-8") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/speedreview/review.py :66 with open(event_path) as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/delivery.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/digest.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/file_risk.py :13 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/health.py :17 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/init.py :7 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/install_pack.py :9 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/observatory.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/parity.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/receipt.py :24 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/reflect.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/skills.py :24 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/upgrade.py :21 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/whatsnew.py :21 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/config.py :10 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/embeddings/local_encoder.py :20 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/enrichment/lsp_bridge.py :33 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/evidence/scip.py :32 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/evidence/scip_ingest.py :25 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/groq/explainer.py :16 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/groq/voice.py :105 with wave.open(buf, "wb") as wf:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/hook_event.py :6 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/license.py :37 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/store.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/_route_utils.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/base.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/dbt.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/decorator_routes.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/django.py :11 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/express.py :11 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/framework_profiles.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/git_blame.py :26 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/go_routers.py :11 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/laravel.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/nextjs.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/nuxt.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/rails.py :11 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/extractor.py :3516 from pathlib import Path as _Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/imports.py :8 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/parse_cache.py :40 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/embed_drift.py :26 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/freshness.py :22 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/subject_state.py :33 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/tuning.py :32 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/verdict.py :718 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/ingest.py :27 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/otel.py :34 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/sql_ingest.py :35 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/sql_log.py :48 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/stack_ingest.py :32 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/stack_log.py :55 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime_identity.py :105 with open("/proc/self/stat", "r", encoding="ascii", errors="replace") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/security.py :4 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/server.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/service_installer.py :17 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/embedding_store.py :11 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/git_root.py :18 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/index_store.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/process_locks.py :42 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/process_registry.py :29 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/sqlite_store.py :11 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/token_tracker.py :40 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/_utils.py :5 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/analyze_perf.py :17 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/audit_agent_config.py :14 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/check_references.py :74 with open(full_path, "r", encoding="utf-8", errors="replace", newline="") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/digest.py :32 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_changed_symbols.py :8 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_project_intel.py :179 with open(fpath, "r", encoding="utf-8", errors="replace") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_repo_outline.py :153 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_symbol.py :7 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_watch_status.py :18 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/import_runtime_signal.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/import_scip.py :8 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/index_dependency.py :22 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/index_file.py :6 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/index_folder.py :12 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/list_workspaces.py :36 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/mermaid_viewer.py :15 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/observatory.py :42 import shutil
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/observatory_render.py :17 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/package_registry.py :9 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/plan_refactoring.py :6 from pathlib import PurePosixPath
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/resolve_repo.py :7 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/search_ast.py :25 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/search_text.py :150 with open(full_path, "r", encoding="utf-8", errors="replace") as f:
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/session_state.py :15 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/version_check.py :20 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/watch_all.py :24 from pathlib import Path
  • fs jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/watcher.py :13 from pathlib import Path

shell / exec 27

  • shell jgravelle-jcodemunch-mcp-f41d956/speedreview/review.py :25 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/hooks.py :15 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/init.py :8 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/upgrade.py :22 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/enrichment/lsp_bridge.py :34 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/groq/explainer.py :17 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/hook_event.py :7 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/context/git_blame.py :25 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/freshness.py :19 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/retrieval/subject_state.py :31 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/service_installer.py :18 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/git_root.py :17 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/index_store.py :8 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/digest.py :72 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_changed_symbols.py :6 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_churn_rate.py :14 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_delivery_metrics.py :31 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_file_risk.py :29 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_hotspots.py :18 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_symbol.py :5 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_symbol_provenance.py :21 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_tectonic_map.py :29 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/mermaid_viewer.py :16 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/observatory.py :43 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/resolve_repo.py :5 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/winnow_symbols.py :31 import subprocess
  • shell jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/watcher.py :8 import subprocess

network 9

  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/cli/install_pack.py :12 import httpx
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/embeddings/local_encoder.py :78 import urllib.request
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/enrichment/lsp_bridge.py :695 from urllib.parse import unquote, urlparse
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/license.py :123 import httpx
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/report.py :12 import socket
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/server.py :8044 import httpx # noqa: F401
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/token_tracker.py :987 import httpx
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/summarizer/batch_summarize.py :10 from urllib.parse import urlparse
  • net jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/index_repo.py :10 from urllib.parse import urlparse

secrets 11

  • secrets jgravelle-jcodemunch-mcp-f41d956/munch-bench/munch_bench/inference.py :70 api_key=api_key or os.environ.get("GROQ_API_KEY", ""),
  • secrets jgravelle-jcodemunch-mcp-f41d956/speedreview/review.py :31 GROQ_API_KEY = os.environ.get("GROQ_API_KEY", "")
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/credentials.py :100 import keyring # noqa: F401 (returned by reference)
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/groq/config.py :34 self.groq_api_key = os.environ.get("GROQ_API_KEY", "")
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/license.py :91 key = (os.environ.get("JCODEMUNCH_LICENSE_KEY") or "").strip()
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/report.py :26 token = os.environ.get("JCODEMUNCH_HTTP_TOKEN")
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/http_routes.py :141 return bool(os.environ.get("JCODEMUNCH_HTTP_TOKEN"))
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/server.py :6993 token = os.environ.get("JCODEMUNCH_HTTP_TOKEN")
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/summarizer/batch_summarize.py :405 api_key = os.environ.get("ANTHROPIC_API_KEY")
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/embed_repo.py :47 google_key = os.environ.get("GOOGLE_API_KEY", "").strip()
  • secrets jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/index_repo.py :328 github_token = os.environ.get("GITHUB_TOKEN")

database 21

  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/evidence/scip_ingest.py :23 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/org/store.py :13 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/parser/parse_cache.py :39 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/confidence.py :33 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/ingest.py :25 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/resolve.py :25 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/sql_ingest.py :33 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/runtime/stack_ingest.py :30 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/embedding_store.py :10 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/sqlite_store.py :12 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/storage/token_tracker.py :34 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/_scip_consume.py :18 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/check_delete_safe.py :92 import sqlite3 # noqa: PLC0415
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/find_hot_paths.py :35 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/find_references.py :296 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/find_unused_paths.py :52 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_group_contracts.py :110 import sqlite3 # noqa: PLC0415
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_pr_risk_profile.py :32 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_redaction_log.py :37 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_runtime_coverage.py :30 import sqlite3
  • db jgravelle-jcodemunch-mcp-f41d956/src/jcodemunch_mcp/tools/get_symbol_provenance.py :20 import sqlite3

declared dependencies 20

  • mcp@>=1.10.0,<2.0.0
  • httpx@>=0.27.0
  • tree-sitter-language-pack@>=0.7.0,<1.0.0
  • pathspec@>=0.12.0
  • pyyaml@>=6.0
  • anthropic@>=0.40.0
  • google-generativeai@>=0.8.0
  • openai@>=1.0.0
  • uvicorn@>=0.20.0
  • starlette@>=1.3.1
  • anyio@>=4.0.0
  • watchfiles@>=1.0.0
  • sentence-transformers@>=2.2.0
  • onnxruntime@>=1.16.0
  • sounddevice@>=0.4.6
  • numpy@>=1.24.0
  • Pillow@>=10.0.0
  • keyring@>=24.0
  • rich@>=13.0
  • jinja2@>=3.1