senkani_repo
Query any public GitHub repo without cloning. Actions: tree, file, readme, search.
Signature
Behavior
Host-allowlisted to api.github.com + raw.githubusercontent.com. Anonymous by default (60 req/h); `GITHUB_TOKEN` env raises the limit. All responses pass through SecretDetector. TTL + LRU cache.
Inputs
Output
Depends on action. `tree` → file list; `file` → contents; `readme` → rendered readme; `search` → BM25-ranked hits.
Example
{"tool":"senkani_repo","args":{"action":"tree","repo":"ckluis/senkani"}}
Details
Anonymous calls share GitHub's 60 req/h IP-bucket limit; setting GITHUB_TOKEN in the environment lifts the cap to 5,000 req/h and switches authenticated rate-limit headers on. The TTL+LRU cache is keyed on (action, repo, path, ref) and survives across panes within a session, so repeated tree or readme reads of the same ref are free. Cache misses block on a single in-flight request per key — concurrent callers coalesce.
See also
senkani_bundle— Budget-bounded remote snapshot.senkani_web— General web fetch (different guard).
Sources/MCPServer/Tools/RepoTool.swift