Skip to main content
Glama

topos_evaluate_project

Score every supported source file in a project across simple, composable, secure, and navigable quality dimensions, with a project rollup that surfaces the weakest file per dimension.

Instructions

Recursively score every supported source file in a directory on the SIMPLE / COMPOSABLE / SECURE / NAVIGABLE lattice, with a project rollup (side-effecting). Autodetects all supported languages (Python, Rust, JavaScript, TypeScript, C++, Go) in one walk — no language argument — and skips unsupported files. The rollup takes the project-wide minimum per dimension (weakest file floors it). Returns page-global named lists (hard_fails, leaf_composable_zeros, maintainability_giants) plus a paginated per-file table (gate failures first); page with limit / offset. Unless no_composable is set, generates/refreshes .gitnexus when missing or stale before scoring, same as topos_evaluate_file and the CLI's topos evaluatecoupling_available/warnings explain it when that isn't possible, without failing the evaluation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory to evaluate, walked recursively. Must resolve inside the trusted file root; paths outside it are refused. All supported languages are autodetected — no language argument is needed.
allowNoDangerous-call patterns to acknowledge for this run only.
limitNoPer-file rows to return per page (1–500, default 25).
offsetNoZero-based row offset for pagination; pass the response's `next_offset` to fetch the next page.
verboseNoWhen true, include each file's raw metric values alongside scores.
preferencesNoOptional ranking of simple/composable/secure (best first). The top-ranked generator sets scorer priority; omit to default to SIMPLE priority.
gitnexus_dirNo`.gitnexus` store under the MCP file root (default: `<file root>/.gitnexus`). Freshness and regeneration always use the file root as the project root; this only selects the store path inside it. If missing or stale, this tool generates/refreshes first (see `no_composable`). If generation isn't possible, COMPOSABLE is reported as unavailable rather than failing the whole evaluation.
no_composableNoSkip GitNexus detection/generation; score SIMPLE/SECURE/NAVIGABLE only, exactly like a missing `.gitnexus` did before this tool started generating it automatically.
include_security_findingsNoWhen true, attach per-file SECURE findings to each entry; off by default to keep responses compact.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, but the description goes far beyond that: it discloses the specific side effect of generating/refreshing `.gitnexus`, the behavior of skipping unsupported files, the rollup taking the project-wide minimum, and the graceful degradation when generation is not possible (`coupling_available`/`warnings`). This is exactly the kind of contextual detail that helps an agent predict side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense with five sentences, each addressing a distinct concern: main purpose, language autodetection, rollup semantics, return values/pagination, and side-effect behavior. It is front-loaded and free of filler, though the final sentence is long and packs multiple clauses. For a complex tool with 9 parameters, this density is warranted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explicitly naming the returned lists (`hard_fails`, `leaf_composable_zeros`, `maintainability_giants`) and describing the paginated per-file table with gate failures first. It also covers side effects, failure fallback, and parameter-triggered behavior. Together with the heavily documented schema, the description provides a complete operational picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description adds value by explaining how `no_composable` controls the .gitnexus generation workflow, how `limit`/`offset` drive pagination, and how `gitnexus_dir` relates to project-root behavior. This goes beyond the schema's per-parameter descriptions and links them to the overall execution model.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope: 'Recursively score every supported source file in a directory' on the four-dimension lattice. It explicitly lists supported languages, notes autodetection with no language argument, and distinguishes itself from file-level evaluation by referencing `topos_evaluate_file`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is for whole-directory evaluation and even mentions `same as topos_evaluate_file` for .gitnexus generation, which implicitly contrasts it with the file tool. However, it never explicitly states when to use this vs a sibling (e.g., 'use topos_evaluate_file for a single file'), so the guidance remains implied rather than directly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/Krv-Labs/topos'

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