Skip to main content
Glama
lfnovo

Code Expert MCP Server

by lfnovo

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.0

  • Disambiguation4/5

    Tools are mostly distinct, but there is some overlap between list_repos, get_repo_status, and list_repository_branches for repository status and branch information. Additionally, get_repo_file_content and get_repo_structure both provide directory listings, though they serve different purposes. Descriptions help clarify when to use each.

    Naming Consistency4/5

    The majority of tools follow a verb_noun pattern (list_, get_, delete_, clone_, start_, stop_). Minor deviations include 'list_repos' using an abbreviation and 'get_source_repo_map' breaking the 'get_repo_*' pattern. Overall, naming is predictable and consistent.

    Tool Count5/5

    14 tools is an appropriate number for a server focused on repository lifecycle management and code analysis. Each tool serves a clear purpose without unnecessary bloat, and the count fits within the well-scoped range.

    Completeness5/5

    The server provides complete CRUD for cached repositories (clone, refresh, delete, get status) and a comprehensive set of analysis tools (structure, critical files, source map, documentation, file content). The domain is fully covered with no obvious dead ends.

  • Average 4.2/5 across 12 of 14 tools scored. Lowest: 3.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    The description mentions 'cached' versions, which indicates that the data may be stale or local-only, providing some behavioral insight beyond the annotations (which are absent). However, it does not disclose other important traits such as whether the operation is read-only, any permission requirements, or whether it triggers network calls. The burden is partially met but not fully.

    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 concise at two sentences and front-loads the main purpose. It avoids redundancy but the phrase 'cached versions of a repository across different branches' is slightly convoluted and could be simplified to 'list cached branches'. Still, it is compact and structured effectively.

    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 reasonably explains what the tool returns (paths, strategies, metadata). It does not elaborate on error conditions, pagination, or response format, but for a simple list operation with one parameter, it covers the essential context adequately.

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

    Parameters3/5

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

    The schema has a single param repo_url with 0% description coverage, so the description should compensate. It does not mention repo_url at all, but the parameter is self-explanatory given the tool's focus on 'repository'. The description adds minimal semantic value beyond the schema, which already labels the parameter as 'Repo Url'.

    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 identifies the tool as listing cached branches with metadata, using the verb 'List' and specifying the resource (repository branches). It distinguishes this from sibling tools like list_repos (which lists repositories) and get_repo_structure (which is about structure). The phrase 'cached versions' is somewhat ambiguous but the follow-up 'cached branch' clarifies intent.

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

    Usage Guidelines2/5

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

    There is no explicit guidance on when to use this tool versus alternatives. The description does not mention any use cases, prerequisites, or exclusions. While the tool name implies its purpose, the description fails to provide context on when it is the appropriate choice among the many sibling tools.

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

  • 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 of behavioral disclosure. It states 'retrieve and analyze' but does not explicitly indicate whether this is a read-only operation, whether it modifies the repository, or what side effects might occur. The prerequisite about cloning is present, but it does not disclose safety or side-effect 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 relatively concise, with a clear first sentence and a structured parameter section. The formatting is slightly unconventional for a description, but every sentence conveys useful information without unnecessary padding.

    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?

    Even though the tool is moderately simple, it has no output schema and no annotations. The description does not explain what the tool returns or what 'analyze' produces (e.g., extracted text, summaries, file paths), leaving a significant gap for an agent deciding how to use the output. The prerequisite is stated, but return semantics are missing.

    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 a single parameter (repo_path) with zero description coverage, but the description compensates by providing a dedicated PARAMETER section explaining the accepted formats (GitHub URL, Azure DevOps URL, local path) and including concrete examples. This adds meaningful value beyond the bare schema definition.

    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 retrieves and analyzes documentation files from a repository, listing specific types like README and API docs. However, it does not explicitly differentiate from sibling tools such as get_repo_file_content or get_repo_structure, so it falls short of a 5.

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

    Usage Guidelines4/5

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

    The description gives a clear prerequisite: the repository must be previously cloned via clone_repo. It does not mention when to use this tool over alternatives or provide exclusions, but the enforcement of the clone prerequisite provides useful usage context.

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

  • 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 explains the underlying behavior: git pull for git repos, re-copy for local dirs, and triggering re-analysis. However, it does not disclose potential side effects like merge conflicts or overwriting local changes, leaving gaps in 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 uses a clear warning banner, bullet points, and headings, presenting information in a scannable format. It is slightly repetitive with the warning, 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.

    Completeness2/5

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

    Despite strong purpose and usage guidance, the description is incomplete for a 3-parameter tool without an output schema or annotations. It omits behavior for branch and cache_strategy, does not describe expected outcomes or errors, and lacks information on return values, making it inadequate for full autonomous invocation.

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

    Parameters2/5

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

    Schema coverage is 0%; the description only documents repo_path with examples, while branch and cache_strategy are entirely omitted. Given that the schema itself also lacks descriptions, this is insufficient for an agent to correctly set 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 'Update a repository with latest changes' and distinguishes it from sibling operations by emphasizing 'MANUAL SYNC ONLY' and noting that cloning already provides latest code. This leaves no doubt about the tool's specific function.

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

    Usage Guidelines4/5

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

    It explicitly says to use only when the user requests 'refresh', 'sync', or 'update', and warns against automatic/proactive use. It also notes that refresh is unnecessary after cloning. While it does not name alternative tools like start_auto_refresh, the guidance 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.

  • 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 for behavioral disclosure. It does disclose the non-recursive directory behavior and full file content return, but omits important aspects like error handling, branch selection behavior, cache strategy effect, and authentication requirements.

    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-organized: a concise behavioral overview followed by a PARAMETERS section with examples. Every sentence adds useful information, and the structure makes it easy to scan.

    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 core file/directory behavior well, but without an output schema or annotations it should also mention return format, error behavior, and branch/cache parameter implications. It also does not clarify when to use this instead of get_repo_structure, leaving some contextual gaps for a moderately configured tool.

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

    Parameters3/5

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

    The description adds valuable meaning for repo_path with concrete examples (GitHub URL, Azure DevOps URL, local path) and clarifies that resource_path defaults to the root directory. However, it completely omits branch and cache_strategy, leaving two of four parameters without any explanation beyond their names.

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

    Purpose5/5

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

    The description uses a specific verb ('Retrieve') and clearly scopes the resource: file contents or directory listings from a repository. It further distinguishes behavior for files versus directories, which helps differentiate it from sibling tools like get_repo_structure and get_repo_critical_files.

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

    Usage Guidelines3/5

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

    Usage context is implied through the file-vs-directory behavior, but there is no explicit guidance on when to prefer this tool over siblings such as get_repo_structure or list_repos. No exclusions or alternative tool names are mentioned, so the agent must infer when this tool is appropriate.

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

  • Behavior4/5

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

    Since there are no annotations, the description carries the full burden of disclosing behavior. It explicitly states 'without triggering any operations,' which clearly conveys that this is a read-only, non-mutating check. It also lists all return fields, giving the agent a full picture of the response shape. It does not discuss error conditions or permissions, but for a simple status tool this is sufficient.

    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 appropriately sized. It front-loads the purpose in a single sentence, then uses clear 'USE THIS TO' and 'RETURNS' sections to convey usage and output. Every sentence serves a purpose, and the formatting makes it easy to scan.

    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 effectively covers the tool's purpose, usage scenarios, and return values, which is commendable given the absence of an output schema. However, it completely omits parameter semantics, leaving the agent without guidance on how to populate branch and cache_strategy. This is a notable gap for a tool with three parameters, making the description only moderately complete.

    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?

    The description completely ignores the three parameters (repo_path, branch, cache_strategy). Schema description coverage is 0%, and the description does not compensate by explaining what these parameters do or how they affect the result. An agent would have to rely solely on the schema, which provides minimal help for branch and cache_strategy.

    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 crystal-clear statement: 'Check if a repository is cloned and ready for analysis without triggering any operations.' This uses a specific verb and resource, and explicitly distinguishes the tool from mutating siblings like clone_repo and refresh_repo by emphasizing it performs no operations. The RETURN fields further clarify the status-checking purpose.

    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 'USE THIS TO' section provides explicit, actionable use cases: checking if a repository needs cloning, verifying analysis status, inspecting the active branch, and understanding cache state before using other tools. This gives solid contextual guidance, but it does not name alternative tools or state when not to use this tool, so it stops short of the top score.

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

  • Behavior4/5

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

    Without annotations, the description carries the full burden. It discloses that the repository must be cloned first, that repo_path formats are normalized automatically, and describes response characteristics (directory hierarchy, file counts, extensions). It does not mention side effects (likely none) or how optional parameters affect output, but it provides meaningful behavioral context beyond the tool's basic function.

    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 (parameter, response characteristics, usage, note). It is a bit verbose and repeats the usage intent in multiple bullets, but overall it is organized and each section adds value without requiring extensive trimming.

    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?

    Given the tool has 5 parameters and no output schema, the description should cover all parameters and return behavior. It explains repo_path and gives a high-level summary of response characteristics, but omits the other four parameters. This makes it incomplete for a tool of this complexity, though it does provide enough context for the main use case.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must compensate. It only documents repo_path with examples and normalization behavior, which is helpful for the required parameter. However, it completely ignores the other four parameters (branch, directories, include_files, cache_strategy), leaving their meaning and effect undocumented. This is a significant gap given the number of 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 retrieves directory structure and analyzable file counts for a repository, which is a specific verb and resource. It distinguishes itself from sibling tools like get_repo_file_content or get_repo_critical_files by focusing on structure and file counts rather than content or critical files.

    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 usage context: it is for understanding repository structure and deciding which directories to analyze in detail. It also states a prerequisite (requires prior cloning via clone_repo). However, it does not explicitly exclude other tools or mention when not to use it, so it falls short of a 5.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden. The verb 'Get' and the listing of returned status categories imply a non-mutating read operation, offering useful behavioral context. However, it doesn't explicitly confirm read-only status or mention potential edge cases like system not running.

    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 concise and front-loaded, with a clear main statement followed by a bulleted list of return categories. No redundant or missing content.

    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?

    For a simple zero-parameter tool without an output schema, the description provides a comprehensive overview of the return information. It sufficiently covers what the agent needs to know about the tool's functionality in context of its siblings.

    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?

    There are zero parameters, so the baseline is 4. The description appropriately focuses on return value categories rather than parameters, which adds no additional semantics needed for an empty 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 retrieves the current auto-refresh system status, listing specific information categories. It distinguishes from sibling action tools (start/stop/refresh) by being the status read mechanism.

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

    Usage Guidelines3/5

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

    Usage is implied as the read-only counterpart to start/stop_auto_refresh, but there is no explicit when-to-use guidance or mention of alternatives. The context signals provide sibling names, but the description itself doesn't direct when to choose this tool.

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

  • Behavior5/5

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

    With no annotations, the description carries the full burden and delivers rich behavioral details: status types (threshold_exceeded, building, waiting, success, error), resource management implications (token usage, timeout adjustments, file count thresholds), and scope intersection behavior. It also discloses response metadata (override_guidance, excluded files, completion status). No contradictions with annotations exist.

    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 sections (PARAMETER, RESPONSE CHARACTERISTICS, Scope Control Options, Response Metadata) and front-loaded with a clear purpose statement. It is somewhat verbose and slightly redundant (e.g., resource management points overlap), but each section adds relevant operational information. It earns its length for a complex tool, though it could be tightened.

    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 extensive context: prerequisite, behavioral statuses, resource trade-offs, scope controls, and metadata. It is missing explicit coverage of the branch and cache_strategy parameters, and the response format beyond status types isn't described. Still, it gives enough for an agent to select and invoke the tool correctly in most scenarios.

    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 description compensates for the 0% schema coverage by explaining repo_path with examples and normalization, files/directories with intersection logic, and max_tokens with token control nuances. However, it omits documentation for 'branch' and 'cache_strategy' parameters, leaving two of six parameters semantically unexplained. Overall, the semantic coverage is strong but incomplete.

    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 it 'Retrieve[s] a semantic analysis map of the repository's source code structure, including file hierarchy, functions, classes, and their relationships.' This is a specific verb and resource, distinct from sibling tools like get_repo_structure or get_repo_documentation. The prerequisite mention ('must be previously cloned via clone_repo') further clarifies the context.

    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 usage context by stating that the repository must be cloned first, and details scope control options (files, directories, intersection) with a note supporting 'broad and focused analysis strategies.' It does not explicitly name alternative tools or state when not to use this tool, but the context is sufficient. There is an implicit exclusion: if the repo isn't cloned, you should use clone_repo first.

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

  • Behavior4/5

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

    Since no annotations are provided, the description carries the full burden. It adds useful context by indicating that the data comes from the server's cache and enumerates the metadata fields (clone status, analysis status, branches, cache sizes), giving the agent a clear picture of what to expect without requiring an output schema.

    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, front-loaded sentence that conveys all essential information without redundancy. It efficiently states the action, scope, and return content.

    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?

    For a simple, parameterless tool with no output schema, the description is complete. It explains the exact return value (all cached repos with specific metadata fields) and the nature of the data (from cache), leaving no significant 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 tool accepts zero parameters, so parameter semantics are trivial. The baseline score of 4 applies, and the description adds no parameter information because none is needed; it focuses on the tool's result.

    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 identifies the action (list) and the resource (all repositories in the MCP server's cache) and specifies the included metadata. It distinguishes itself from sibling tools like get_repo_status or list_repository_branches, which focus on a single repository or its branches.

    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 clearly implies this is the tool to use when you want an overview of all cached repositories. However, it does not explicitly state when not to use it or mention alternatives, such as using get_repo_status for a single repository's status.

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

  • 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 behavioral disclosure. It transparently indicates the conditional behavior ('if it's not already running') and notes that it is a manual override for an otherwise automatic process. However, it does not mention what happens if the system is already running (e.g., no-op, error) or describe the output/return value, so it is not a full 5.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with the core purpose in the first sentence and contextual guidance in the second. Every sentence earns its place, with no fluff or repetition.

    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 that this is a simple, zero-parameter control action with no output schema, the description is sufficiently complete. It explains what the tool does, why it might be needed, and when to use it, making it self-contained for an agent to decide 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 tool has zero parameters, so the baseline is 4 according to the rubric. The description adds no parameter-specific information (none needed), but it compensates by explaining the tool's purpose and context, making it clear that no inputs are required.

    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: 'Manually start the auto-refresh system if it's not already running.' It specifies the verb (start), the resource (auto-refresh system), and a condition (if not already running), which distinguishes it from sibling tools like stop_auto_refresh and get_auto_refresh_status.

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

    Usage Guidelines5/5

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

    The description explicitly provides guidance on when to use and when not to use the tool: 'This is typically not needed as auto-refresh starts automatically with the server, but can be useful for recovery scenarios or manual management.' This clearly differentiates it from alternatives and gives concrete use cases.

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

  • Behavior5/5

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

    With no annotations, the description fully discloses behavioral consequences: cancels scheduled refreshes, stops the background worker, and remains inactive until restart. This provides clear side-effect awareness beyond the tool name.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with the key action, and every sentence adds essential context (scope and consequences). No filler or redundancy.

    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?

    For a zero-parameter, no-output tool, the description covers purpose, side effects, and persistence until restart. It is fully sufficient for an agent to select and invoke this tool correctly.

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

    Parameters4/5

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

    The tool has zero parameters, and the input schema is empty, so there is nothing to explain. The baseline of 4 applies as the description need not add parameter details.

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

    Purpose5/5

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

    The description uses a specific verb 'stop' with resource 'auto-refresh system', clearly stating the tool's function. It naturally distinguishes from sibling tools like start_auto_refresh and get_auto_refresh_status by naming the action it performs.

    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 context by stating 'Manually stop' and explaining the effect on repositories ('no longer automatically refreshed'). It does not explicitly name alternatives or exclusions, but the action is unique among siblings, so the usage is clear enough.

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

  • Behavior5/5

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

    With no annotations, the description carries full responsibility for behavioral disclosure. It goes above and beyond by warning 'DESTRUCTIVE OPERATION: This permanently removes cached repositories and cannot be undone,' and details the full scope of deletion (all cached versions, metadata, analysis results, disk space, in-memory references). It also explains identification methods and consequences, providing excellent transparency.

    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 opening statement, a prominent warning, and logically grouped sections (WHAT IT DOES, IDENTIFICATION METHODS, PARAMETER, USE CASES, NOTE). Every sentence adds value and the formatting enhances readability without unnecessary fluff. The front-loaded warning is appropriate for a destructive tool.

    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?

    For a simple one-parameter deletion tool with no output schema or annotations, the description is thoroughly complete. It covers the operation's effect, the irreversible nature, the parameter format, example usage, and the re-clone requirement. This provides an agent with all necessary context to select and invoke the tool 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 provides only a bare string parameter name 'repo_identifier' with no description (0% coverage). The description fully compensates with a dedicated PARAMETER section explaining that it accepts a repository URL or direct cache path, plus examples of both. This gives the agent everything needed to construct valid input.

    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: 'Remove a cached repository from the MCP server's cache, including all associated metadata and analysis results.' The verb 'Remove' is specific and distinct from sibling tools like clone_repo or refresh_repo. It also explicitly warns this is a destructive operation, making the purpose unmistakable.

    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 use cases ('Clean up repositories no longer needed for analysis', 'Free cache space', 'Remove corrupted entries') and notes that after deletion the repo must be re-cloned via clone_repo. While it doesn't explicitly list excluded scenarios or alternatives, the context is strong enough for an agent to decide when to use it.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden and excels. It reveals internal behavior such as the exact weighted scoring formula (function count, cyclomatic complexity, LOC), use of Lizard for on-demand analysis, and the intersection scope logic when both files and directories are supplied.

    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-organized with clear sections (PARAMETER, RESPONSE CHARACTERISTICS, Scope Control, NOTE) and front-loaded purpose. Every sentence adds value, covering prerequisites, metrics, scope semantics, and output metadata without fluff.

    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 no output schema exists, the description thoroughly explains response characteristics: metric details, ranking, and response metadata. It also covers prerequisites, scope control nuances, and overall use-case context. The only minor gap is include_metrics, but overall the description is remarkably complete for a complex 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 description provides substantial semantic value for repo_path (with examples and auto-normalization), files, directories, and limit. It explains the intersection behavior and repo-wide search for files. However, include_metrics is not mentioned at all, leaving its meaning to inference despite being a parameter.

    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 first sentence clearly states the tool's purpose: to identify and analyze the most structurally significant files in a repository to guide code understanding. It distinguishes itself from siblings like get_source_repo_map by positioning itself as an initial exploration tool whose results feed into subsequent, more detailed analysis calls.

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

    Usage Guidelines5/5

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

    The NOTE explicitly states it is designed for initial codebase exploration and mentions how results can be used to target subsequent get_source_repo_map calls. It also provides a clear prerequisite: the repository must be previously cloned via clone_repo, and describes supported analysis modes (full-repo vs. targeted).

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

  • Behavior5/5

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

    No annotations are provided, so the description carries full burden. It discloses return values ('already_cloned', 'pending', 'switched_branch', 'error'), asynchronous behavior ('pending' means background completion), and cache strategy nuances. This is rich behavioral context beyond the schema.

    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 clear sections (main sentence, WHEN TO USE, RETURNS, CACHE STRATEGIES). Each section adds distinct value without redundancy, and the key point (prerequisite) is front-loaded.

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

    Completeness5/5

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

    With no output schema, the description adequately explains all possible return states. It also covers when to use, cache strategies, and prerequisites. For a tool with moderate complexity, this is complete and self-contained.

    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 description must compensate. It explains cache_strategy in detail (shared vs per-branch), branch behavior via return values and cache strategy, and URL is self-evident. This fully covers parameter meaning.

    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 initializes a repository for analysis by copying it to MCP's cache, and explicitly notes it is a prerequisite for all other analysis tools. This distinguishes it from sibling tools like list_repos and get_repo_file_content.

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

    Usage Guidelines5/5

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

    Provides a dedicated WHEN TO USE section specifying first-time analysis, cache strategy switching, and explicitly says it is not needed if already cloned—directing users to check with list_repos. This gives clear usage context and an alternative.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

code-expert-mcp MCP server

Copy to your README.md:

Score Badge

code-expert-mcp MCP server

Copy to your README.md:

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/lfnovo/code-expert-mcp'

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