MCP server for semantic codebase indexing and intelligent code search, powered by Qdrant.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 8 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
end_session
-
expand_context
-
get_file
-
list_repos
-
route_task
-
search_code
-
session_status
-
sync_workspace
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit ba55dfd · analyzer v33 · 6d ago
danger signals1
- over-broad OAuth scope delete_repo Knighthawk-Leo-RepoMind-ba55dfd/codeindex/control.py :374
Route("/v1/orgs/{owner}/repos/{slug}", delete_repo, methods=["DELETE"]),
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 32
filesystem 16
- fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/cli.py :10
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/config.py :8
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/db.py :9
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/gitmirror.py :19
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/graph.py :18
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/indexer.py :14
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/pipeline.py :24
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/scan.py :11
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/search.py :19
from pathlib import Path - fs Knighthawk-Leo-RepoMind-ba55dfd/codeindex/webui.py :13
from pathlib import Path - fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/chunk_report.py :15
from pathlib import Path - fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_pipeline.py :24
import shutil
show 4 more
- fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_routing.py :15
from pathlib import Path - fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_session.py :12
import shutil - fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/probe_embedding.py :16
from pathlib import Path - fs (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/scan_report.py :15
from pathlib import Path
shell / exec 3
- shell Knighthawk-Leo-RepoMind-ba55dfd/codeindex/gitmirror.py :16
import subprocess - shell (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_pipeline.py :25
import subprocess - shell (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_session.py :13
import subprocess
network 3
- net Knighthawk-Leo-RepoMind-ba55dfd/codeindex/cli.py :7
import socket - net Knighthawk-Leo-RepoMind-ba55dfd/codeindex/credentials.py :17
from urllib.parse import quote, urlsplit, urlunsplit - net Knighthawk-Leo-RepoMind-ba55dfd/codeindex/openrouter.py :9
import httpx
secrets 4
- secrets Knighthawk-Leo-RepoMind-ba55dfd/codeindex/config.py :38
openrouter_api_key: str = field(default_factory=lambda: os.environ.get("OPENROUTER_API_KEY", "")) - secrets Knighthawk-Leo-RepoMind-ba55dfd/codeindex/extract.py :260
# `os.environ["KEY"]` is a subscript, not a call, so the tree walk above - secrets (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/_eval_db.py :29
password = os.environ.get("PG_PASSWORD", "codeindex") - secrets (weak) Knighthawk-Leo-RepoMind-ba55dfd/scripts/eval_control.py :26
os.environ["CONTROL_TOKEN"] = CONTROL_TOKEN
tool registrations 8
- route_task Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :83
- search_code Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :109
- get_file Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :168
- expand_context Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :206
- sync_workspace Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :261
- end_session Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :307
- session_status Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :325
- list_repos Knighthawk-Leo-RepoMind-ba55dfd/codeindex/mcp_server.py :343
declared dependencies 8
- mcp@>=2.0
- qdrant-client@>=1.19,<1.20
- psycopg@[binary]>=3.2
- httpx@>=0.27
- tree-sitter@>=0.23
- tree-sitter-language-pack@>=0.7
- python-dotenv@>=1.0
- tenacity@>=9.0