Skip to main content
Glama

๐Ÿ”ฅ GeniusMCP

Quality-aware code intelligence that turns GitHub search into ranked, explainable, import-ready recommendations.

Node 20+ Tests License MIT MCP

Not another grep. An intelligence layer.

Quick Start ยท How It Works ยท Soul ยท Tools ยท Architecture

GeniusMCP in action


The Problem

Every code search tool answers "where is this string?"

None of them answer "what is the best implementation, why, and can I safely use it?"

When you ask genius.hunt("retry with backoff"), GeniusMCP returns:

Archetype 1 โ€” Minimal inline helper
  โœ… 12 LOC, zero deps, copy-paste ready
  Exemplar: owner/repo โ€” score 0.87 (battle_tested)
  Why: test-adjacent, MIT license, 3 years stable

Archetype 2 โ€” Configurable utility
  โœ… Options-driven, max attempts + jitter strategy
  Exemplar: owner/repo2 โ€” score 0.82
  Why: 14K stars, active maintenance, comprehensive docs

Archetype 3 โ€” Middleware pattern
  โœ… Express/Fastify compatible, interceptor-based
  Exemplar: owner/repo3 โ€” score 0.79
  Tradeoff: framework-coupled

Coverage: 3 sources searched, 2 blind spots, confidence: 0.83

That's the gap GeniusMCP fills.


Related MCP server: Smart Code Search MCP Server

โœจ Key Features

Feature

What it does

๐ŸŽฏ Archetype Search

Finds 3-5 structural families, not 200 raw matches

๐Ÿ“Š 6-Bucket Quality Scoring

queryFit ยท durability ยท vitality ยท importability ยท codeQuality ยท evidenceConfidence

๐Ÿ” Multi-Source Discovery

grep.app (free, 1M repos) + GitHub Code Search (200M repos) + searchcode (75B lines)

๐Ÿงฌ 3-Level Dedup

Exact SHA โ†’ normalized AST hash โ†’ winnowing fingerprint families

๐Ÿ“œ Provenance-First Import

License gate ยท dependency closure ยท policy checks ยท attribution

๐Ÿง  Persistent Memory

Every search enriches local evidence graph. Session 50 is smarter than session 1.

๐Ÿช Auto-Capture Hooks

Claude Code hooks capture patterns from every file you read/write

๐Ÿ’‰ Pre-Prompt Injection

Relevant memories injected BEFORE the AI responds

๐Ÿ—๏ธ 7 Archetype Categories

minimal ยท configurable ยท middleware ยท context-aware ยท distributed ยท enterprise ยท wrapper

๐Ÿ“‹ Transparent Uncertainty

Every result shows blind spots + evidence confidence

โšก Tiered Responses

L1 (80 tokens) / L2 (300) / L3 (2000) โ€” adaptive detail level per result count

๐Ÿ›ก๏ธ Circuit Breakers

Per-source fault isolation: GitHub/grep.app/searchcode fail independently

๐ŸŽฐ Thompson Sampling

Multi-armed bandit learns which sources produce best results per query type

๐Ÿ”ค SAC Matching

getUserSession finds get_user_session โ€” cross-convention identifier similarity

๐Ÿ“ฆ Signature Compression

Repomix-style 70% token reduction โ€” strips bodies, keeps signatures

๐Ÿ” Dynamic Discovery

forge_discover("search code") โ€” find tools by intent, not memorize 28 names


๐Ÿ† Why GeniusMCP

GitHub MCP

grep.app MCP

DeusData

GeniusMCP

Multi-source search

1 source

1 source

local only

3 sources

Quality scoring

no

no

no

6-bucket

License verification

no

no

no

yes

Import with provenance

no

no

no

yes

Persistent memory

no

no

knowledge graph

Bayesian + decay

Cross-convention matching

no

no

no

SAC algorithm

Fault tolerance

no

no

no

circuit breakers

Token efficiency

no

no

no

L1/L2/L3 tiers


๐Ÿš€ Quick Start

# 1. Clone and install
git clone https://github.com/geniussigmaskibidi-gif/geniusmcp
cd geniusmcp && pnpm install && pnpm build

# 2. Optional: GitHub auth (enables GitHub Code Search + metadata)
export GITHUB_TOKEN=ghp_your_token

Add to Claude Code (.mcp.json in your project root)

{
  "mcpServers": {
    "forgemcp": {
      "command": "node",
      "args": ["/path/to/forgemcp/apps/mcp-server/dist/index.js"],
      "env": { "GITHUB_TOKEN": "ghp_your_token" }
    }
  }
}

Server auto-indexes your project on start. code.reach, code.map, code.symbols work immediately.

Optional: Claude Code Hooks (auto-capture + injection)

{
  "hooks": {
    "PostToolUse": [
      { "matcher": "Read|Write|Edit", "command": "node hooks/genius-capture.js" }
    ],
    "UserPromptSubmit": [
      { "command": "node hooks/genius-inject.js" }
    ]
  }
}

๐Ÿ’ก Usage Examples

Find the best implementation of a concept

You: "Find me a good rate limiter implementation"
Agent calls: genius.hunt("rate limiter", language: "typescript", tier: "L1")
โ†’ 5 ranked archetypes in 130 tokens, with stars/license/test signals

Import code with license verification

You: "Import that circuit breaker from the best result"
Agent calls: import.extract("owner/repo", "src/circuit-breaker.ts", symbol: "CircuitBreaker")
โ†’ Full code + MIT license verified + provenance hash + attribution comment

Compare approaches across repos

You: "Should I use Zod or Ajv for validation?"
Agent calls: research.deep_compare("validation", ["colinhacks/zod", "ajv-validator/ajv"])
โ†’ Side-by-side: Zod 42K stars vs Ajv 14K, both MIT+CI, structured quality signals

Remember and recall across sessions

Session 1: genius.hunt("retry backoff") โ†’ auto-stores top 3 results
Session 2: memory.recall("retry") โ†’ instant recall, no API calls needed

Explore unfamiliar repository

You: "How does Hono handle errors?"
Agent calls: research.archaeology("honojs/hono", "error handling")
โ†’ Found .onError() handler, JWT error middleware, 29K stars, TypeScript

Read soul.md for the complete AI agent reasoning guide โ€” search strategies, anti-patterns, and token budget optimization.


๐Ÿ”„ How It Works

graph TD
    Q["genius.hunt('retry backoff')"] --> C[QueryCompiler]
    C --> |grep.app queries| G[grep.app MCP]
    C --> |GitHub queries| GH[GitHub Code Search]
    C --> |hydration queries| SC[searchcode.com]

    G --> D[Dedup Engine]
    GH --> D
    SC --> D

    D --> |"180 hits โ†’ 60 blobs"| E[Symbol Extractor]
    E --> F[Winnowing Fingerprint]
    F --> |"60 โ†’ 8 families"| CL[Archetype Classifier]
    CL --> R[Quality Scorer]
    R --> |"6-bucket ranking"| OUT["3-5 ranked archetypes<br/>with explanations"]

    OUT --> MEM[(Evidence Graph<br/>SQLite)]
    MEM --> |"next search: instant recall"| Q

The Magic Loop

Session 1: "Find best rate limiter" โ†’ searches 3 sources โ†’ 60 unique blobs โ†’ 5 archetypes
           โ†’ Results cached in evidence graph

Session 2: "Rate limiter for Express" โ†’ local memory: 40 instant hits + 20 new
           โ†’ Faster, smarter, more relevant

Session 10: "Throttle middleware" โ†’ 120 cached patterns, <100ms response
            โ†’ Compound intelligence

๐Ÿ› ๏ธ Tools (28 MCP Tools)

๐ŸŽฏ Hunt Intelligence (flagship)

Tool

Description

genius.hunt

Find best implementations with archetype clustering, quality scoring, coverage report

genius.explain

Full signal breakdown: why this ranked #1

genius.compare

Head-to-head comparison with bucket deltas

genius.import

Policy-aware import with provenance manifest

๐Ÿง  Memory (compound intelligence)

Tool

Description

memory.recall

Search past patterns by concept

memory.store

Save pattern to persistent memory

memory.evolve

Create improved version linked to parent

memory.related

Find connected patterns

memory.link

Create relationships between patterns

memory.stats

Memory size, coverage, confidence distribution

memory.forget

Remove outdated patterns

๐Ÿงญ Code Navigation (1 call = 10 Read/Greps)

Tool

Description

code.reach

Jump to symbol with full context: callers, callees, deps

code.map

Instant project architecture map

code.trace

Call chain between functions

code.understand

Compressed module understanding

code.symbols

All exports with signatures

๐Ÿ”ฌ Research (persistent reasoning chains)

Tool

Description

research.archaeology

Trace code evolution

research.deep_compare

Structured comparison with metrics

research.start_chain

Begin research thread

research.add_step

Record reasoning step

research.conclude

Mark chain completed

research.recall_chain

Search past research

๐Ÿ™ GitHub

Tool

Description

github.search_repos

Search by query, language, stars

github.search_code

Code search across GitHub

github.repo_overview

Stars, CI, license, health

github.repo_file

Get file content

github.repo_tree

Recursive file tree


๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   GeniusMCP Server                   โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 1: DISCOVERY                                 โ”‚
โ”‚    grep.app MCP ยท GitHub Code Search API            โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 2: HYDRATION                                 โ”‚
โ”‚    GitHub Trees/Contents ยท searchcode analysis      โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 3: EVIDENCE GRAPH                            โ”‚
โ”‚    SourceHit โ†’ Blob โ†’ SymbolSlice โ†’ PatternFamily   โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 4: PATTERN INTELLIGENCE                      โ”‚
โ”‚    3-level dedup ยท archetype classifier ยท scorer    โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 5: IMPORT & POLICY                           โ”‚
โ”‚    License gate ยท provenance ยท dep closure          โ”‚
โ”‚                                                     โ”‚
โ”‚  Layer 6: EVALUATION                                โ”‚
โ”‚    Coverage confidence ยท blind spots ยท metrics      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Quality Scoring (RFC v2)

overall = 0.35 ร— queryFit + 0.50 ร— qualityComposite + 0.15 ร— evidenceConfidence

qualityComposite = weights[preset] ร— {durability, vitality, importability, codeQuality}

Presets: battle_tested ยท modern_active ยท minimal_dependency ยท teaching_quality

Hard caps: snippet_only โ†’ evidence โ‰ค 0.60 ยท archived โ†’ vitality โ‰ค 0.20 ยท license_unknown โ†’ importability โ‰ค 0.20


๐Ÿ“ฆ Monorepo Structure

forgemcp/
  packages/
    core/              โ€” Types, config, errors (Zod-validated)
    db/                โ€” SQLite WAL, blob store, search index, evidence graph
    ast-intelligence/  โ€” Symbol extraction, call graph, architecture detection
    repo-memory/       โ€” Bayesian confidence + Ebbinghaus decay engine
    github-gateway/    โ€” Octokit + 4-bucket rate governor + ETag cache
    data-sources/      โ€” grep.app + searchcode + source orchestrator
    hunt-engine/       โ€” Winnowing, clustering, scoring, archetype classifier
    importer/          โ€” License policy + provenance + style adaptation
  apps/
    mcp-server/        โ€” MCP server + 5 skill modules + hook daemon + dynamic tools
  hooks/               โ€” Claude Code auto-capture scripts
  tests/               โ€” 252 tests (vitest)
  .github/workflows/   โ€” CI (Node 20/22, build + typecheck + test)

๐Ÿงช Testing

npx vitest run
# 22 test suites, 252 tests, all passing (<1s)

Suite

Tests

What it covers

foundation

19

ForgeResult, Logger, Health, Context

blob-store

10

Content-addressable storage, dedup, file refs

blob-lifecycle

11

GC, pinning, integrity scrub

symbol-extractor

13

TypeScript, Python, Go extraction + fingerprinting

parser-registry

6

Multi-backend precision routing

search-index

4

FTS5 trigram, BM25, RRF fusion

simhash

14

Near-duplicate detection, Hamming distance

chunker

8

Semantic code chunking, symbol boundaries

query-planner

14

Query classification, lane planning

ranking-v2

13

BM25F weights, retrieval scoring, lexical+structural

memory-engine

15

Store, recall, capture, Bayesian confidence, Ebbinghaus decay

memory-v2

6

L1/L2/L3 capsule builder, token estimation

call-graph

9

2-pass resolution, BFS reachability, path tracing

winnowing

12

Fingerprints, Jaccard similarity, clone clustering

policy-engine

11

4-mode import policy, license gates, provenance

evidence-graph

8

v2 schema: query runs, slices, families, versioned scores

job-queue

10

Durable job queue, priority, backoff, dead-letter

circuit-breaker

19

Circuit breaker state machine, bulkhead, resilient search

token-budget

22

Token estimation, tier selection, truncation, compression

source-selector

5

Thompson Sampling, convergence, discounting

early-terminator

6

Welford online stats, adaptive saturation

sac

17

Subword Affine Canonicalization, cross-convention matching


๐ŸŽฏ Design Principles

  1. Evidence, not opinions โ€” every score has signals you can inspect

  2. Local-first โ€” works offline for indexed repos

  3. Zero ML in core โ€” lexical + structural, semantic is opt-in

  4. Provenance always โ€” every import traced to source + license

  5. Progressive learning โ€” every search enriches the evidence graph

  6. Transparent uncertainty โ€” blind spots shown, not hidden


๐Ÿ“Š Tech Stack

Component

Technology

Protocol

MCP SDK 1.28 (stdio + Streamable HTTP)

Database

SQLite (WAL mode, better-sqlite3)

Search

FTS5 trigram + BM25F + Reciprocal Rank Fusion

AST

Regex multi-language + ast-grep upgrade path

Dedup

Winnowing fingerprints (Schleimer 2003) + Jaccard clustering

GitHub

Octokit + throttling + retry + 4-bucket rate governor

External

grep.app MCP + searchcode.com

Validation

Zod

Resilience

Circuit breakers + bulkheads + decorrelated jitter

Ranking

SAC cross-convention matching + Thompson Sampling source routing

Token Efficiency

L1/L2/L3 tiered responses + signature compression

Tests

Vitest (252 tests, <1s)

Monorepo

pnpm + Turborepo


๐Ÿ“„ License

MIT


Built for AI agents that never forget.

Report Bug ยท Request Feature ยท Discussions

Available Tools

30 tools
code.mapC

Get instant project architecture map โ€” modules, dependencies, hot paths, entry point. Understands MVC, layered, microservices patterns automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoRoot path to analyze.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Instant' and 'understands MVC, layered, microservices patterns automatically' hint at speed and zero-config behavior, but it never discloses permissions, cost/scale limits on large repositories, or whether the scan touches the filesystem beyond reading.

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?

Two tight sentences with the primary output list front-loaded and the pattern-recognition capability appended. Little waste, though the trailing clause is slightly promotional.

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

Completeness3/5

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

For a read-oriented mapping tool with no annotations and no output schema, the description conveys what is returned at a high level (modules, dependencies, hot paths, entry point) but omits the shape/format of the map and any limits, leaving the agent only minimally equipped.

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

Parameters3/5

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

Schema description coverage is 100%, so the single 'root' parameter is already fully documented. The description adds no parameter semantics beyond that, which matches the baseline 3 for high-coverage schemas.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('project architecture map') and enumerates the concrete outputs (modules, dependencies, hot paths, entry point), so an agent knows exactly what it produces. It does not, however, distinguish itself from code-focused siblings like code.understand, code.symbols, or code.trace.

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

Usage Guidelines2/5

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

There is no explicit when-to-use, when-not-to-use, or named alternative. Given several overlapping code-analysis siblings (code.understand, code.reach, code.trace), the description leaves the agent to infer which one to pick. Only 'instant' hints at a speed-oriented use case.

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

code.reachA

Jump to any symbol โ€” returns definition, signature, callers, callees, deps in ONE call. Replaces 5-10 Read/Grep calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidates if name is ambiguous
scopeNoPath prefix to narrow search (e.g. 'src/auth/')
symbolYesSymbol name to find

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the returned content set (definition, signature, callers, callees, deps) and implies a read-only lookup, but says nothing about cost, rate limits, permission needs, or how ambiguous/truncated results behave.

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

Conciseness5/5

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

Two short, front-loaded sentences with no waste; the core capability comes first and the efficiency claim second. Every clause earns its place.

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?

With no output schema and no annotations, the description usefully summarizes the return payload and the reason to prefer it over raw Read/Grep. It is nearly complete for a 3-param lookup tool, only missing notes on ambiguity/limit handling and permissions.

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

Parameters3/5

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

Schema description coverage is 100%, so symbol, scope, and limit are already documented in the schema. The description adds no syntax, format, or default-behavior detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (jump to) and resource (any symbol) and enumerates the payload it returns: definition, signature, callers, callees, deps. An agent can distinguish it from read-only lookups like code.symbols or code.map, though it never explicitly names those siblings.

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

Usage Guidelines3/5

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

'Replaces 5-10 Read/Grep calls' implies the intended situation โ€” when you want full context on one symbol without multiple round trips โ€” but there is no explicit when-to-use/when-not and no named alternative among code.symbols, code.trace, code.understand, etc.

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

code.symbolsB

List all exported symbols (functions, classes, types) in a path scope with signatures

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scopeYesPath prefix (e.g. 'src/auth/' or 'src/')

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a meaningful behavioral trait โ€” only exported symbols are returned โ€” and states that signatures are included in the result, which is useful given the absence of an output schema. However, it says nothing about ordering, pagination/limit behavior, or what happens with an invalid or empty scope.

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?

A single front-loaded sentence with no filler; the core action and resource come first. It is perhaps slightly under-specified rather than over-long, which keeps it from being wasteful but also leaves gaps.

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

Completeness3/5

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

For a simple two-parameter read tool with no annotations and no output schema, the description conveys purpose, scope semantics, and return content adequately. It falls short on sibling differentiation and on limit/pagination behavior, which is the main missing piece.

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

Parameters3/5

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

Schema description coverage is 50%: 'scope' is documented in the schema and the description reinforces it as a path prefix, but 'limit' (default 50) is undescribed in both schema and description. The description adds the notion that scope is a path prefix and that results carry signatures, but does not compensate for the undocumented limit parameter.

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

Purpose4/5

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

The description gives a specific verb ('List') plus resource ('exported symbols (functions, classes, types)') scoped to a path, which is far more concrete than a name restatement. It does not, however, distinguish this from close siblings like code.map, code.trace, or code.understand, which an agent would need in order to choose correctly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the sibling tools (code.map, code.understand, code.reach) that a caller would compare against. Usage can only be inferred from the word 'List' and the path scope.

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

code.traceB

Trace a call chain from one function to another. Shows the shortest path through the call graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget function name
fromYesSource function name
maxDepthNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the traversal semantics (shortest path through the call graph), which is a real behavioral trait, but says nothing about the read-only nature, what happens when no path exists, or any depth/performance limits.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core operation and then the key behavioral detail. No filler and nothing redundant.

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

Completeness3/5

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

With no output schema and no annotations, the description is adequate to know the tool's job but thin on the details an agent needs: maxDepth semantics, no-path behavior, and read-only confirmation are all absent. It is minimally complete rather than fully complete.

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

Parameters3/5

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

Schema coverage is 67%: from and to are documented in the schema, while maxDepth has only a default and no description. The description adds no parameter detail and does not compensate for the undocumented maxDepth, so it neither helps nor hurts beyond the schema baseline.

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

Purpose4/5

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

The description states a specific verb (trace) and resource (call chain between two functions) and adds the algorithmic detail of shortest path over the call graph. It is clear on its own, but it never names or contrasts against closely related siblings like code.reach or code.map, so an agent cannot easily distinguish which tool to pick.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as code.reach or code.map. The agent must infer the context entirely from the one-line purpose.

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

code.understandA

Get compressed understanding of a file or directory โ€” purpose, key exports, data flow, dependencies, complexity hotspots. Replaces reading 10+ files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile or directory path to understand

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral burden. It discloses that the output is compressed and what it includes, and 'Get' implies a read-style operation, but it does not explicitly confirm that the tool is read-only or non-destructive, nor does it mention permissions, rate limits, or performance trade-offs. It adds some useful behavioral context beyond the schema, but key operational traits remain unstated.

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

Conciseness5/5

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

The description is two sentences with no filler: the first states the core value and the second quantifies the benefit. It is front-loaded with the most important information and every clause earns its place.

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 single-parameter read-oriented tool with no output schema, the description is nearly complete: it explains what the tool returns and why it is useful. It could be stronger by stating that it is read-only or by clarifying directory recursion behavior, but the core information an agent needs to invoke it correctly is present.

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

Parameters3/5

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

The schema already documents the single 'path' parameter at 100% coverage, including that it can be a file or directory. The description says 'a file or directory' but adds no format, syntax, or constraint details beyond what the schema already provides. The baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description gives a specific verb and resource: compressed understanding of a file or directory. It also enumerates the output categories (purpose, key exports, data flow, dependencies, complexity hotspots), making the tool's function clear. It does not, however, differentiate itself from sibling tools such as code.map, code.symbols, or code.trace, so an agent cannot fully separate them based on this description alone.

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

Usage Guidelines3/5

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

The phrase 'Replaces reading 10+ files' implies a usage context: use this instead of manually reading many files for an overview. However, the description does not explicitly state when to use this tool versus code.map, code.symbols, or code.trace, nor does it give any when-not conditions or prerequisites. Usage is therefore implied but not well specified.

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

forge_describeA

Get full input schema and usage example for a ForgeMCP tool. Call forge_discover first to find tool names.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesExact tool name from forge_discover

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the return content (full input schema and usage example) and the prerequisite parameter source, which is useful context. However, it does not describe error behavior for invalid tool names, response format, or any limitations, leaving meaningful gaps.

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

Conciseness5/5

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

Two tight sentences with no waste. The core action is front-loaded, followed immediately by the prerequisite, making it easy to scan and act on.

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?

The tool is simple, requires one parameter, has full schema coverage, and no output schema. The description states what is returned (schema and usage example) and how to obtain the required input, so it is complete enough for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents that 'tool_name' is the exact tool name from forge_discover. The description reinforces this prerequisite but adds no new parameter detail beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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 states a specific verb and resource: getting the full input schema and usage example for a ForgeMCP tool. It clearly distinguishes itself from the sibling forge_discover by explaining that discovery comes first. An agent can identify exactly what this tool returns without opening the schema.

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?

It gives clear context and a prerequisite: 'Call forge_discover first to find tool names.' This tells the agent when this tool is applicable. It does not explicitly name when not to use it or present alternative paths, so it falls short of a 5.

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

forge_discoverA

Search ForgeMCP capabilities by intent. Returns matching tool names with one-line descriptions. Example: forge_discover('find rate limiter code') โ†’ genius.hunt, genius.find_best

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat you want to do โ€” natural language

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It usefully states the return shape (matching tool names with one-line descriptions), but says nothing about result limits, ranking, or failure behavior. It is a read-only discovery operation by nature, so the safety profile is low-risk, but the disclosure is partial.

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

Conciseness5/5

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

Two tight sentences plus a one-line example, with the core purpose front-loaded and no filler. Every element contributes: purpose, return shape, and a concrete usage instance.

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?

There is no output schema, and the description compensates by explaining the return format (names plus one-line descriptions). Given the tool's simplicity (one required string parameter), this is close to complete; only result-volume or ranking behavior is unaddressed.

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

Parameters3/5

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

Schema description coverage is 100% for the single query parameter, so the baseline of 3 applies. The inline example ('find rate limiter code') illustrates the expected natural-language phrasing, adding mild value beyond the schema's own 'natural language' note.

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

Purpose4/5

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

The description states a specific verb (search) and resource (ForgeMCP capabilities) and further clarifies the intent-based search model, which is distinct from the lookup behavior of a sibling like forge_describe. It clearly conveys what the tool returns, but does not explicitly name or contrast with that sibling, so it falls just short of full differentiation.

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

Usage Guidelines3/5

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

The phrase 'search ... by intent' plus a concrete natural-language example gives implied usage guidance for when this tool applies. However, there is no explicit 'when to use this vs forge_describe' statement or any exclusion, leaving the routing decision to inference.

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

genius.explainB

Explain why a code result ranked where it did. Full signal breakdown with per-factor scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within repository
repoYesRepository (owner/name)
queryYesThe search query to score against
presetNobattle_tested
snippetNoCode snippet to analyze (if available)
languageNoLanguage of the code

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does add useful output context ('full signal breakdown with per-factor scores') in the absence of an output schema, and 'explain' implies a non-destructive read, but it omits any auth prerequisites, rate limits, or side effects that a no-annotation tool should ideally disclose.

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?

Two tight sentences with the core purpose front-loaded and zero filler. Efficient and readable, though it could be marginally denser by folding in the ranking context.

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

Completeness3/5

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

For a six-parameter tool, the description conveys what is returned (useful given no output schema) but says nothing about the preset enum's effect or how the input result should be supplied. Coverage is adequate but thin for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 83% (>80%), so the schema already documents five of the six parameters, including repo, path, query, snippet, and language. The description adds no parameter-level meaning (e.g., how 'preset' alters scoring), so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb ('Explain') and a defined resource ('why a code result ranked where it did'), and adds the deliverable ('full signal breakdown with per-factor scores'). An agent can grasp the purpose quickly, though it never names or contrasts the closely related sibling genius.find_best, so differentiation is left to inference.

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

Usage Guidelines3/5

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

Usage is only implied: the tool is clearly meant to be applied to an already-ranked code result, but there is no explicit when-to-use, when-not-to-use, or pointer to the sibling that produces the ranking (genius.find_best). The agent must infer the workflow context.

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

genius.find_bestA

Find the best implementations of a concept across GitHub. Returns ranked archetypes with explanations, not raw search results. Example: genius.find_best('rate limiter', language: 'typescript')

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
presetNobattle_tested
conceptYesWhat to find (e.g. 'rate limiter', 'retry with backoff')
languageNoProgramming language filter
minStarsNoMinimum repo stars

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the return shape (ranked archetypes with explanations) and implicitly that this is a read-only lookup, but says nothing about rate limits, auth needs, latency, or result staleness.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, followed by the distinguishing output trait and a concrete call example. No filler; each sentence adds distinct information.

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

Completeness3/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 correctly covers the return shape, which is helpful. But for a 5-parameter tool it leaves the preset enum and result-set controls unexplained, so an agent cannot fully predict behavior for non-default invocations.

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

Parameters3/5

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

Schema coverage is 60%, and the description reinforces 'concept' and adds syntax for 'language' via the example. It does not explain the 'preset' enum values (battle_tested, modern_active, minimal_dependency, teaching_quality), which are undocumented in the schema and therefore opaque, nor the limit/minStars semantics.

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?

States a specific verb and resource ('find the best implementations of a concept across GitHub') and explicitly distinguishes the output from siblings ('Returns ranked archetypes with explanations, not raw search results'), which separates it from github.search_code/github.search_repos.

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

Usage Guidelines3/5

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

The example shows one invocation and implies use when you want curated, ranked implementations rather than raw code hits. However, it never states when to prefer this over github.search_repos or genius.hunt, nor any exclusions or prerequisites, so routing is left to inference.

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

genius.huntB

Find the best implementations of a concept across GitHub, grep.app, and searchcode. Returns ranked archetypes (not raw search results) with quality explanations. Example: genius.hunt('rate limiter', language: 'typescript')

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNofast: local+grep (<1.5s), balanced: full discovery (<6s), deep: wider hydrationbalanced
tierNoResponse detail level: L1=compact cards, L2=descriptions, L3=full code, auto=adaptiveauto
queryYesWhat to find: 'retry with backoff', 'rate limiter'
presetNobattle_tested
languageNoFilter by language
maxArchetypesNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the useful trait that output is ranked archetypes with quality explanations rather than raw hits, and identifies its data sources, but says nothing about permissions, latency, result limits, or how quality is judged. Adequate but incomplete for an unannotated tool.

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?

Three sentences, front-loaded with purpose, followed by a return-value clarification and a concrete example. Nothing is padded, though the example could arguably be folded into the schema or dropped for further tightness.

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

Completeness3/5

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

For a six-parameter discovery tool with no output schema, the description should explain returns more fully. It names the archetype concept but leaves 'quality explanations', the preset semantics, and cross-source aggregation behavior unspecified. Reasonable but with clear gaps given the tool's complexity.

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

Parameters3/5

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

Schema coverage is 67%, with mode and tier already self-documented in the schema and preset and maxArchetypes undocumented. The description adds only a single example using query and language, giving no meaning to the preset choices or maxArchetypes behavior. Roughly a baseline score given the schema does most of the work.

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

Purpose4/5

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

The description gives a specific verb ('Find'), an explicit resource ('best implementations of a concept'), and names the three sources (GitHub, grep.app, searchcode). It further distinguishes itself by stating it returns 'ranked archetypes (not raw search results)'. It does not, however, differentiate itself from the very similar sibling genius.find_best or github.search_code.

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

Usage Guidelines2/5

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

There is no explicit when-to-use, when-not-to-use, or alternative routing guidance. The parenthetical 'not raw search results' hints at a contrast with search tools, but the agent is left to infer when this beats genius.find_best or github.search_code. An example invocation is given but that is invocation syntax, not usage guidance.

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

github.compareC

Compare implementations from different repos side-by-side with quality breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
reposYesRepos to compare (owner/repo)
conceptYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does not state whether the operation is read-only, what 'quality breakdown' includes, whether authentication or rate limits apply, or how results are returned. Only the basic comparison action is disclosed.

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 a single front-loaded sentence with no filler, which is structurally efficient. However, it is arguably too terse for a tool with two required parameters and a nuanced comparison output.

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

Completeness2/5

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

Given no annotations, no output schema, two required parameters, and only 50% schema coverage, the description is not complete enough for reliable invocation. It omits parameter semantics and behavioral details needed to use the tool correctly.

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

Parameters2/5

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

Schema coverage is 50%: the 'repos' parameter is described, but the required 'concept' parameter has no schema description. The tool description does not compensate by explaining the meaning or expected format of 'concept', so agents must infer its role.

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

Purpose4/5

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

The description states a specific verb and resource: compare implementations from different repos side-by-side with quality breakdown. This is clear and distinguishable from general code search or repo overview tools. It does not explicitly name sibling alternatives, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as github.search_code, github.repo_overview, or research.deep_compare. Usage is only implied by the word 'Compare', and no prerequisites or exclusions are provided.

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

github.repo_fileC

Get file content from a GitHub repo

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoBranch, tag, or commit SHA
pathYesFile path within repo
repoYesowner/repo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but only says it retrieves content. It omits whether auth is required, whether it works on private repos, how binary/large files are handled, and encoding or truncation behavior โ€” meaningful gaps for a file-fetch tool.

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?

A single front-loaded sentence with no waste. It is efficient, though its brevity borders on under-specification given the missing behavioral and usage detail.

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

Completeness2/5

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

With no annotations and no output schema, the description is the only place behavioral context could live, yet it provides essentially none. For a read tool with three parameters and a rich sibling set, more detail about return format and behavior would be expected.

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

Parameters3/5

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

Schema description coverage is 100% (repo='owner/repo', path='File path within repo', ref='Branch, tag, or commit SHA'), so the schema already documents all three parameters. The description adds no further meaning, which is the baseline expectation when coverage is complete.

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

Purpose4/5

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

States a specific verb (Get) and resource (file content) scoped to a GitHub repo, which is clear and actionable. However, it does not differentiate itself from siblings like github.repo_tree or github.repo_overview, leaving the agent to infer that this fetches contents rather than metadata or listings.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus github.repo_tree (to list files) or github.search_code (to find content). No prerequisites or conditions are stated, so selection among the tight github sibling set is left entirely to inference.

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

github.repo_overviewC

Get comprehensive repo intelligence: stars, health, CI, topics, license

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/repo format

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only aggregation but says nothing about auth requirements, rate limits, latency, or whether the data is cached/live. For a tool with zero annotation coverage this is a notable gap.

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?

A single front-loaded sentence with a compact colon-list of returned fields; every token earns its place. It is efficient, though terse enough that it sacrifices some clarifying context for brevity.

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

Completeness3/5

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

The tool is low complexity (one required param) and has no output schema, so enumerating returned fields (stars, health, CI, topics, license) partially compensates. Still, with no annotations and no output schema, the description leaves behavior and return shape only partially covered.

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

Parameters3/5

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

The single 'repo' parameter is fully documented in the schema (100% coverage, 'owner/repo format'), so the baseline is 3. The description adds no further meaning about the parameter, such as handling of private repos or org/repo variants.

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

Purpose4/5

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

States a specific verb and resource ('Get comprehensive repo intelligence') and enumerates the payload (stars, health, CI, topics, license), making its scope distinct from siblings like github.repo_file or github.repo_tree. It does not, however, explicitly contrast itself with github.search_repos or github.compare.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternatives. An agent can infer it is a per-repo aggregator, but the description never states when to reach for it over github.compare or github.search_repos.

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

github.repo_treeC

Get file tree of a GitHub repo (recursive)

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/repo
maxDepthNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, and it discloses only that traversal is recursive. It omits auth/permission requirements, whether private repos work, rate-limit or size concerns for large trees, and how maxDepth interacts with the advertised recursion. Note that 'recursive' is slightly misleading given a default maxDepth of 3.

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?

A single short, front-loaded sentence with zero filler; the verb and resource lead. It is efficient, though its brevity borders on under-specification, which is penalized under other dimensions.

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

Completeness2/5

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

For a tool with an undocumented non-obvious parameter, no output schema, and no annotations, this is too thin. There is no indication of return shape (paths? nested nodes?), size limits, or how maxDepth governs the result, leaving an agent to guess.

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

Parameters2/5

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

Schema coverage is 50%: 'repo' is documented as owner/repo, but maxDepth has no schema description and the description adds nothing about it. The word 'recursive' arguably implies depth control but never explains that maxDepth truncates traversal (default 3), so it does not compensate for the gap.

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

Purpose4/5

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

Specific verb + resource: 'Get file tree of a GitHub repo' clearly states it returns a directory structure. It contrasts implicitly with github.repo_file (single file) and github.repo_overview, but never names or distinguishes them explicitly, so an agent must infer the split.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as github.repo_file or github.repo_overview despite their presence as siblings. '(recursive)' hints at scope but not at when this is the right tool.

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

github.search_codeC

Search code across GitHub. Returns file matches with text fragments.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoScope to specific repo (owner/name)
limitNo
queryYes
languageNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it only hints at the return (file matches with fragments). It says nothing about authentication needs, rate limits, pagination, match ordering, or whether the search is exact vs fuzzy โ€” all material for a search tool.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and immediately followed by the key output detail. No filler or redundancy.

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

Completeness2/5

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

For a four-parameter search tool with no annotations, no output schema, and low schema coverage, the description is too thin. An agent gets the gist but lacks the query/filter semantics and behavioral context needed to invoke it confidently.

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

Parameters2/5

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

Schema coverage is only 25% (only 'repo' is documented), so the description should compensate. Instead it says nothing about query syntax, the repo filter, language filtering, the limit default/max, or that query is required, leaving three of four parameters unexplained.

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

Purpose4/5

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

States a specific verb and resource ('Search code across GitHub') and adds the return shape ('file matches with text fragments'), which lets an agent distinguish it from a repo-level search. It stops short of explicitly contrasting with siblings like github.search_repos or code.symbols, so it is clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the many adjacent tools (github.search_repos, code.symbols, code.reach). Usage is only implied by the verb 'Search code', with no context, prerequisites, or exclusions offered.

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

github.search_reposC

Search GitHub repositories by query, language, stars, topics

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNostars
limitNo
queryYes
languageNo
minStarsNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden, yet it only says what is searched. It does not mention authentication, rate limits, result ordering defaults, or pagination behavior for what is clearly a network-bound read tool.

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?

A single front-loaded sentence with the verb and resource first and no filler. Efficient, though the trailing 'topics' term is inaccurate and slightly muddies the concision.

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

Completeness3/5

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

For a fairly simple search tool with no output schema the description is minimally adequate, but with five undocumented parameters, no annotations, and no explanation of default sort or the 30-result cap, an agent lacks enough to invoke it optimally.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only gestures at query, language, and stars while omitting sort and limit entirely. It also advertises 'topics,' which is not in the schema, adding confusion rather than clarity.

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

Purpose4/5

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

States a specific verb (search) plus the resource (GitHub repositories) and its main filter dimensions, so the agent can distinguish it from github.search_code at a glance. The mention of 'topics' is slightly misleading since no topics parameter exists, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus github.search_code or github.repo_overview, and no prerequisites or conditions given. The description only restates capability, leaving selection entirely to inference.

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

import.extractA

Extract a function/module from a GitHub repo with provenance. License-checked, dependency-resolved, style-adapted. Returns ready-to-paste code with attribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoBranch/tag/commit
pathYesFile path in the repo
repoYesowner/repo
symbolNoSpecific function/class to extract
adaptStyleNoAdapt to your project's style

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose real behavioral traits beyond the schema: it license-checks, resolves dependencies, adapts style, and returns code with attribution. It stops short of stating auth requirements, failure modes (e.g. what happens when a license check fails), or whether the extraction is read-only/harmless.

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

Conciseness5/5

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

Three short, front-loaded sentences with zero filler; the core action and its differentiators are stated immediately and the return value is placed last. Every fragment earns its place.

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 5-parameter tool with no annotations and no output schema, the description covers the action, its transformation pipeline, and the shape of the return (ready-to-paste code with attribution). It is nearly sufficient, only missing failure/edge behavior and auth context.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters (ref, path, repo, symbol, adaptStyle) are already documented in the schema. The description only loosely alludes to adaptStyle ("style-adapted") and adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb ("Extract") and resource ("a function/module from a GitHub repo") and enumerates the tool's distinctive pipeline: provenance, license-checking, dependency resolution, style adaptation. It is clearly understandable on its own, though it does not name any sibling (e.g. github.repo_file or code.symbols) to differentiate itself explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: "Returns ready-to-paste code with attribution" suggests the use case of pulling external code into your project. There is no explicit when-to-use vs alternatives guidance, no mention of prerequisites (auth, rate limits), and no statement of when not to use it.

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

memory.evolveC

Create an improved version of an existing pattern (links to parent)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe improved code
parentIdYesID of the pattern to evolve
descriptionNoWhat changed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, and it is thin. It conveys that a new pattern is created and linked to a parent, but says nothing about whether the parent is modified, what permissions or auth are needed, or what the returned value contains.

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?

A single efficient sentence with the core action front-loaded. No waste, though it is perhaps too terse to carry the required behavioral context.

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

Completeness3/5

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

For a mutation tool with no annotations and no output schema, the description covers the essential action and relationship but omits side effects, permissions, and verification behavior. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents code, parentId, and description. The parenthetical '(links to parent)' adds marginal meaning to parentId, but nothing beyond the schema baseline.

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

Purpose4/5

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

States a specific verb ('Create') and resource ('improved version of an existing pattern'), and the parenthetical '(links to parent)' clarifies the relationship. It implicitly distinguishes from siblings like memory.store, but never names them directly.

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

Usage Guidelines2/5

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

No when-to-use guidance, no conditions distinguishing it from memory.store, memory.link, or memory.related, and no prerequisites or exclusions stated. The agent must infer that 'evolve' means creating a derived version rather than storing or linking an existing one.

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

memory.forgetA

Remove a pattern from memory (cascades to tags, links, embeddings)

ParametersJSON Schema
NameRequiredDescriptionDefault
patternIdYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that removal cascades to tags, links, and embeddings, which is valuable behavioral context. However, it omits critical details: whether removal is permanent or reversible, required permissions, and what happens if the pattern doesn't exist. The cascade hint is useful but insufficient for a destructive operation.

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

Conciseness5/5

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

A single, front-loaded sentence that efficiently conveys the core action and its cascading effect. No wasted words; the parenthetical adds essential context without bloat.

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

Completeness2/5

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

For a destructive operation with no annotations, no output schema, and 0% schema coverage, the description should do more. It lacks information on reversibility, error conditions, and permissions. The cascade hint is helpful but the definition remains incomplete for an agent to invoke this tool safely and confidently.

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?

With one parameter and 0% schema description coverage, the baseline is 4. The description doesn't add meaning to 'patternId' beyond what's implied by the tool's purpose, but with only one required parameter of type integer, the schema is self-explanatory enough that no additional parameter guidance is strictly necessary.

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?

States a specific verb ('Remove') and resource ('a pattern from memory'), and the parenthetical clarifies the blast radius (cascades to tags, links, embeddings). This clearly distinguishes it from siblings like memory.store, memory.recall, and memory.evolve, which operate on different aspects of memory.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., memory.evolve might also modify patterns). It does not state prerequisites or conditions for use, leaving the agent to infer usage from the name alone.

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

memory.recallC

Search code memory for patterns, solutions, and insights from past sessions

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
queryYesWhat to search for
languageNoFilter by language
minConfidenceNoMinimum confidence threshold

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only search but says nothing about how results are ranked, whether minConfidence affects ordering, whether this reads across all sessions or is scoped, or any auth/rate constraints โ€” a significant gap for a search tool.

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

Conciseness5/5

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

A single tightly-worded sentence that front-loads the verb and resource with zero filler. Appropriately sized for a simple search tool.

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

Completeness2/5

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

No output schema exists, so the description should ideally explain what a result looks like (e.g., pattern/insight objects with confidence scores, matched sessions), but it does not. Combined with zero annotations and no usage guidance, the definition is thin for a 4-parameter search tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the four parameters (query, limit, language, minConfidence) are all documented in the schema itself. The description adds no additional meaning beyond the schema, so it neither exceeds nor falls below the baseline.

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

Purpose4/5

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

The description states a specific verb (Search) and resource (code memory) and clarifies the content type returned (patterns, solutions, insights from past sessions). It distinguishes the tool's domain from retrieval-only siblings like code.* and github.*, though it does not name a specific sibling alternative.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as memory.related, memory.stats, or github.search_code, nor any stated preconditions or exclusions. The agent must infer usage purely from the purpose statement.

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

memory.relatedB

Find patterns related to a given pattern (by explicit links)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
patternIdYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It discloses the meaningful trait that results derive from explicit links only, not similarity. It is silent on return shape, ordering, and pagination behavior despite a limit parameter existing.

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?

A single efficient sentence with the verb and scope front-loaded; nothing is wasted. It errs toward terseness rather than padding, so conciseness itself is good.

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

Completeness2/5

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

With no annotations, no output schema, and 0% parameter coverage, the description should do more. It omits return format, ordering, and what 'related' means operationally, leaving real gaps for an agent invoking it.

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

Parameters2/5

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

Schema coverage is 0% for 2 parameters. The description implies the 'given pattern' input (patternId) but says nothing about the 'limit' parameter or its bounds (1-20, default 10). One of two parameters is left entirely unexplained by either schema or description.

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

Purpose4/5

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

States a specific verb ('Find') and resource ('patterns related to a given pattern'), and the parenthetical '(by explicit links)' scopes the operation to link traversal rather than semantic matching. This distinguishes it reasonably from siblings like memory.recall, though it does not name them directly.

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

Usage Guidelines3/5

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

Usage context is implied: the '(by explicit links)' qualifier tells the agent results come only from links previously created (e.g., via memory.link), suggesting when this is preferable to a semantic search. However, no when-to-use condition or named alternative (memory.recall, memory.link) is given explicitly.

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

memory.statsA

Show code memory statistics: size, coverage, top patterns

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden; 'Show' implies a non-mutating read, and it discloses what the payload contains (size, coverage, top patterns), which is genuinely useful. However it says nothing about read-only guarantees, scope, or freshness of the stats.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the returned fields are packed into the same line.

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?

With no parameters, no annotations, and no output schema, the description usefully enumerates the returned metrics. It is nearly self-sufficient, only missing a note on scope or refresh behavior.

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?

The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate.

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

Purpose4/5

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

States a specific verb ('Show') and resource ('code memory statistics') and enumerates the content (size, coverage, top patterns), which separates it from siblings like memory.recall or code.map. It does not explicitly name a sibling, so it falls just short of 5.

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

Usage Guidelines2/5

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

No guidance on when to reach for this versus memory.recall, code.map, or code.symbols, and no prerequisites stated. Usage is only implied by the word 'statistics'.

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

memory.storeC

Save a code pattern, solution, or insight to persistent memory

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe code itself
kindYes
nameYesPattern name
tagsNo
languageNo
signatureNo
sourcePathNo
sourceRepoNo
descriptionNo
sourceCommitShaNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations, so the description carries the full burden, yet it only asserts that storage is 'persistent'. It does not disclose overwrite/dedup behavior, key uniqueness on 'name', failure modes, or what happens when a pattern already exists. For a mutation-equivalent persistence tool this is a significant gap.

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?

A single well-formed sentence with the verb front-loaded and zero filler. Efficient, though its brevity is also the source of the coverage gaps rather than a sign of completeness.

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

Completeness2/5

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

A 10-parameter, 2-required persistence tool with no annotations and no output schema gets only one sentence. The agent lacks the information needed to populate the eight optional fields or to understand storage semantics and return behavior.

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

Parameters2/5

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

Schema description coverage is only 20%, so most of the 10 parameters (tags, language, signature, sourcePath, sourceRepo, sourceCommitSha, description, code) are undocumented. The description mentions three enum kinds ('pattern, solution, insight') but adds no format, required-field, or field-selection meaning beyond the schema.

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

Purpose4/5

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

States a specific verb ('Save') and resource ('code pattern, solution, or insight') plus the destination ('persistent memory'). It implicitly distinguishes itself from read-side siblings like memory.recall, but never explicitly names any alternative. Clear purpose, weak sibling routing.

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

Usage Guidelines2/5

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

No when-to-use guidance, no conditions, no exclusions, and no mention of alternatives such as memory.recall, memory.evolve, or memory.link. The agent must infer that 'store' is the write counterpart in the memory family.

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

research.add_stepC

Add a reasoning step to an active research chain. Records: what you searched, what you found, key insight, decision made.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYes
sourcesNoJSON: [{url, title}]
queryTextYesWhat was asked/searched
queryTypeYes
keyInsightNoThe non-obvious takeaway
resultFullNoFull output if needed
decisionMadeNoDecision resulting from this step
resultSummaryYesCompressed finding (<500 chars)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It implies a mutation (add) and a precondition (chain must be active), but does not disclose what happens on a non-existent/inactive chain, whether steps are immutable or editable, or any permission/rate constraints.

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?

Two short sentences, front-loaded with the core action and followed by a compact field list. Slightly redundant with the schema's field descriptions but no wasted prose.

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

Completeness3/5

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

For an 8-parameter mutation tool with no annotations and no output schema, the description covers purpose but omits error behavior, the meaning of chainId, and how queryType enum values should be chosen. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 75%, so most parameters are documented. The description loosely maps to queryText, resultSummary, keyInsight, and decisionMade, adding semantic framing, but the required chainId and queryType (and its enum) are not addressed. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('Add') and resource ('a reasoning step to an active research chain') and enumerates what the step records. It implicitly distinguishes itself from research.start_chain and research.conclude by operating on an already-active chain, though it doesn't name those siblings.

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

Usage Guidelines2/5

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

The phrase 'to an active research chain' implies a prerequisite, but there is no explicit when-to-use guidance or routing to alternatives like research.start_chain (to begin) or research.conclude (to finish). The agent must infer the workflow position.

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

research.archaeologyB

Trace how a concept evolved in a repo over time. Analyzes git commit history and code changes. No external AI required.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/repo
limitNoMax commits to analyze
aspectYesWhat to trace: 'error handling', 'auth flow', 'caching strategy'
pathHintNoNarrow to directory: 'src/auth/'

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the data source (git commit history, code changes) and that no external AI is required, which is useful context, but says nothing about read-only safety, permissions, cost/latency, or output format for a multi-commit analysis.

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?

Three short, front-loaded sentences with no filler. The second sentence ("Analyzes git commit history and code changes") is mildly redundant with the first but still clarifies mechanism.

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

Completeness3/5

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

Reasonable for a 4-param analysis tool with full schema coverage, but with no annotations and no output schema, the description should say more about what comes back (timeline, commit list, summary) or any bounds on the analysis.

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

Parameters3/5

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

Schema description coverage is 100%, so repo, limit, aspect, and pathHint are already documented in the schema, and the description adds no format or usage detail beyond them. Baseline 3 holds when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: "trace how a concept evolved in a repo over time", with git history and code changes as the mechanism. This is clearly distinct from generic siblings like code.trace or github.repo_overview, though no sibling is named explicitly to sharpen the boundary.

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

Usage Guidelines2/5

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

No when-to-use guidance, no conditions, and no alternatives named. The agent must infer that this is for historical/evolution questions versus a static code lookup in code.trace or code.map. Nothing routes it against the ~30 siblings.

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

research.concludeC

Mark a research chain as completed with final synthesis.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYes
conclusionYesFinal synthesis / decision

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but says nothing about whether the chain becomes immutable, whether it requires an existing chain, or whether it fails on an already-concluded chain. 'Mark as completed' hints at a state mutation but no consequences are disclosed.

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?

A single 9-word sentence with no waste and the key action front-loaded. It is efficient, though its brevity contributes to the gaps elsewhere.

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

Completeness2/5

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

For a terminal mutation tool with no annotations, no output schema, and incomplete parameter coverage, the description is too thin. It omits preconditions, state effects, and error behavior that an agent would need.

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

Parameters3/5

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

Schema coverage is 50%: the 'conclusion' parameter is documented in the schema, but 'chainId' is not. The description adds nothing about parameter formats or constraints, so it relies entirely on the schema's partial documentation.

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

Purpose3/5

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

States a verb and a resource ('mark a research chain as completed') with some scope ('final synthesis'), but it does not distinguish this from siblings like research.add_step or research.recall_chain beyond the word 'completed'. An agent could confuse it with simply adding a finishing step.

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

Usage Guidelines2/5

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

No when-to-use guidance, no mention of when not to call it, and no pointer to sibling tools such as research.add_step or research.recall_chain. The agent must infer the terminal nature of this operation.

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

research.deep_compareC

Deep comparison of implementations across repos. Returns structured metrics and quality signals for the calling LLM to reason about.

ParametersJSON Schema
NameRequiredDescriptionDefault
reposYes
conceptYes
languageNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations, so the description carries full burden. It mentions returning structured metrics and quality signals, but gives no detail on cost, latency, the 5-repo cap, or how deep 'deep' actually is. For an unannotated research tool, this is thin.

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?

Two compact sentences, purpose front-loaded. No redundancy, though it is arguably too short for the ambiguity it needs to resolve.

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

Completeness2/5

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

A multi-repo research tool with no annotations, no output schema, and 0% schema coverage whose description addresses none of the parameter or behavioral gaps. The agent is left under-informed on inputs, limits, and semantics.

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

Parameters1/5

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

Schema description coverage is 0% and the description mentions zero parameters. The agent gets no clue what concept or repos should contain, how language interacts, or that repos is capped at 5.

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

Purpose3/5

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

States the tool compares implementations across repos, which is a clear verb+resource. But it does not distinguish itself from siblings like github.compare or genius.find_best, leaving the agent to guess which comparison tool applies.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. With multiple sibling comparison tools (github.compare, genius.find_best), the description gives no signal for choosing this one.

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

research.recall_chainB

Search past research chains by topic. Answer questions like 'why did we choose Orama?' from stored reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesTopic to search: 'Orama vs Elasticsearch'

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only search over stored reasoning but says nothing about scope (all chains vs. current session), how many results are returned by default, ranking behavior, or what a result contains. For a recall tool with zero annotation coverage this is a meaningful gap.

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?

Two short sentences, front-loaded with the core action before the illustrative example. No filler. Slightly under-specified rather than verbose, but structurally sound.

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

Completeness3/5

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

With no output schema, no annotations, and one undocumented parameter, the description should say more about what a recalled chain looks like and how results are bounded. It conveys the retrieval intent adequately but leaves the agent guessing about return shape and scope.

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

Parameters2/5

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

Schema description coverage is 50%: the schema already documents 'query' with its own example, while 'limit' is entirely undocumented in both schema and description. The description's 'by topic' framing duplicates rather than extends the schema, and the accidental-looking overlap between the schema's 'Orama vs Elasticsearch' example and the description's question adds no new meaning.

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

Purpose4/5

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

States a specific verb and resource: 'Search past research chains by topic.' Clearly a read/lookup operation, which implicitly separates it from the research.start_chain / add_step / conclude write-side siblings. It stops short of naming sibling alternatives like research.archaeology, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

The worked example ('why did we choose Orama?') gives a concrete scenario, which is useful implied guidance for retrieval-style questions. However, it never states when to prefer this over research.archaeology, memory.recall, or research.deep_compare, nor any preconditions for chains existing.

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

research.start_chainA

Start a new research chain to track reasoning across multiple steps. Chains persist across sessions for future recall.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesResearch topic: 'ForgeMCP Architecture Design'
intentYesGoal: 'Design code intelligence OS architecture'
modelUsedNoWhich AI model was used for research

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and it does disclose a real behavioral trait: chains persist across sessions for future recall. However, it omits other key behaviors such as whether the new chain returns an identifier needed by research.add_step, and any auth or lifecycle constraints.

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

Conciseness5/5

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

Two short sentences, both front-loaded and load-bearing: the first states what it does, the second states the persistence trait. No filler or repetition of the tool name.

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

Completeness3/5

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

There is no output schema, so the description should ideally explain what starting a chain yields (an ID/handle needed by research.add_step). It covers intent and persistence but leaves that return-value gap, making it only adequately complete for a creator tool.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter (title, intent, modelUsed) already carries an example in the schema. The description adds no syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Start a new research chain') plus the purpose (track reasoning across multiple steps), which distinguishes it from siblings like research.add_step and research.recall_chain. It is clear but never names those siblings explicitly, so the differentiation is implicit rather than stated.

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

Usage Guidelines3/5

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

The persistence note hints at why one would create a chain (future recall) but gives no explicit when-to-use or when-not-to-use guidance, nor does it point to alternatives such as research.add_step for extending an existing chain. Usage must be inferred from the surrounding toolset.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv0.1.0
    • First observedcode.map
    • First observedcode.reach
    • First observedcode.symbols
    • First observedcode.trace
    • First observedcode.understand
    • First observedforge_describe
    • First observedforge_discover
    • First observedgenius.explain
    • First observedgenius.find_best
    • First observedgenius.hunt
    • First observedgithub.compare
    • First observedgithub.repo_file
    • First observedgithub.repo_overview
    • First observedgithub.repo_tree
    • First observedgithub.search_code
    • First observedgithub.search_repos
    • First observedimport.extract
    • First observedmemory.evolve
    • First observedmemory.forget
    • First observedmemory.link
    • First observedmemory.recall
    • First observedmemory.related
    • First observedmemory.stats
    • First observedmemory.store
    • First observedresearch.add_step
    • First observedresearch.archaeology
    • First observedresearch.conclude
    • First observedresearch.deep_compare
    • First observedresearch.recall_chain
    • First observedresearch.start_chain

TDQS

C2.8/5.0

Scored across 30 tools

Disambiguation2/5

Multiple tools have overlapping purposes with near-identical descriptions: genius.find_best vs genius.hunt, github.compare vs research.deep_compare, and code.reach vs code.understand are easy to confuse. While some descriptions contain differentiating details, several boundaries remain unclear enough that an agent could misselect.

Naming Consistency3/5

Most tools use dot-namespaced names (memory.recall, github.search_code, code.reach), but the pattern is broken by forge_discover/forge_describe and subcommands mix single words, verbs, and snake_case (e.g., research.archaeology vs research.deep_compare). Readable but not fully consistent.

Tool Count2/5

With 30 tools, this exceeds the 25+ threshold for 'too many'. Several tools are redundant variations (e.g., two 'find best implementations' tools, two comparison tools), suggesting the surface could be consolidated rather than each tool earning its place.

Completeness4/5

The surface covers code memory CRUD (store, recall, evolve, forget, link, related, stats), research chain lifecycle, GitHub search/retrieval, local code understanding, and implementation discovery. Minor gaps like local full-text code search or exact-ID memory retrieval are workable, but not fatal.

Maintenance

ActivityNo data
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    AI-powered code assistant that provides advanced search and discovery capabilities across GitHub and NPM ecosystems, helping users understand code patterns, implementations, and connections between repositories.
    13
    526 npm
    932
    TypeScript
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic code search across projects using AI embeddings to find code by meaning rather than just text matching. Provides fast intelligent search, symbol analysis, and code similarity detection with multi-language support.
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Provides code repository indexing and semantic search capabilities, allowing natural language queries to find relevant code snippets with automatic incremental indexing and multi-language support.
    1
    8 npm
    359
    ISC