Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_codebase

Find code by concept, symbol, or path — hybrid codebase search.

For QUESTIONS ("how does X work", "where is Y handled", "why is Z like
this"), call get_answer instead: it runs this same hybrid retrieval
internally and synthesizes a cited answer, so a search_codebase call
before get_answer is a wasted round-trip. Use this tool directly when you
want the raw ranked hits themselves — enumerating matches, resolving an
identifier to a symbol_id, or scoping a later get_context call.

mode="auto" (default) routes the query: identifier-shaped queries search
the indexed symbols (returns symbol_id/file/line bounds — pipe into
get_symbol), path-shaped queries resolve files (pipe into get_context),
and conceptual queries ("rate limiting", "where do we handle webhooks")
run wiki-semantic search. Mixed natural-language + identifier queries run
hybrid (symbol hits first, then concept pages). Concept results carry
search_method ("embedding" or "bm25" fallback: verify those); decision
records rank below file pages unless the query is why-shaped.

Args:
    query: identifier, path, or natural-language query.
    limit: max results (default 5).
    page_type: file_page | module_page | symbol_spotlight (concept only).
    kind: implementation | test | config | doc (concept/symbol modes).
    repo: alias, or "all" for workspace-wide.
    mode: auto | concept | symbol | path | hybrid.
    symbol_kind: filter symbol hits by kind (function|class|method|...).
get_answer

Synthesised answer with citations and a calibrated trust signal.

The single entry point for questions: "how does X work" / "where is Y" /
"why is Z". It runs the full hybrid retrieval internally (no prior
search_codebase call needed) and answers in one round-trip.
confidence=high is content-grounded (value + citation-source + frame
gates): cite it directly, no verification Read needed. A "why" answer
whose named mechanism is absent from the retrieved source is downgraded
to medium (the rationale may be conflated). Low confidence returns
best_guesses with one-line justifications instead of an empty answer.
retrieval_quality separately rates the retrieval that fed synthesis.
When the answer names a function/method/class, ``symbol_bodies`` carries
its full live body — read that instead of a follow-up get_symbol.

Args:
    question: developer question.
    scope: optional path-prefix filter (e.g. "src/pkg/").
    repo: usually omitted.
get_change_riskA

Score a live commit or base..head range from its diff shape.

Use this for a pre-merge score of a commit or PR range. It is distinct from
``get_risk``, which assesses indexed files and PR blast radius. ``extensions``
restricts counted suffixes; ``exclude_patterns`` omits gitignore-style paths.
Both filters also apply to the baseline used for the repository percentile.

Prefer ``risk_percentile`` as the indicator of change risk: it ranks this
change against sampled recent commits in the same repository. Summarize it
with ``review_priority`` and ``classification``. ``score``, ``probability``,
and ``level`` are secondary corpus-calibrated context, the fallback only
when ``risk_percentile`` is unavailable.

``impacted_tests`` names the tests the per-test coverage map proves execute
the change's changed *lines* (line-precise, narrower than get_risk's
file-level ``tests_to_run``), with ``missing_tests`` buckets for changed
lines no test covers. Its ``status`` is ``no_map`` (unknown, run the full
suite), never "untested", when no map is ingested.

Args:
    revspec: Commit or ``base..head`` range to score. Defaults to ``HEAD``.
    repo: Repository alias in workspace mode; omit for the default repository.
    extensions: File suffixes to count, for example ``[".py", ".ts"]``.
    exclude_patterns: Gitignore-style paths to omit, for example ``["tests/", "*.md"]``.
    baseline: Recent commits to sample for percentile ranking; 0 disables it.
get_contextA

Triage card for files / modules / symbols — relationships, not source bytes.

Returns title, summary, signatures, hotspot bit, decision_record titles,
and symbol_ids to pipe into get_symbol (cheaper than Read for bodies).
Batch targets in one call. File targets above ~80 lines default to a
skeleton (every signature + top-PageRank bodies, with a verified flag —
a fraction of Read cost); ``mostly_full`` marks files where a direct
Read costs little more.

Args:
    targets: file paths, module paths, or "path::Symbol" ids.
    include: opt-in blocks: full_doc | ownership | last_change | callers
        | callees | metrics | community | decisions | skeleton.
    compact: default True; False adds structure+imports+docstrings.
    repo: usually omitted.
get_dead_codeA

Unused exports, unreachable files, zombie packages — tiered by confidence.

Run before a cleanup sprint, not a targeted fix. Findings tier
high/medium/low with per-directory and per-owner rollups; workspace
mode lowers confidence on findings other repos import.

Args:
    repo: usually omitted.
    kind: unreachable_file | unused_export | unused_internal | zombie_package.
    min_confidence: floor, default 0.5 (0.7 = cleanup-ready only).
    safe_only: deletion-ready findings only (no runtime-load risk).
    limit: max findings per tier (clamped to 25).
    tier: "high" (>=0.8) | "medium" | "low".
    directory: path-prefix filter.
    owner: primary-owner filter.
    group_by: "directory" | "owner" rollup.
    include_internals: also scan private symbols (more false positives).
    include_zombie_packages: monorepo package findings (default true).
    no_unreachable: skip file-level reachability findings.
    no_unused_exports: skip public-export findings.
get_healthA

Code-health scores and findings — self-check a file before/after editing.

No ``targets`` → repo dashboard (KPIs, worst files, ``high_leverage_files``
ranked by ``weighted_deficit`` = the files that actually move the repo
average). With ``targets`` → per-file scores + findings for those paths.

Three co-equal dimensions per file: ``score`` (defect risk, the headline),
``maintainability_score`` (readability/change-cost smells), and
``performance_score`` (static I/O-in-loop / N+1 RISK, high-precision /
low-recall, never blended into the defect headline). Each finding carries
its ``dimension``; a performance finding's ``details`` name the
``boundary_kind`` (db/network/filesystem/subprocess/lock) and, for
cross-function N+1, the caller→sink ``path``.

Args:
    targets: file paths or ``module:<name>``. Empty → dashboard mode.
    include: opt-in blocks (default stays lean): ``biomarkers`` (findings
        in dashboard mode) | ``refactoring`` (deterministic suggestion per
        finding) | ``trend`` | ``coverage`` | ``accuracy`` (does the score
        rank the buggy files first) | ``signals`` (per-file churn/owners/
        degree, targeted mode) | ``churn_complexity`` (danger-zone
        quadrant) | ``performance``/``defect``/``maintainability``
        (filter findings to one dimension).
    repo: usually omitted.
    limit: max rows in ranked lists (capped at 50).
get_overviewA

Architecture map for an unfamiliar repo — first call when you don't know your way around.

Returns the synthesised overview plus key modules, entry points, repo-wide
git health (hotspot count, churn trend, bus-factor distribution), the
knowledge map (top owners, knowledge silos), and the community summary.
Skip this on subsequent calls — once you have the map, jump straight to
``get_context`` / ``get_answer``.

Compact by default: ``content_md`` carries only the overview essay's summary
section — the rest of the essay repeats ``key_modules`` / ``entry_points`` /
``architecture.layers``. Pass ``include=["content"]`` for the full essay.

In workspace mode:
- Omit ``repo`` for the default repo's overview plus a workspace footer.
- ``repo="all"`` returns the cross-repo topology (co-changes, package deps,
  API contracts) — no single-repo detail.
- ``repo="<alias>"`` targets one specific repo.

Args:
    repo: Repository alias, path, or ID. Use ``"all"`` for workspace overview.
    include: Opt-in extras. ``"content"`` returns the full overview essay in
        ``content_md`` instead of the compact summary section.
list_repos

List repos available through this MCP server.

In workspace mode this returns every configured workspace repo alias. Use
those aliases as the ``repo`` parameter on workspace-aware tools.
get_riskA

What history says about touching these files — churn, owners, blast radius.

Fuses git temporal signals (churn percentile, trend, bus factor) with
graph topology (dependents, co-changes, impact surface) and security
findings. Consult before editing 95th+ churn-percentile files. Pass
changed_files for PR mode: the response leads with a directive block
(will_break, missing_cochanges, missing_tests, tests_to_run) — read it
first. tests_to_run is coverage-backed: the tests the per-test map proves
exercise the changed files, empty when no coverage map is ingested.
To score a live commit or ``base..head`` diff by revspec instead of file
paths, use ``get_change_risk``.

Args:
    targets: file paths to assess.
    repo: usually omitted.
    changed_files: PR-changed files for blast-radius mode.
get_symbolA

Read one function/class/constant with live-verified line bounds.

Raw source of one indexed symbol, bounded (~600 lines) — cheaper than
Read+offset math. ``source`` uses Read's exact line-numbered format;
treat it as an already-performed Read. ``verified: true`` = bounds
checked (or corrected) against the live file: no follow-up Read needed.
``bounds: "approximate"`` = the symbol moved and re-location failed.
An ambiguous id (overloads, re-exports) returns ALL matching bodies in
``candidates`` — none is silently chosen. Also serves live range reads
("path.py:140-180", ≤200 lines, always verified) and omission refs
("repowise#<12-hex>"). Index misses grep the live file and return
fallback_lines instead of a dead end. When ``truncated`` is true the
response carries a ``continuation`` token — the exact range read that
fetches the remainder; pass it straight back to get_symbol.

Args:
    symbol_id: "path/to/file.py::Name" (from get_context),
        "path/to/file.py:140-180" for a live range, or an omission ref.
    context_lines: extra lines before/after (0-50).
    repo: usually omitted.
    query: omission refs only — regex/substring filter on lines.
    id: accepted alias for ``symbol_id`` — the tool table documents this
        tool as ``get_symbol(id)``, so ``id=`` is the natural call and is
        forgiven here rather than met with a hard argument error.
get_whyA

Why this code is shaped this way — decision records + evidence commits.

Call before refactors or pattern divergences. Query modes: a question
("why is auth using JWT?"), a file path (governing decisions + origin
story + alignment score), a question anchored to targets, or no query
(decision health dashboard). Falls back to git archaeology when no
decisions exist for a path — never empty.

Args:
    query: question, file/module path, or omit for the dashboard.
    targets: optional file paths to anchor the search.
    repo: usually omitted.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/repowise-dev/repowise'

If you have feedback or need assistance with the MCP directory API, please join our Discord server