Code Review MCP
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes, such as static analysis, security scanning, and test running, but there is some potential overlap between 'analysis.run_static' and 'security.run_semgrep' as both involve code analysis, which could cause confusion. The descriptions help clarify their focuses, but the boundaries are not perfectly clear.
Naming Consistency2/5The naming conventions are inconsistent, mixing dot notation (e.g., 'analysis.run_static'), hyphenated names (e.g., 'code-review'), and snake_case (e.g., 'github.fetch_files'). There is no uniform pattern, making the set less predictable and harder for agents to parse reliably.
Tool Count5/5With 9 tools, the count is well-scoped for a code review server, covering key areas like analysis, security, testing, reporting, and integration with GitHub and Jira. Each tool appears to serve a specific function without redundancy, fitting the domain appropriately.
Completeness4/5The toolset covers core code review workflows, including fetching PR data, running analyses, generating reports, and integrating with external systems. A minor gap is the lack of tools for managing or updating review comments or statuses, but agents can work around this with the existing tools.
Average 2.3/5 across 9 of 9 tools scored. Lowest: 1.6/5.
See the Tool Scores section below for per-tool breakdowns.
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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.jsonto 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
- Behavior1/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 fails to describe what 'resolve' entails (e.g., whether it performs validation, returns structured data, or has side effects), any authentication needs, rate limits, or error handling. This is inadequate for a tool with parameters and no 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, straightforward sentence that is front-loaded and wastes no words. However, it is overly concise to the point of under-specification, lacking necessary details for clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It does not explain what the tool does beyond the vague 'resolve', what inputs are expected, or what outputs are produced. This fails to provide enough context for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameters 'options' and 'prId' are undocumented in the schema. The description does not compensate by explaining what these parameters mean, their formats, or how they relate to 'resolving' owner/repo and PR number. This leaves the agent guessing about input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Resolve owner/repo and PR number from an input' states a purpose but is vague about what 'resolve' means in this context (e.g., parsing, validating, fetching details). It mentions the resource (owner/repo and PR number) but lacks a specific verb that distinguishes it from sibling tools like 'github.fetch_files'. This is borderline tautological with the title 'Resolve PR'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, and there is no reference to sibling tools like 'github.fetch_files' that might handle related GitHub operations. This leaves the agent without direction on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/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. 'Run Semgrep scan' offers no insight into traits such as whether it's read-only or destructive, authentication requirements, rate limits, execution time, or output format. This leaves the agent with no understanding of the tool's operational characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only three words, making it front-loaded and free of unnecessary details. However, this brevity results in under-specification rather than effective conciseness, as it omits critical information needed for tool understanding and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving code scanning with parameters), lack of annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. It fails to explain what Semgrep is, how to use the parameters, what the tool returns, or any behavioral aspects, leaving the agent unable to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema, which has 0% description coverage for its two parameters ('files' and 'rulesDir'). Without explanation in the description, an agent cannot infer what 'files' should contain (e.g., file paths, code snippets) or what 'rulesDir' refers to (e.g., directory of Semgrep rule files). This fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run Semgrep scan' restates the tool name and title with minimal elaboration, making it a tautology. While it indicates the tool performs a Semgrep scan, it lacks specificity about what Semgrep is (e.g., a static analysis tool for code security) or what resources it acts upon (e.g., code files). This vagueness fails to distinguish it from sibling tools like 'analysis.run_static' or 'tests.run_playwright'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention use cases (e.g., security auditing, code review), prerequisites, or comparisons to sibling tools like 'analysis.run_static' or 'code-review'. Without any context, an agent cannot determine appropriate scenarios for invoking this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Run Playwright tests' gives no information about what happens during execution (e.g., whether it's destructive, requires specific permissions, has side effects, produces logs/reports, or handles errors). It fails to describe any behavioral traits beyond the basic action implied by the 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action, though this brevity comes at the cost of being under-specified rather than truly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (testing execution with 2 parameters), absence of annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. It doesn't explain what the tool returns, how parameters affect behavior, or any execution context, leaving critical gaps for an AI agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (full, grep) with 0% description coverage, meaning the schema provides no semantic information. The description 'Run Playwright tests' adds no meaning about what these parameters do, their purposes, or how they affect test execution. It completely fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run Playwright tests' is a tautology that essentially restates the tool name 'tests.run_playwright' and title 'Run Playwright'. It specifies the verb 'run' and resource 'Playwright tests', but doesn't distinguish this from potential sibling tools or provide any meaningful elaboration beyond what's already in the name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, nor does it reference any of the sibling tools (like analysis.run_static or security.run_semgrep) that might serve similar testing purposes. There's complete absence of usage direction.
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 full burden for behavioral disclosure. It states the tool fetches tickets but doesn't describe what 'fetch' entails - whether it's a read-only operation, requires authentication, has rate limits, returns partial/full data, or handles errors. The mention of 'prMeta' hints at integration with pull requests but lacks detail on how this works.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 8 words, which is efficient. However, it's arguably too brief given the tool's complexity with 3 parameters and integration hints. Every word earns its place, but more information might be warranted for proper understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with nested objects, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how to interpret results, error conditions, or the relationship between keys and prMeta inputs. For a fetch operation that might involve external system integration, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 3 parameters (including a nested object), the description must compensate but provides minimal help. It mentions 'keys or from prMeta' which maps to two parameters but doesn't explain the 'options' parameter or what the prMeta object fields represent. The description adds some meaning but insufficient for the complexity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool fetches Jira tickets, which is a clear verb+resource combination. However, it's vague about what 'from prMeta' means and doesn't distinguish this tool from potential sibling Jira tools (though none are listed in the provided siblings). The purpose is understandable but lacks specificity about the scope and mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions two input methods (keys or prMeta) but doesn't explain which to choose, prerequisites, or exclusions. Without context about sibling tools, it's unclear if this is the primary Jira access method or if there are other options.
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?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention if this is read-only, requires authentication, has rate limits, returns paginated results, or what 'fetch' entails (e.g., diff format, file content). This leaves significant gaps for a tool that likely interacts with external APIs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase 'Fetch files/diff for a PR', which is front-loaded and wastes no words. Every part earns its place by stating the core action and target, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and 3 parameters, the description is incomplete. It lacks details on behavior, parameter meanings, return values, and usage context. For a tool fetching PR files, this minimal description doesn't provide enough information for an agent to use it effectively without guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no parameter semantics. It doesn't explain what 'owner', 'repo', or 'pull_number' mean, their formats, or constraints. With 3 undocumented parameters, the description fails to provide essential context beyond the schema's basic types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch files/diff for a PR' states a clear verb ('fetch') and resource ('files/diff for a PR'), but it's vague about scope and doesn't distinguish from sibling tools like 'github.resolve_pr' or 'code-review'. It specifies what it does but lacks detail on what 'fetch' entails (e.g., full content vs. metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites, context (e.g., after PR creation), or exclusions, and sibling tools like 'github.resolve_pr' or 'code-review' might overlap without clarification. The description implies usage for PR files but offers no explicit when/when-not instructions.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions generating a markdown report but doesn't cover critical aspects like whether this is a read-only or write operation, authentication needs, rate limits, or what the output entails. This is a significant gap for a tool with 10 parameters and no 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately sized and front-loaded, clearly stating the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, 5 required), no annotations, and no output schema, the description is severely incomplete. It doesn't explain parameters, behavioral traits, or output format, making it inadequate for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about any of the 10 parameters (e.g., 'owner', 'repo', 'verdict'). It fails to compensate for the lack of schema details, leaving parameters entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('generate') and the output type ('code review report markdown'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'code-review' or 'analysis.run_static', which might have overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 such as 'code-review' or 'analysis.run_static'. The description lacks context about prerequisites, timing, or exclusions, leaving the agent with minimal usage direction.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Prune' implies a destructive deletion operation, but the description doesn't clarify whether this is reversible, what 'old' means (time-based criteria), what permissions are required, or what happens to the artifacts. It provides minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core action and target. Every word earns its place, though this conciseness comes at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with 3 required parameters, no annotations, no output schema, and 0% schema description coverage, this description is inadequate. It doesn't explain what the parameters mean, what the tool actually does beyond the basic verb, or what to expect as a result. The minimal description leaves critical gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'old logs and reports' but provides no connection to the three required parameters (owner, repo, pull_number). With 0% schema description coverage, the parameters are completely undocumented in both schema and description. The description fails to compensate for this significant coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('prune') and target resources ('old logs and reports'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from potential sibling cleanup operations that might exist on other servers, though none are listed among the provided siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions. The sibling tools list shows no direct alternatives, but the description offers no usage context whatsoever.
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 the tool runs an AI-powered code review but doesn't describe what that entails—e.g., whether it modifies code, requires authentication, has rate limits, or what the output looks like. This leaves significant gaps in understanding the tool's behavior, especially for a potentially complex operation like code review.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core purpose stated first in a single sentence. The usage example is brief and relevant. However, it could be more structured by separating purpose from usage instructions, and some information is implied rather than explicit, but overall it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an AI code review tool, no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain what the tool returns, how it interacts with GitHub, or any behavioral nuances. This makes it inadequate for an agent to fully understand and use the tool effectively in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions parameters '[prId] [--flags]' but doesn't explain their meaning or usage. With 3 parameters in the schema and 0% schema description coverage, the description fails to compensate by providing details on what 'prId', 'options', or 'aiOutput' represent. This leaves parameters largely undocumented, hindering effective tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run an AI-powered code review for a GitHub PR.' This specifies the verb ('Run'), resource ('code review'), and context ('GitHub PR'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'security.run_semgrep' or 'analysis.run_static', which might offer overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage example ('@code-review [prId] [--flags]'), which implies how to invoke the tool but offers no guidance on when to use it versus alternatives. There is no mention of when this tool is appropriate compared to siblings like 'security.run_semgrep' or 'analysis.run_static', nor any context on prerequisites or exclusions, leaving the agent with minimal usage direction.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal insight. It mentions the tools (ESLint/tsc/Prettier) but doesn't cover critical aspects like whether this is a read-only analysis or modifies files, potential side effects (e.g., formatting changes with Prettier), error handling, or performance implications. This leaves significant gaps for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single, direct sentence that front-loads the core action without unnecessary words. Every part ('Run ESLint/tsc/Prettier on files') contributes essential information, making it efficient and easy to parse at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of running multiple static analysis tools, no annotations, 0% schema coverage, and no output schema, the description is incomplete. It fails to address key contextual elements like what the output includes (e.g., linting results, errors), how to interpret results, or prerequisites (e.g., installed dependencies), leaving users with inadequate information for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description adds minimal value by implying that 'files' are the target and that 'runPrettier' and 'runTsc' control which tools to execute, but it doesn't explain parameter formats (e.g., file paths), default behaviors, or interactions between parameters. This is insufficient for a tool with 3 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run') and the tools involved (ESLint/tsc/Prettier) on specific resources ('files'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'code-review' or 'security.run_semgrep' that might also analyze code, leaving room for ambiguity in a multi-tool context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. For example, it doesn't explain whether this is for pre-commit checks, CI/CD integration, or ad-hoc analysis, nor does it mention sibling tools like 'code-review' or 'security.run_semgrep' that might overlap in functionality. The description lacks context for decision-making.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/shadabbi/code-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server