Solumbe
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Use solumbe at each stage of repository work, not once at the start:
New task, or the scope changes: context_pack. Call it first, before reading or grepping files: limit 8, online true (the model read needs TYPESAFE_API_KEY and falls back when it is missing).
Weak result: intent unknown, or the top files don't fit the task: repo_search. Retry once with concrete names (library, component, route) before grepping. It searches indexed repositories; call repo_index first for one that isn't indexed.
Before editing a specific change: change_impact. Use its risk flags and suggested tests. To hold the change to its scope, pass declare: true and keep the intent it returns.
Delegating to another agent: context_pack. Put solumbe's files and hotspots in the agent's prompt and tell it to call context_pack first.
Before each commit: convergence_score. Score the diff against the base branch and report any drift from the task.
Before opening a pull request: review_gate. Include its verdict in the pull request. Pass the intent declared before the edit, so a changed file that was never declared fails. Misses are feedback: when grep or another agent finds files solumbe did not rank, tell the user the request and the missed files. Skip solumbe for conversation without repository work and for follow-ups within the same scope.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| repo_inspectA | Inspect repository shape, languages, package managers, script names, entrypoints, and git metadata. Returns up to 200 representative file paths; pass includeScripts:true to get full script command bodies instead of just names. |
| repo_mapA | Map a repository into a compact JSON code map, optionally narrowed by domain, file kind, or controller route. Pass domain to find files for a feature, kind to find files of a type (route, controller, service, apiClient, component, test), or route to match Nest controller routes by substring/regex. |
| repo_indexA | Index local repositories: generate per-user external indexes and add them to the local catalog. Pass discover:true to find repository roots under the given paths first. Pass dryRun:true to discover and report without writing any indexes or catalog (read-only). Without dryRun this mutates the persistent local catalog, so it is not a pure read. |
| repo_searchA | Search indexed local repositories by path, domain, kind, route, imports, exports, and symbols. Omit query to list the local repository catalog instead. Searches the repository at |
| context_packA | Generate a task-aware local context packet with primary files, related files, tests, and validation commands. Deterministic by default; online:true also asks a read model for the request's intent and which candidate files it needs, reported under modelRead. |
| change_impactA | Given a plain-English change request, rank the files most likely to own the change, with risk flags, suggested tests, and an implementation plan. Optional diff base surfaces exact changed-file evidence alongside the heuristic. When the repository's .solumberc.json lists companions, companions also carries the top few files each companion repository would own for the same request. |
| agent_experienceA | Score Agent Experience (AX): a single 0–100 number answering "how cheap and safe is it for an agent to make this change here?", blending Changeability (token cost), Containment (blast radius), Guardrails (tests / validation / CODEOWNERS / CI), and Clarity (task groundedness). Returns sub-scores, drivers, and concrete recommendations for raising AX. |
| model_routeA | Recommend a model tier (cheap, mid or premium) for a coding request before any work starts. Combines solumbe's deterministic repository half (AX, containment, top-severity risk paths) with a System One model's calibrated read of the request (specificity, blast radius, novelty). The model is called only when TYPESAFE_API_KEY is set in this server's environment and offline is not true; otherwise the read is a labelled offline estimate, and model.source says which. Advisory: it recommends a tier and never feeds review_gate or review_verdict. Pass host to map the tier to that host's model id. |
| convergence_scoreA | Score convergence: a deterministic 0–100 measure of the distance between a stated task (intent) and the actual git diff (execution), with sub-scores for Coverage (did the intent happen?), Scope (did only the intent happen?), and Risk alignment (did unrequested drift land on risk-sensitive paths?). No model. A task that predicts no owner file is band inconclusive, with no score. Emits a recomputable receipt (a hash anyone can regenerate). Requires a base git ref to diff against; scores the working tree's tracked changes unless head or staged selects an exact subject. |
| review_gateA | Gate a change for merge and return a PASS / WARN / FAIL verdict. Omit pr to run the local, no-GitHub gate against a base ref (changed files, secret safety, risk-sensitive paths, release discipline, validation commands, dependency audit, policy profile). Set pr to gate an open GitHub PR via |
| review_verdictA | Run the full review pipeline in one shot: change_impact plus review_context plus review_gate, returning a unified verdict with a derived confidence score. When the repository's .solumberc.json lists companions and a request is given, impactSummary.companions names the top few files each companion repository would own for that request. Use review_verdict when you want the complete picture of a change in a single call. Use review_context instead for diff metadata only (no verdict), or review_gate for the gate verdict alone. |
| workspace_reportB | Generate a product-level report across multiple related repositories. |
| review_contextA | Produce PR review context from local git diff metadata, optionally enriched with GitHub PR comments. Use review_context when you want the raw diff/comment context for a change, not a verdict. Use review_verdict instead for the full impact + review + gate composite, or review_gate for the gate verdict alone. |
| repo_harnessA | Generate setup, validation, runtime, and context commands for an agent or CI harness. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
The descriptions do heavy lifting with explicit cross-references (review_verdict = change_impact + review_context + review_gate; use review_context for diff only, etc.), but real overlaps remain: change_impact and context_pack both rank files for a task, repo_map and repo_search both narrow by domain/kind/route, and repo_inspect versus repo_map both profile repository shape. An agent can usually sort it out from the text, but several boundaries require reading before choosing.
Everything is snake_case and grouped with sensible prefixes (repo_*, review_*), which keeps it predictable. However the internal pattern mixes verb_noun (repo_inspect, review_gate) with noun_noun (convergence_score, agent_experience, workspace_report) and a noun_verb outlier (context_pack), so naming is not a clean single convention.
14 tools sits comfortably in the well-scoped range and each tool maps to a recognizable step in the repo-analysis/review lifecycle. It is arguably one or two tools heavier than needed given the composite tools already bundle sub-capabilities, but nothing feels gratuitous.
The surface covers the full arc: index, inspect, map, search, context packing, impact, gating, verdict, convergence scoring, model routing, and multi-repo reporting, plus a harness generator. Missing pieces are minor for an analysis-focused server (no direct file-read or doc/comment-fetch tool), and these are workarounds rather than blockers.