Skip to main content
Glama

important_symbols

Rank the most load-bearing symbols in your codebase using weighted PageRank, auto-seeding from your current git diff or explicit symbols, so you can see the dependency spine to protect before editing.

Instructions

Rank the most load-bearing symbols by weighted PageRank over the call/type/import edge graph — what the rest of the code most depends on. Run before editing to see the spine you shouldn't reinvent or break. By DEFAULT (no personalize) it auto-seeds from your current git diff, returning importance relative to your current changes; pass personalize (names, refs, or sym_<hex> handles you're working on) to seed it explicitly, or a single "global" to force whole-repo PageRank. The result is a labeled object: mode (which scale), seed_source (seed provenance), and symbols.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax load-bearing symbols to return.
worktreeNoAbsolute path of the checkout to scope reads to — pass a linked worktree to read its branch overlay. Defaults to the server's working directory. A path that is not a linked worktree of this repo is silently ignored: results then come from the indexed checkout, with no error.
personalizeNoSymbols to bias importance toward (the symbols you're editing/querying) — names, refs (`path::name`), or `sym_<hex>` handles; the random surfer teleports back to these, lifting the spine *they* depend on. A `sym_<hex>` handle resolves to its logical symbol's members; otherwise the entry is resolved by ref then name (ambiguous/missing entries are skipped, never fatal). LEAVE EMPTY to auto-seed from your current git diff (the default — "importance relative to your current changes"). Pass a single `"global"` to force whole-repo PageRank instead.
Behavior4/5

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

With no annotations provided, the description correctly carries the full burden, and it delivers: it discloses the auto-seeding default from git diff, the teleport-bias semantics, silent skipping of ambiguous/missing entries ('never fatal'), the 'global' escape hatch, and even the exact return shape (mode, seed_source, symbols). It would only be perfect if it hinted at whether the results are deterministic or ordered beyond 'ranked', but for a read-only analysis tool this is exemplary disclosure.

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 long but earns its length: purpose, use-case, default behavior, customization, and output format are each covered in turn. The heavy em-dash usage makes it slightly dense to read, and the 'Result is a labeled object' section could be tightened, but every sentence carries unique information with no filler.

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

Completeness4/5

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

For a tool with 3 params, no output schema, and no annotations, the description covers all critical ground: it resolves the three-mode complexity, documents graceful degradation, and describes the top-level result structure. The only real gap is that with no output schema present, the shape of the `symbols` array elements is never described — for a ranking tool, knowing what fields each ranked symbol has would complete the contract.

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% with rich parameter docs already, which sets the baseline at 3, and the main description genuinely adds value on top by weaving the params into a coherent behavioral model (explaining what changing `personalize` actually does to the random-surfer teleportation and how the default differs from explicit input). Slightly redundant with the parameter descriptions themselves, but it earns the extra point by clarifying the interplay between modes.

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 uses a specific verb+resource+method: 'Rank the most load-bearing symbols by weighted PageRank over the call/type/import edge graph'. It goes beyond a plain definition by clarifying the outcome ('the spine you shouldn't reinvent or break') and disambiguating from sibling graph-traversal tools like find_callers or impact_surface through its emphasis on dependency importance rather than simple connectivity.

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 imperative 'Run before editing' provides clear, actionable timing for when to use the tool, and the three-fold mode explanation (diff auto-seed, explicit personalize, 'global') gives concrete usage context. However, it does not explicitly name alternatives to use instead (e.g., when to reach for impact_surface or symbol_lookup over this), leaving a small gap in the when-not-to guidance.

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/cq27-dev/rag-rat'

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