Skip to main content
Glama
voxmenthe

Search Tools MCP Server

by voxmenthe

๐Ÿ” Search Tools MCP Server

โšก An intelligent Model Context Protocol (MCP) server that supercharges code analysis with advanced search capabilities and dependency mapping

๐ŸŒŸ Overview

The Search Tools MCP Server is a powerful toolkit that combines traditional code search with intelligent analysis algorithms. It leverages the CodeRank algorithm (inspired by PageRank) to identify the most critical modules in your codebase and provides sophisticated search capabilities that go beyond simple text matching.

Related MCP server: Acemcp

๐ŸŽฏ Key Features

๐Ÿ”Ž Smart Search Capabilities

  • Contextual Keyword Search: Ripgrep-powered search with configurable context lines

  • Symbol Discovery: Extract and analyze functions, classes, methods, and modules

  • Usage Tracking: Find where symbols are used across your codebase

  • Priority-Ranked Results: Search results ranked by code importance

๐Ÿง  Intelligence & Analysis

  • CodeRank Algorithm: Identify the most critical modules using network analysis

  • Dependency Mapping: Trace complex dependency chains and impact analysis

  • Hotspot Detection: Find code areas that are both highly connected and frequently used

  • Refactoring Impact: Analyze the potential impact of code changes

๐ŸŽจ Advanced Filtering

  • Symbol type filtering (functions, methods, classes)

  • File inclusion/exclusion patterns

  • External module dependency tracking

  • Markdown documentation analysis

๐Ÿ› ๏ธ Installation

Prerequisites

  • Python 3.13+

  • uv package manager

  • kit CLI tool (for symbol analysis)

  • ripgrep (for fast text search)

Setup

# Clone the repository
git clone <repository-url>
cd search-tools

# Install dependencies
uv sync

โš™๏ธ Configuration

Adding to Cursor/Windsurf

Add the following configuration to your mcp.json file:

{
  "mcpServers": {
    "search-tools": {
      "command": "/path/to/uv",
      "args": [
        "run",
        "--directory",
        "/path/to/search-tools",
        "main.py"
      ]
    }
  }
}

For macOS users with Homebrew:

{
  "mcpServers": {
    "search-tools": {
      "command": "/Users/yourusername/.local/bin/uv",
      "args": [
        "run",
        "--directory",
        "/path/to/your/search-tools/directory",
        "main.py"
      ]
    }
  }
}

To add to claude code:

claude mcp add-json search-tools '{"type":"stdio","command":"/Users/yourusername/.local/bin/uv","args":[ "run", "--directory", "/path/to/your/search-tools/directory", "main.py"]}'

๐Ÿ“ Finding Your Paths

To find the correct paths for your system:

# Find uv location
which uv

# Get absolute path to search-tools directory  
pwd  # (run this from the search-tools directory)

๐Ÿš€ Available Tools

๐Ÿ” contextual_keyword_search

Search for keywords with configurable context lines around matches.

Parameters:

  • keyword: Search term (case insensitive)

  • working_directory: Absolute path to search directory

  • num_context_lines: Lines of context (default: 2)

๐Ÿ—๏ธ get_repo_symbols

Extract symbols (functions, classes, methods) from your codebase.

Parameters:

  • repo: Repository path

  • working_directory: Command execution directory

  • keep_types: Filter by symbol types

  • file_must_contain/file_must_not_contain: File filtering

๐Ÿ“Š get_symbol_usages

Find where specific symbols are used throughout your codebase.

Parameters:

  • repo: Repository path

  • symbol_name_or_substring: Symbol to search for

  • working_directory: Command execution directory

  • symbol_type: Optional type filter

๐ŸŽฏ coderank_analysis

Analyze repository importance using the CodeRank algorithm.

Parameters:

  • repo_path: Repository to analyze

  • external_modules: Comma-separated external dependencies

  • top_n: Number of top modules to return (default: 10)

  • analyze_markdown: Include markdown files

  • output_format: "summary", "detailed", or "json"

๐Ÿ”ฅ find_code_hotspots

Identify critical code areas combining connectivity and usage frequency.

Parameters:

  • repo_path: Repository path

  • working_directory: Command execution directory

  • min_connections: Minimum import connections (default: 5)

  • include_external: Include external dependencies

  • top_n: Number of hotspots to return (default: 20)

๐ŸŒ trace_dependency_impact

Trace dependency chains and analyze refactoring impact.

Parameters:

  • repo_path: Repository path

  • target_module: Module to analyze

  • working_directory: Command execution directory

  • analysis_type: "dependency", "refactoring", or "both"

  • max_depth: Maximum trace depth (default: 3)

  • change_type: "modify", "split", "merge", or "remove"

๐ŸŽช smart_code_search

Enhanced search combining ripgrep with CodeRank prioritization.

Parameters:

  • keyword: Search term (supports regex)

  • repo_path: Repository path

  • working_directory: Command execution directory

  • rank_results: Sort by module importance

  • context_lines: Context lines around matches (default: 3)

  • max_results: Maximum results to return (default: 20)

๐Ÿงช Development & Testing

Running the Server

# Development mode
uv run mcp dev main.py

# Testing with MCP Inspector
npx @modelcontextprotocol/inspector python main.py

๐Ÿ”ง Dependencies

  • mcp[cli]: Model Context Protocol framework

  • cased-kit: Symbol analysis toolkit

  • networkx: Graph analysis for CodeRank algorithm

๐ŸŽจ Algorithm Details

CodeRank Algorithm

The CodeRank algorithm treats your codebase as a directed graph where:

  • Nodes: Python modules, classes, functions, methods

  • Edges: Import relationships and dependencies

  • Weights: Different weights for internal vs external dependencies

This creates a ranking system that identifies the most "central" and important parts of your codebase, similar to how PageRank identifies important web pages.

๐Ÿ’ก Use Cases

  • ๐Ÿ” Code Exploration: Quickly understand large codebases

  • ๐Ÿ—๏ธ Refactoring Planning: Identify high-impact areas before changes

  • ๐Ÿ“š Documentation: Find the most important modules to document first

  • ๐Ÿ› Bug Investigation: Focus on critical code paths

  • ๐Ÿ‘ฅ Code Review: Prioritize review efforts on important modules

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

๐Ÿ“„ License

This project is open source. Please check the license file for details.


๐Ÿ”ฎ Powered by the CodeRank Algorithm & Model Context Protocol

Making code search intelligent, one repository at a time

Available Tools

21 tools
analyze_config_impactA

Analyze what code is affected by specific configuration values.

Use this tool when you need to understand:

  • What code will behave differently if you change a config setting

  • How configuration values flow through the system

  • What the default behavior is when config is missing

  • How configuration changes have been handled historically

Critical for understanding the impact of configuration modifications, planning configuration changes, or debugging configuration-related issues.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) config_key: Configuration key to analyze (e.g., "DEBUG", "DATABASE_URL") trace_dependent_logic: Whether to trace through conditional logic include_default_handling: Whether to analyze default value handling show_historical_changes: Whether to show config-related git history

Returns: Configuration impact analysis with affected code paths and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYes
config_keyYes
working_directoryYes
trace_dependent_logicNo
show_historical_changesNo
include_default_handlingNo

TDQS

A4.1/5.0
Behavior3/5

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

There are no annotations, so the description bears full responsibility for behavioral transparency. It clearly frames the tool as an analysis operation ('Analyze what code is affected'), and its Returns section implies no side effects, but it does not explicitly state that the tool is read-only or mention any requirements (e.g., git history availability) or limitations. It does disclose that it can trace conditional logic and examine git history, which is useful, but it leaves the safety profile implicit.

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 well-organized with clear sections (Purpose, Use Cases, Args, Returns) and the core purpose is front-loaded in the first sentence. The use-case bullet list is helpful but slightly redundant with the subsequent 'Critical for...' sentence, adding minor verbosity. The Args section is necessary given the 0% schema coverage, so the length is justified.

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 description covers the tool's purpose, use cases, parameters, and a high-level return description, which is good given no output schema. However, it omits prerequisites (e.g., the repository must be a valid Git repository for historical changes), potential failure modes (e.g., unknown config key), and the structure of the returned analysis (e.g., whether it includes file paths, line numbers, or severity ratings). For a tool with six parameters and no output schema, this leaves some contextual ambiguity.

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

Parameters5/5

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

The description includes a dedicated 'Args:' section that explains each of the six parameters, including the required config_key with examples ('DEBUG', 'DATABASE_URL'), the boolean flags' purposes (trace dependent logic, default handling, historical changes), and path semantics. This fully compensates for the 0% schema coverage, giving the agent a clear understanding of what each parameter controls.

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

Purpose5/5

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

The description opens with a specific statement: 'Analyze what code is affected by specific configuration values,' which clearly identifies the verb (analyze), resource (code affected by config values), and scope (config-specific). This differentiates it from sibling tools like trace_dependency_impact or analyze_execution_paths, which are not config-specific. The Returns section further clarifies the output is an analysis with affected code paths and recommendations.

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

Usage Guidelines4/5

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

The description provides a bulleted list of use cases ('Use this tool when you need to understand: what code will behave differently...'), which gives explicit when-to-use guidance. However, it does not mention when not to use the tool or contrast it with sibling alternatives, so it stops 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.

analyze_error_patternsA

Discover error handling patterns and inconsistencies in the codebase.

Use this tool when you need to understand:

  • How errors are typically handled in this codebase

  • What error handling patterns to follow for consistency

  • Where error handling might be missing or inconsistent

  • How error handling has evolved over time

Essential for implementing proper error handling that matches the codebase style, debugging error-related issues, or improving error handling consistency.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) focus_area: Specific area to focus on (e.g., "database", "api", "file_io") custom_patterns: Custom regex patterns for error handling (overrides defaults) custom_antipatterns: Custom regex patterns for antipatterns (overrides defaults) include_antipatterns: Whether to identify problematic error handling show_evolution: Whether to show how error handling has changed days_back: Days of git history to analyze for evolution

Returns: Comprehensive error handling analysis with patterns and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNo
repo_pathYes
focus_areaNo
show_evolutionNo
custom_patternsNo
working_directoryYes
custom_antipatternsNo
include_antipatternsNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It clearly indicates a read-only analysis operation ('Discover', 'Returns comprehensive analysis') and explains evolution analysis via git history. It does not explicitly state that it makes no modifications, but the language strongly implies a non-destructive analytical 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?

The description is well-structured with a clear opening statement, bullet-point use cases, and an Args list. It is appropriately sized for an 8-parameter tool; no sentence is superfluous. The only minor point is that the 'Returns' line is somewhat vague, but it does not add unnecessary bulk.

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?

Given the tool has 8 parameters, no output schema, and no annotations, the description covers use cases, parameters, and return type adequately. It lacks a precise output format description, but for this analysis tool the provided 'comprehensive analysis with patterns and recommendations' is sufficient context for an agent to understand what to expect.

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 schema has 0% description coverage, but the description's 'Args' section provides concise, meaningful explanations for all 8 parameters, including override behavior for custom patterns and the purpose of flags like include_antipatterns and show_evolution. This compensates well for the lack of schema-level descriptions.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Discover error handling patterns and inconsistencies in the codebase.' This clearly distinguishes the tool from sibling code-analysis tools, none of which focus on error handling patterns.

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

Usage Guidelines4/5

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

The description provides an explicit 'Use this tool when you need to understand' bullet list covering common scenarios, and states it is 'Essential for implementing proper error handling.' It does not explicitly mention when not to use it or name alternative tools, so it stops 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.

analyze_execution_pathsA

Analyze all possible execution paths through a function and what triggers each path.

Use this tool when you need to understand:

  • All the different ways a complex function can execute

  • What conditions or parameters lead to different code paths

  • Potential edge cases or error conditions

  • Decision points and branching logic

Perfect for understanding complex business logic, debugging function behavior, or planning test cases that cover all execution paths.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) function_name: Name of the function to analyze max_depth: How deep to analyze nested function calls include_call_contexts: Whether to show how the function is called highlight_complex_paths: Whether to identify complex/risky paths

Returns: Execution path analysis with decision points and complexity assessment

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNo
repo_pathYes
function_nameYes
working_directoryYes
include_call_contextsNo
highlight_complex_pathsNo

TDQS

A4.1/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 implies a read-only analysis operation ('Analyze') and describes the output, but does not explicitly state non-mutating behavior, performance implications, or limitations such as language support or repository requirements. It adds some context with 'decision points and complexity assessment' but lacks deeper behavioral disclosure.

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

Conciseness4/5

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

The description is well-structured with clear sections: an opening summary, a bulleted list of use cases, an Args list, and a Returns statement. It is slightly longer than necessary, with 'Perfect for...' being somewhat redundant, but the organization makes it easy to scan and the extra detail is useful.

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?

Given there is no output schema, the description does explain the return value: 'Execution path analysis with decision points and complexity assessment'. It covers usage context, parameters, and returns. However, it lacks details on edge cases, input validation, or how the analysis is performed, which would make it more complete for a complex static analysis tool.

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 schema has 0% coverage, but the description compensates with an Args section that adds meaning: 'max_depth: How deep to analyze nested function calls', 'include_call_contexts: Whether to show how the function is called', and 'highlight_complex_paths: Whether to identify complex/risky paths'. Repo_path and working_directory are minimally described but acceptable. Overall, the description adds value beyond the raw schema.

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 clearly states the tool's function: 'Analyze all possible execution paths through a function and what triggers each path.' This specific verb+resource pairing distinguishes it from sibling tools like trace_data_flow or trace_dependency_impact, which focus on data flow and dependencies rather than control flow.

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

Usage Guidelines4/5

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

The description provides an explicit 'Use this tool when you need to understand' list covering branches, conditions, edge cases, and decision points. It gives clear context for when to invoke it, though it doesn't explicitly mention when not to use it or name alternative sibling tools.

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

analyze_recent_changesA

Analyze recent changes using CodeRank to identify most important modifications. Aggregates changes over the last N days and ranks them by impact.

Args: repo_path: Repository path (absolute) days_back: Number of days to look back for commits target_branch: Branch to analyze (default: main) min_commits: Minimum commits to a file to be considered top_n: Number of top changes to return include_stats: Include detailed statistics

Returns: Ranked list of most important recent changes with metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
days_backNo
repo_pathYes
min_commitsNo
include_statsNo
target_branchNomain

TDQS

A4/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 burden of behavioral disclosure. It explains the core behavior (aggregates changes, ranks by impact) and mentions the return type, but does not disclose potential side effects, performance implications, or prerequisites (e.g., git history availability). The read-only nature is implied by 'analyze' but not explicitly stated.

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 well-structured and concise: a two-sentence summary, followed by a clear Args list and a Returns note. Every line provides necessary information without redundancy or fluff.

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?

Given the tool has six parameters and no output schema, the description provides adequate context by listing all parameters with explanations and summarizing the return value. It is not overly detailed about ranking metrics or edge cases, but covers the essential usage and output shape well enough for an agent to understand the tool's purpose and invocation.

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 schema has zero parameter descriptions, so the description's 'Args' block compensates by providing brief but meaningful explanations for each of the six parameters (e.g., 'days_back: Number of days to look back for commits'). While not extremely detailed, it adds value beyond parameter names and covers all parameters.

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 clearly states the tool's purpose: analyze recent changes using CodeRank to identify important modifications. It specifies the resource ('recent changes'), the method ('CodeRank'), and the scope (aggregated over the last N days, ranked by impact). This distinguishes it from siblings like 'coderank_analysis' which may be broader, and other change-related tools.

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 description implies when to use the tool ('to identify most important modifications' from recent commits) but does not explicitly provide usage vs. alternative tools or any exclusions. It gives context but lacks direct guidance on when not to use it or when to prefer a sibling.

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

analyze_testing_strategyA

Analyze testing strategies and identify gaps for better test coverage.

Use this tool when you need to understand:

  • How different parts of the code are tested and what patterns are used

  • Where test coverage might be missing or insufficient

  • What testing frameworks and patterns the codebase follows

  • How to write tests that fit the existing testing strategy

Perfect for understanding how to test new code, improving test coverage, or learning the testing patterns used in an unfamiliar codebase.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) test_types: Types of tests to analyze (default: common test types) custom_file_patterns: Custom regex patterns for test files (overrides defaults) custom_framework_patterns: Custom regex patterns for frameworks (overrides defaults) show_coverage_gaps: Whether to identify modules that might lack tests include_testing_patterns: Whether to analyze testing patterns and frameworks focus_on_important_modules: Whether to prioritize important modules in analysis

Returns: Testing strategy analysis with patterns, gaps, and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYes
test_typesNo
working_directoryYes
framework_patternsNo
show_coverage_gapsNo
test_file_patternsYes
include_testing_patternsNo
focus_on_important_modulesNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool returns 'Testing strategy analysis with patterns, gaps, and recommendations,' which gives some insight into behavior. However, it does not mention whether it is read-only, potential performance implications, or any side effects, leaving a 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?

The description is organized with a clear opening, a bulleted use-case list, an Args section, and a Returns clause. It is longer than necessary but every section serves a purpose, especially given the schema descriptions are absent. The front-loading of purpose is effective.

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?

Despite having 8 parameters and no output schema, the description covers the main intent, parameter meanings, and a brief return summary. However, the parameter name mismatches create a completeness problem, and the return description is vague ('patterns, gaps, and recommendations') without an output schema to fill in details. More information on expected output structure would be needed.

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?

The description adds valuable meaning by explaining each parameter, but it contains critical mismatches: it lists 'custom_file_patterns' while the schema uses 'test_file_patterns', and 'custom_framework_patterns' versus 'framework_patterns'. This could lead an agent to pass invalid parameter names and cause tool failure. The explanations are helpful but the inaccuracies outweigh that benefit.

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

Purpose5/5

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

The description opens with a specific verb and resource ('Analyze testing strategies') and clearly distinguishes this tool from its siblings (e.g., contextual_keyword_search, get_repo_symbols) by focusing on test coverage and patterns. The listed use cases further pin down its unique role.

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

Usage Guidelines4/5

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

The description provides explicit when-to-use guidance through the 'Use this tool when you need to understand' list and the 'Perfect for...' sentence. It does not mention when not to use it or make direct comparisons to alternatives, but the use cases are clear enough.

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

change_propagation_analysisA

Analyze how changes in one module historically propagate to others. Uses commit history to predict ripple effects of changes.

Args: repo_path: Repository path changed_module: Module to analyze (e.g., 'src.auth.user') days_back: Days of history to analyze include_test_impact: Include analysis of test file changes

Returns: Analysis of likely modules to be affected by changes

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNo
repo_pathYes
changed_moduleYes
include_test_impactNo

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does mention the use of commit history and the return of predictions, which implies a read-only analytic function. However, it does not explicitly confirm that it makes no modifications, nor does it discuss potential dependencies or performance considerations, leaving some transparency 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?

The description is compact and well-structured, starting with a two-sentence summary, followed by an Args list and a Returns line. Every sentence is purposeful and the key purpose is front-loaded, achieving high conciseness without sacrificing clarity.

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?

The description covers the tool's action, method, parameters, and return value, which is mostly sufficient for a read-only analysis tool with no output schema. However, the return value description is generic, and no context is provided about alternatives or prerequisites, leaving minor completeness gaps.

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 schema provides no descriptions (0% coverage), but the description's Args section gives clear, one-line meanings for all four parameters, including a useful example for changed_module. This fully compensates for the schema's lack of documentation, though some explanations are terse.

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 clearly states the tool's purpose with a specific verb ('Analyze') and resource ('how changes in one module historically propagate to others'). It also distinguishes itself from sibling tools by emphasizing historical commit-based analysis and predicting ripple effects, making its unique scope evident.

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 description implies usage for predicting ripple effects based on commit history, but it does not explicitly state when to use this tool over alternatives like trace_dependency_impact or when not to use it. There is no mention of prerequisites or conditions, so guidance is only implicit.

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

coderank_analysisA

Analyze repository importance using CodeRank algorithm to identify critical modules.

Args: repo_path: Path to the repository (absolute path) external_modules: Comma-separated list of external modules to track top_n: Number of top modules to return analyze_markdown: Include markdown files in analysis output_format: "summary" for key results, "detailed" for full analysis, "json" for machine-readable

Returns: Ranked list of most important modules with scores

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
repo_pathYes
output_formatNosummary
analyze_markdownNo
external_modulesNogoogle,genai,langchain,langgraph,dspy,agn,torch,numpy

TDQS

A3.5/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 burden. It doesn't disclose whether this is a read-only operation, any required permissions, or potential side effects. While it describes the return value, this is insufficient to understand the tool's behavioral profile.

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 well-structured with a concise first sentence that captures the purpose, followed by a clear Args section and a Returns section. Every line provides useful information without redundancy or fluff.

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?

The description covers purpose, all parameters, and the return value. However, it lacks information about when to use the tool, any limitations, or behavioral expectations. Given the absence of annotations and output schema, this is a minor gap, but the tool is relatively simple.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates well by explaining each parameter in the Args section, including types and intended use (e.g., absolute path for repo_path, comma-separated list for external_modules, format options for output_format). This adds significant value 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?

The description clearly states it analyzes repository importance using the CodeRank algorithm to identify critical modules, providing a specific verb and resource. It distinguishes itself from sibling tools by referencing a specific algorithm, though it doesn't explicitly contrast with similar hotspot analysis tools.

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 description implies usage when repository importance is needed but gives no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The context is clear enough for a basic understanding but lacks comparative guidance.

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

contributor_impact_analysisA

Analyze contributor patterns and their impact on important modules. Identifies key contributors and their areas of expertise.

Args: repo_path: Repository path days_back: Days to analyze min_commits: Minimum commits by a contributor to be included focus_on_important_modules: Weight contributions by module importance

Returns: Contributor impact analysis with expertise areas

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNo
repo_pathYes
min_commitsNo
focus_on_important_modulesNo

TDQS

A4.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 transparency burden. 'Analyze' implies read-only behavior, and the return type is stated ('Contributor impact analysis with expertise areas'), but it does not explicitly confirm that no modifications are made, nor does it mention potential side effects like repository access costs or permissions. This is adequate but not thorough.

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 well-structured: a clear purpose statement, an Args section with one-line explanations, and a Returns section. No redundant or filler content; every sentence adds value.

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?

Given the tool has 4 parameters, no output schema, and no annotations, the description covers the essential aspects: what it does, each parameter's meaning, and the type of return value. It lacks examples or edge-case guidance, but is sufficiently complete for an agent to understand and invoke the tool.

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

Parameters5/5

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

The schema has 0% description coverage, forcing the description to explain each parameter. The 'Args:' section provides concise, meaningful descriptions for all four parameters (repo_path, days_back, min_commits, focus_on_important_modules), fully compensating for the schema's lack of detail.

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 clearly states the tool's purpose with a specific verb ('Analyze') and resource ('contributor patterns and their impact on important modules'), and additionally identifies key contributors and areas of expertise. This distinguishes it from siblings like coderank_analysis or get_commit_hotspots, which focus on code metrics rather than contributor attribution.

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

Usage Guidelines4/5

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

The description implies usage for analyzing contributor patterns and impact, providing clear context. However, it does not explicitly state when to prefer this tool over alternatives or mention exclusions, so it misses the top score but remains clearly contextual.

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

discover_side_effectsA

Discover all potential side effects of calling a function or method.

Use this tool when you need to understand:

  • What else might happen when you call a specific function

  • All the systems/resources that might be affected by a function call

  • Potential unintended consequences of code changes

  • What to test or monitor when modifying a function

Critical for understanding the full impact of code changes, planning testing strategies, or debugging issues that might be caused by unexpected side effects.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) target_function: Name of the function to analyze for side effects side_effect_patterns: Dictionary mapping effect types to regex patterns. Format: {"category": ["regex1", "regex2", ...]}

    Example:
    {
        "file": [r"open\(", r"\.write\(", r"\.read\(", r"os\.remove", r"pathlib\."],
        "network": [r"requests\.", r"urllib\.", r"\.get\(", r"\.post\("],
        "database": [r"\.execute\(", r"\.query\(", r"\.commit\(", r"session\."],
        "global_state": [r"global ", r"os\.environ", r"setattr\("],
        "logging": [r"log\.", r"logger\.", r"print\("],
        "cache": [r"\.cache", r"redis\.", r"@lru_cache"]
    }
    
    Each regex pattern will be searched for in the function body to identify
    potential side effects. Use Python regex syntax.
trace_depth: How deep to trace function calls for side effects
include_historical_bugs: Whether to analyze git history for side effect bugs

Returns: Comprehensive side effect analysis with risk assessment and mitigation suggestions

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYes
trace_depthNo
target_functionYes
working_directoryYes
side_effect_patternsYes
include_historical_bugsNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It explains the analysis method (regex pattern search, tracing function calls, git history) and what will be returned (risk assessment, mitigation suggestions). While it does not explicitly state it is read-only, the wording strongly implies non-mutating analysis, and the process details are sufficient for an agent to understand the behavior.

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 well-structured: purpose, use cases, arguments, and return value. It is somewhat lengthy but each section serves a purpose. The bulleted list of use cases is helpful, though a few lines (e.g., 'Critical for understanding...') are somewhat redundant with the opening sentence.

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?

Given the tool's complexity (6 params, nested objects, no output schema), the description covers the input semantics and high-level return behavior. However, it does not detail the exact structure of the returned analysis or mention error conditions, which could leave an agent uncertain about how to consume the result. Still, it is sufficiently complete for invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the Args section is essential. It explains each parameter, provides a detailed example for the complex 'side_effect_patterns' parameter, and clarifies the behavior of 'trace_depth' and 'include_historical_bugs'. This fully compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Discover all potential side effects of calling a function or method.' This clearly distinguishes it from sibling analysis tools by focusing on unintended consequences rather than general code search or dependency tracing.

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

Usage Guidelines4/5

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

The description provides a clear bulleted list of when to use the tool ('when you need to understand... what else might happen, affected systems, unintended consequences, what to test'). It does not explicitly state when not to use it or name alternatives, so it stops 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.

find_api_usage_examplesA

Find real usage examples of APIs, functions, or classes in the codebase.

Use this tool when you need to:

  • Learn how to properly use an existing API by seeing real examples

  • Understand the different ways an API is used across the codebase

  • Find patterns and best practices for API usage

  • See what parameters are commonly used and how

Perfect for learning unfamiliar APIs, understanding usage patterns before making changes, or finding examples to follow when implementing similar functionality.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) api_name: Name of the API/function/class to find examples for max_examples: Maximum number of examples to return group_by_pattern: Whether to group similar usage patterns together include_test_examples: Whether to include examples from test files show_context_lines: Number of context lines around each usage

Returns: Categorized real usage examples with context and patterns

ParametersJSON Schema
NameRequiredDescriptionDefault
api_nameYes
repo_pathYes
max_examplesNo
group_by_patternNo
working_directoryYes
show_context_linesNo
include_test_examplesNo

TDQS

A4/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 return format (categorized examples with context and patterns), but doesn't mention any limitations, side effects, performance considerations, or explicitly state it's read-only. The read-only nature is implied but not guaranteed.

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 well-structured with clear sections: purpose, when-to-use bullets, Args, and Returns. However, there's some redundancy (e.g., 'Perfect for learning unfamiliar APIs...' repeats the bullet points), making it slightly verbose but still clear and organized.

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

Completeness4/5

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

For a tool with 7 parameters and no output schema, the description provides adequate context: clear use cases, full parameter explanations, and return type. It doesn't address edge cases or limitations, but it's sufficient for an agent to select and invoke the tool correctly without external documentation.

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

Parameters5/5

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

Schema descriptions are completely absent (0% coverage), but the description's Args section thoroughly explains all 7 parameters, including semantics like 'absolute path', maximum examples, and context line count. This fully compensates for the missing schema descriptions.

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 clearly states the tool finds real usage examples of APIs/functions/classes in the codebase, using a specific verb and resource. It differentiates itself from siblings like get_symbol_usages by emphasizing real usage examples and patterns, though it doesn't explicitly name alternatives.

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

Usage Guidelines4/5

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

The description provides clear when-to-use guidance with bullet points like 'Learn how to properly use an existing API' and 'Perfect for learning unfamiliar APIs'. However, it does not specify when not to use the tool or mention alternative sibling tools.

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

find_code_hotspotsA

Identify code hotspots by combining CodeRank with symbol usage frequency. Uses kit usages + coderank to find modules that are both highly connected and frequently used.

Args: repo_path: Repository to analyze working_directory: Working directory for commands (absolute path) min_connections: Minimum import connections to consider include_external: Include external module dependencies top_n: Number of top hotspots to return

Returns: Hotspot analysis with modules ranked by importance and usage

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
repo_pathYes
min_connectionsNo
include_externalNo
working_directoryYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior itself. It explains the algorithmic approach and output type, but does not state whether the tool is read-only, performance expectations, or prerequisites (e.g., whether CodeRank data must exist). This is adequate but not rich.

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 compact and well-structured: an intro statement, a clear Args list, and a Returns line. No filler or redundant information, and every sentence adds value.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description covers purpose, parameters, and output sufficiently for initial understanding. It lacks edge-case behavior and dependencies, but the core functionality is well explained.

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 Args list provides concise explanations for all five parameters, which is crucial given 0% schema description coverage. Each parameter's role is clear (e.g., 'min_connections: Minimum import connections to consider'). However, explanations lack format constraints (e.g., path types) beyond what the schema defaults imply.

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 'Identify code hotspots by combining CodeRank with symbol usage frequency,' clearly specifying the verb, resource, and method. This differentiates it from sibling tools like coderank_analysis (likely CodeRank-only) and get_commit_hotspots (hotspots from commits).

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 description implies the intended use (combined connectivity and usage) but does not explicitly state when to use this tool over alternatives or provide any exclusions. No direct comparison to sibling tools is given, so guidance is inferred rather than explicit.

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

get_commit_hotspotsC

Find modules that are frequently changed together in commits. Identifies coupled modules that might have hidden dependencies.

Args: repo_path: Repository path days_back: Days to analyze min_cochange_frequency: Minimum times modules must change together top_n: Number of top coupled module pairs to return

Returns: Analysis of modules that frequently change together

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
days_backNo
repo_pathYes
min_cochange_frequencyNo

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 mentions that the tool 'Identifies coupled modules that might have hidden dependencies' and describes the return value, but does not disclose whether it is read-only, what git history it reads, performance implications, or any limitations. This is a significant gap for an analysis tool.

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

Conciseness3/5

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

The description is reasonably structured with an Args section and Returns line, but the first two sentences are redundant ('frequently changed together' and 'coupled modules' essentially repeat the same idea). The Returns line also restates the purpose. It is not overly long, but the redundancy makes it less concise than ideal.

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 the tool's complexity (4 parameters, no annotations, no output schema), the description is only partially complete. It covers the basic purpose and parameters, but the Returns section is vague ('Analysis of modules that frequently change together') without specifying the format or how to interpret results. It also omits caveats or additional context needed for an agent to use the tool effectively.

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 schema has 0% description coverage, but the description compensates with an explicit Args block explaining each parameter: repo_path, days_back, min_cochange_frequency, and top_n. It adds plain-language meaning such as 'Days to analyze' and 'Minimum times modules must change together,' which goes beyond the schema's titles and defaults. However, it could still provide more detail (e.g., units, edge cases) to fully compensate.

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 clearly states the tool's verb and resource: 'Find modules that are frequently changed together in commits.' It also adds context about identifying coupled modules and hidden dependencies. However, it does not explicitly differentiate from sibling tools like find_code_hotspots or trace_dependency_impact, so it stops 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?

No guidance is provided on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or specific use cases beyond the basic purpose. The description implies it is for co-change analysis but never says when it is preferred over other tools.

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

get_repo_symbolsA

Run kit symbols <repo> and keep the header plus rows that satisfy the filters.

Parameters

repo : str | Path Path or name passed to kit symbols. working_directory : str The directory to run the command from. Use full absolute path. keep_types : Iterable[str] | None Exact values allowed in the Type column (e.g. {"function", "method", "class"}). None โ‡’ no type filter. file_must_contain : str | None post-filter: Keep only rows whose File column contains this substring. None โ‡’ no inclusion filter. file_must_not_contain : str | None post-filter: Discard rows whose File column contains this substring. None โ‡’ no exclusion filter.

Returns

list[str] | str Filtered output, ready to print() or write to a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
keep_typesNo
file_must_containNo
working_directoryYes
file_must_not_containNo

TDQS

A4.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 for behavioral disclosure. It explains the process (running a command and filtering rows) but does not explicitly state whether the operation is read-only, mention side effects, or disclose potential errors or permissions needed. While it implies a safe read operation, that is not explicit.

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 well-structured with a brief summary line, a clear parameter list, and a returns section. Each parameter is explained concisely without redundancy. It is appropriately sized for a tool with five parameters and avoids unnecessary prose.

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?

Given the tool has no output schema and no annotations, the description covers all essential aspects: the command executed, parameter meanings, return type, and intended output readiness for printing or writing. It provides enough context for an agent to use the tool effectively, though it omits error handling details, which are not typically required.

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

Parameters5/5

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

The schema has no descriptions, so the description fully compensates by explaining each parameter in detail, including exact semantics like 'Exact values allowed in the **Type** column' and 'post-filter'. It also clarifies the meaning of None for each optional filter, which is essential for correct usage.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Run `kit symbols <repo>`', clearly stating it retrieves and filters repository symbols. This distinguishes it from sibling tools like get_symbol_usages and smart_code_search, which focus on different aspects.

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 description implies usage by explaining what the tool does and how filters work, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. No comparison or exclusion criteria are provided for sibling tools.

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

get_symbol_usagesA

Run kit usages <repo> <symbol_name> and optionally filter by symbol type at the CLI level and then post-filter the rows by file inclusion/exclusion substrings.

Parameters

repo : str | Path Path or name passed to kit usages. Use full absolute path. symbol_name_or_substring : str The symbol whose usages we want to inspect, or a substring of the symbol name (which can be used to find multiple symbols which share a naming convention). working_directory : str Directory from which to run the command (absolute path). symbol_type : str | None "function" or "method" or "class" file_must_contain : str | None post-filter: Keep only rows whose File column contains this substring. None โ‡’ no inclusion filter. file_must_not_contain : str | None post-filter: Discard rows whose File column contains this substring. None โ‡’ no exclusion filter.

Returns

list[str] | str Filtered output, ready to print() or write to a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
symbol_typeNo
file_must_containNo
working_directoryYes
file_must_not_containNo
symbol_name_or_substringYes

TDQS

A3.9/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 command execution and post-filtering behavior, plus requirements like absolute paths. However, it does not discuss error conditions, whether the operation is read-only, or the exact format of returned rows, leaving some ambiguity.

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 a single clear sentence followed by a structured parameter list and returns section. Every element serves a purpose; no redundant or promotional content.

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

Completeness4/5

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

For a tool with 6 parameters and no output schema, the description covers all parameters and the return type. It lacks explicit usage examples or error handling, but the operational details are sufficient for an agent to invoke the tool correctly. It could be slightly richer on edge cases, but overall it is well-rounded.

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

Parameters5/5

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

The schema has zero property descriptions, but the description compensates thoroughly: it explains repo path expectations, the substring flexibility for symbol_name, allowed symbol_type values, and the exact post-filter semantics for file_must_contain and file_must_not_contain. This goes far beyond the schema titles.

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 clearly states that the tool runs `kit usages <repo> <symbol_name>` and applies filters, which is a specific verb+resource for inspecting symbol usages. This distinguishes it from sibling search tools by emphasizing usage inspection with optional type and file filtering.

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 sibling tools like smart_code_search or get_repo_symbols. It is purely operational, with no mention of alternatives, prerequisites, or exclusive use cases.

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

identify_performance_bottlenecksC

Identify potential performance bottlenecks by analyzing code patterns and complexity.

Use this tool when you need to:

  • Find likely performance issues before they become problems

  • Prioritize optimization efforts on high-impact code

  • Understand which parts of the codebase might be slow

  • Plan performance improvements based on actual usage patterns

Perfect for performance optimization planning, code reviews focused on performance, or debugging existing performance issues.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) focus_areas: Specific performance areas to focus on (default: common bottlenecks) custom_patterns: Custom regex patterns for bottlenecks (overrides defaults) include_usage_frequency: Whether to weight results by code usage frequency days_back: Days of git history to analyze for frequently changed performance code

Returns: Performance bottleneck analysis with optimization recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
days_backNo
repo_pathYes
working_directoryYes
bottleneck_patternsYes
include_usage_frequencyNo

TDQS

C2.8/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 fails to explicitly state whether the tool is read-only, what data it accesses (e.g., git history, code files), or any side effects. Worse, the 'Args' section in the description lists parameters (focus_areas, custom_patterns) that do not match the actual input schema (which expects bottleneck_patterns), creating confusion about how the tool behaves and what it accepts.

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

Conciseness3/5

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

The description uses a structured bullet-list format for usage and an 'Args' section, but the Args section is redundant (repeats parameter info) and inaccurate. The overall length is moderate, but the inaccuracies make some parts unhelpful. It could be tightened and made more coherent.

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?

The tool has a nested object parameter (bottleneck_patterns) with no schema description and no output schema. The description provides a high-level 'Returns' statement but does not clarify the structure of the bottleneck_patterns object or explain how focus_areas/custom_patterns relate. This is a significant gap for correct invocation, especially given the parameter mismatch.

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%, so the description must compensate. It does attempt to explain parameters, but the names are wrong: focus_areas and custom_patterns do not exist in the schema, while bottleneck_patterns (the required object parameter) is completely omitted. This misalignment means the description actively misleads the agent about parameter names and meanings, failing to add any correct value 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?

The description opens with a clear statement: 'Identify potential performance bottlenecks by analyzing code patterns and complexity.' This is a specific verb+resource and gives a good sense of the tool's function. However, it does not explicitly differentiate from sibling tools like find_code_hotspots or coderank_analysis, though the usage bullet points hint at a proactive optimization focus.

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

Usage Guidelines4/5

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

The description provides a 'Use this tool when you need to' list with concrete scenarios (finding likely performance issues, prioritizing efforts, understanding slow parts, planning improvements). It also states it's 'Perfect for performance optimization planning.' While it doesn't mention when not to use it or name alternatives, the usage context is clear and actionable.

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

map_integration_pointsB

Map all external integration points and their characteristics.

Use this tool when you need to understand:

  • What external services or systems the codebase integrates with

  • How those integrations are implemented and configured

  • Error handling patterns for external dependencies

  • Potential failure points and their impact

Essential for understanding system dependencies, planning for service outages, or designing resilient integration patterns.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) integration_types: Types of integrations to look for (default: common types) custom_patterns: Custom regex patterns for integrations (overrides defaults) include_error_handling: Whether to analyze error handling for integrations show_configuration: Whether to find configuration related to integrations risk_assessment: Whether to assess risks of each integration

Returns: Integration architecture map with dependency risks and patterns

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYes
risk_assessmentNo
working_directoryYes
show_configurationNo
integration_patternsYes
include_error_handlingNo

TDQS

B3.3/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 burden. It discloses the return type ('Integration architecture map with dependency risks and patterns') but does not specify whether the tool is read-only, whether it requires network access, or any side effects/limitations. For a mapping/analysis tool, the lack of explicit behavioral guarantees 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.

Conciseness3/5

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

The description is structured with bullet points, argument explanations, and a returns section, making it scannable. However, it includes promotional language ('Essential for...') and repeats parameter information that would be better placed in the schema. It is moderately verbose but not excessively so.

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 a complex schema (6 params, 3 required, nested object), no output schema, and no annotations, the description should do more. It provides usage scenarios and a high-level return description but fails to clarify the format of the integration map, how integration_patterns should be structured, or what 'risk' assessment entails. The parameter mismatch further reduces its completeness.

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?

The schema description coverage is 0%, so the description must compensate. The 'Args' section explains several parameters and their meaning (e.g., include_error_handling, show_configuration, risk_assessment). However, it lists 'integration_types' and 'custom_patterns' which do not match the actual schema's 'integration_patterns' parameter. The required core parameter 'integration_patterns' is left entirely unexplained, creating confusion and potential misuse.

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

Purpose5/5

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

The description opens with 'Map all external integration points and their characteristics,' a specific verb+resource statement that clearly defines the tool's purpose. It enumerates the types of insights (services, implementation, error handling, failure points) which distinguishes it from sibling analysis tools like trace_dependency_impact or find_code_hotspots.

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

Usage Guidelines4/5

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

The description explicitly states 'Use this tool when you need to understand:' followed by concrete scenarios, and adds 'Essential for understanding system dependencies, planning for service outages, or designing resilient integration patterns.' This gives clear context for when to invoke the tool, though it does not mention when not to use it or name specific alternatives.

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

trace_data_flowA

Trace how specific data flows through the system from source to destination.

Use this tool when you need to understand:

  • How a piece of data (user_id, email, order_data, etc.) moves through the codebase

  • What functions transform or modify the data

  • Where data comes from and where it goes

  • What side effects might occur when processing this data

Perfect for debugging data-related issues, understanding data dependencies, or planning changes that affect data flow.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) data_identifier: Name of the data to trace (e.g., "user_id", "email", "order") max_depth: How deep to trace the data flow include_transformations: Whether to show data transformation points show_side_effects: Whether to identify potential side effects

Returns: Comprehensive data flow analysis with transformation points and dependencies

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNo
repo_pathYes
data_identifierYes
show_side_effectsNo
working_directoryYes
include_transformationsNo

TDQS

A4.1/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 burden. It discloses that the tool identifies transformations, side effects, and data origins/destinations, and that it returns 'Comprehensive data flow analysis.' However, it does not disclose whether it is read-only, performance implications, scope limitations, or how the tracing is performed (e.g., static analysis via AST). This leaves gaps in behavioral transparency.

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 well-structured with a clear purpose statement, bullet points for usage, and distinct sections for Args and Returns. It is appropriately sized and front-loaded. The 'Perfect for debugging' sentence is somewhat redundant given the preceding bullets, but not distractingly so.

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?

Given the tool's complexity (6 parameters, no output schema, no annotations), the description provides a solid foundation: purpose, usage guidance, parameter explanations, and a Returns summary. However, it omits practical details like whether a git repository is required, performance considerations, or the exact structure of the returned analysis, which would help an agent invoke it more 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?

Schema coverage is 0%, so the description must compensate. The Args section provides descriptions for all six parameters, adding meaning beyond the schema's bare titles and types. For example, data_identifier gives examples and max_depth clarifies its purpose, though some descriptions remain vague (e.g., 'how deep' lacks units, working_directory vs repo_path distinction is subtle).

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Trace how specific data flows through the system from source to destination.' It also lists concrete examples of data identifiers (user_id, email, order_data) and clearly differentiates from sibling tools like trace_dependency_impact by focusing on the flow of a specific data element rather than dependency impact.

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

Usage Guidelines4/5

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

The description provides explicit when-to-use conditions via 'Use this tool when you need to understand:' followed by four concrete scenarios. However, it does not include when-not-to-use conditions or mention alternative sibling tools, which prevents a perfect score.

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

trace_dependency_impactA

Trace dependency chains and analyze refactoring impact for a module. Combines dependency tracing with impact analysis.

Args: repo_path: Repository path target_module: Module to analyze (e.g., 'src.auth.middleware') working_directory: Working directory (absolute path) analysis_type: "dependency" for chain tracing, "refactoring" for impact analysis, "both" for combined max_depth: Maximum depth to trace dependencies change_type: For refactoring - "modify", "split", "merge", or "remove"

Returns: Dependency chains and/or refactoring impact analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNo
repo_pathYes
change_typeNomodify
analysis_typeNodependency
target_moduleYes
working_directoryYes

TDQS

A3.8/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 disclosing side effects and safety. It does not explicitly state that the tool is read-only or non-mutating, nor does it describe any limitations or prerequisites. The return description is also vague, leaving the agent uncertain about output structure.

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 well-structured with a brief summary, an Args list, and a Returns line. The Args section is necessary given the schema's lack of descriptions, though the Returns line is under-specified.

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?

This is a moderately complex tool with no output schema, no annotations, and low schema coverage. The description explains parameters but fails to describe the return structure or operational expectations, leaving significant gaps for an agent to invoke it correctly.

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

Parameters5/5

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

The input schema has zero descriptive coverage, so the description's Args section is essential. It provides meaningful descriptions for all six parameters, including the allowed values for analysis_type and change_type, and clarifies the purpose of max_depth and working_directory.

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 clearly states the tool traces dependency chains and analyzes refactoring impact for a module, explicitly combining both. This distinguishes it from sibling tools like trace_data_flow or change_propagation_analysis because it targets module-level combined analysis.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the toolโ€”when dependency tracing, refactoring impact, or both are needed. It explains the analysis_type parameter to select modes. However, it does not explicitly mention alternatives or when not to use it relative to sibling tools.

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

trace_feature_implementationA

Map all code involved in implementing a specific feature from UI to data layer.

Use this tool when you need to:

  • Understand all components involved in a feature before modifying it

  • Map feature implementation across multiple layers (UI, business logic, data)

  • Find all related code that might be affected by feature changes

  • Understand how a feature is structured and organized

Perfect for feature modification, debugging feature issues, or understanding complex feature implementations that span multiple modules.

Args: repo_path: Repository path (absolute) working_directory: Working directory (absolute path) feature_keywords: List of keywords that identify the feature (e.g., ["login", "authenticate"]) file_categories: Dictionary mapping category names to path patterns for file organization. Format: {"category_name": ["pattern1", "pattern2", ...]}

    Example:
    {
        "ui_frontend": ["view", "template", "component", "ui", "frontend"],
        "api_controllers": ["api", "controller", "endpoint", "route"],
        "business_logic": ["service", "business", "logic", "core"],
        "data_models": ["model", "entity", "schema", "db"],
        "utilities": ["util", "helper", "common"],
        "tests": ["test", "spec"],
        "config": ["config", "setting", "env"]
    }
    
    Files are categorized by checking if any pattern appears in the file path.
    Use descriptive category names that match your project structure.
include_tests: Whether to include test files in the analysis
include_config: Whether to include configuration files
trace_depth: How deep to trace dependencies

Returns: Complete feature implementation map with all involved components by layer

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYes
trace_depthNo
include_testsNo
include_configNo
file_categoriesYes
feature_keywordsYes
working_directoryYes

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 burden. It explains file categorization behavior ('Files are categorized by checking if any pattern appears in the file path') and the overall mapping intent. However, it does not disclose whether the tool is read-only (no modifications), how trace_depth affects behavior, or what happens when no files match, leaving behavioral gaps.

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 structured with a clear intro, usage bullets, and an organized Args section with an example. It is longer than average but appropriate for 7 parameters including a nested object. Minor redundancy: 'Perfect for feature modification...' overlaps with the earlier bullet list, but overall every section earns its place.

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 tool with 7 parameters, no annotations, and no output schema, the description covers purpose, usage, and parameters well. The 'Returns' section is minimal ('Complete feature implementation map with all involved components by layer') and does not describe output structure, how trace_depth influences results, or edge cases. Completeness is adequate but not exhaustive.

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

Parameters5/5

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

Schema coverage is 0%, so the description must fully explain parameters, and it does. Each argument has a meaningful explanation; file_categories includes a detailed format and example, and trace_depth/booleans are described. This compensates completely for the schema's lack of descriptions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Map all code involved in implementing a specific feature from UI to data layer.' It clearly defines the scope (feature implementation, multi-layer) and distinguishes itself from sibling tools like trace_data_flow or map_integration_points by focusing on feature implementation mapping.

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

Usage Guidelines4/5

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

The description provides an explicit 'Use this tool when you need to' list covering four common scenarios, and adds 'Perfect for feature modification, debugging feature issues, or understanding complex feature implementations.' It lacks explicit when-not-to-use guidance or named alternatives, but the use cases are clear and actionable.

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. Dates show when Glama detected each change.

  1. 21 tool updatesv0.1.0
    • First observedanalyze_config_impact
    • First observedanalyze_error_patterns
    • First observedanalyze_execution_paths
    • First observedanalyze_recent_changes
    • First observedanalyze_testing_strategy
    • First observedchange_propagation_analysis
    • First observedcoderank_analysis
    • First observedcontextual_keyword_search
    • First observedcontributor_impact_analysis
    • First observeddiscover_side_effects
    • First observedfind_api_usage_examples
    • First observedfind_code_hotspots
    • First observedget_commit_hotspots
    • First observedget_repo_symbols
    • First observedget_symbol_usages
    • First observedidentify_performance_bottlenecks
    • First observedmap_integration_points
    • First observedsmart_code_search
    • First observedtrace_data_flow
    • First observedtrace_dependency_impact
    • First observedtrace_feature_implementation

TDQS

B3.4/5.0
Disambiguation4/5

Each tool targets a specific analysis task, but several overlap (e.g., smart_code_search vs contextual_keyword_search; find_code_hotspots vs coderank_analysis) requiring careful reading of descriptions. The distinct focus areas keep them mostly separable.

Naming Consistency2/5

Tool names mix various verb prefixes (get_, find_, trace_, analyze_, discover_, map_, identify_) and some names are noun-led (coderank_analysis, contributor_impact_analysis). No consistent pattern emerges, making the surface harder to predict.

Tool Count3/5

21 tools is in the borderline heavy range per the rubric. Each tool covers a distinct analysis scenario, so it is not excessive, but the number is still large and could overwhelm an agent choosing which tool to invoke.

Completeness4/5

The set covers a wide array of code analysis needsโ€”search, symbols, dependencies, data flow, error handling, performance, testingโ€”and includes several composite tools. Minor gaps like dead code detection don't significantly detract from the overall surface.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic code search across multiple repositories using natural language queries. Provides intelligent code discovery, symbol lookups, and cross-repo dependency analysis for AI coding agents.
    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
    19
    360
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic code search across multiple repositories using AST-aware chunking and relationship tracking. Supports local LLM embeddings, real-time indexing, and cross-codebase dependency analysis through vector and graph databases.
    3
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/voxmenthe/search-tools-mcp'

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