Skip to main content
Glama
devhub

DevHub CMS MCP

Official
by devhub

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes, but get_hours_of_operation and update_hours are closely related and could potentially be confused due to similar naming and overlapping functionality. The other tools target clearly different resources like blog posts, businesses, locations, and images, making them easy to distinguish.

    Naming Consistency5/5

    All tools follow a consistent verb_noun naming pattern, such as create_blog_post, get_blog_post, update_blog_post, get_businesses, get_locations, and upload_image. There are no deviations in style or convention, making the set predictable and readable.

    Tool Count5/5

    With 10 tools, the count is well-scoped for a CMS server covering blog posts, businesses, locations, hours, and media. Each tool serves a clear purpose, and there are no redundant or trivial additions, fitting typical expectations for such a domain.

    Completeness3/5

    The toolset covers blog post creation, retrieval, and update, but lacks deletion, which is a notable gap in the CRUD lifecycle. For locations and businesses, retrieval tools are present, but creation, update, and deletion are missing, leaving significant operational gaps that could hinder agent workflows.

  • Average 3.3/5 across 10 of 10 tools scored.

    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
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • 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.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

  • 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 'Get[s] a single blog post', which implies a read-only operation, but doesn't clarify aspects like authentication requirements, error handling (e.g., what happens if the post_id doesn't exist), rate limits, or response format. This leaves significant gaps in understanding how the tool behaves in practice.

    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 and well-structured, with a clear purpose statement followed by parameter details in a labeled section. It avoids unnecessary fluff and is front-loaded with the main functionality. However, the 'Args' section could be integrated more seamlessly, and there's room for slight improvement in flow.

    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 simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It lacks information on return values, error conditions, and behavioral traits, which are crucial for a read operation. Without annotations or an output schema, the description should provide more context to ensure the agent can use the tool effectively, but it falls short.

    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 includes an 'Args' section that documents the 'post_id' parameter, adding meaning beyond the input schema, which has 0% description coverage. However, it only provides a basic label ('Blog post id') without details on format, constraints, or examples. With one parameter and low schema coverage, this compensates minimally, meeting the baseline for adequate but incomplete documentation.

    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 purpose with a specific verb ('Get') and resource ('a single blog post'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_blog_post' or 'update_blog_post' beyond the verb choice, which prevents a perfect 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/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'get_blog_post' instead of other sibling tools like 'get_businesses' or 'get_locations', nor does it specify prerequisites or context for usage. The only implied usage is retrieving a specific blog post, but this is basic and insufficient for effective tool selection.

    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 states 'Update a single blog post', implying a mutation operation, but doesn't cover critical aspects like required permissions, whether changes are reversible, error handling, or response format. The HTML content guideline is useful but insufficient for a mutation tool with zero annotation coverage.

    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 appropriately sized and front-loaded, starting with the core purpose 'Update a single blog post'. The parameter details are listed concisely, though the HTML guideline could be integrated more smoothly. There's minimal wasted text, 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/5

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

    Given the complexity of a mutation tool with 3 parameters, 0% schema description coverage, no annotations, and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., side effects, auth needs), usage context, and return values, leaving significant gaps for an AI agent to rely on.

    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 meaningful context for parameters: it clarifies that 'post_id' is a 'Blog post ID', 'title' is a 'Blog post title', and 'content' is 'HTML content of blog post' with a specific guideline about avoiding <h1> tags. Since schema description coverage is 0%, this compensates somewhat, but it doesn't fully explain all three parameters (e.g., format of post_id, constraints on title).

    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 verb 'Update' and resource 'a single blog post', making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_blog_post' or 'get_blog_post', though the action 'Update' implies it modifies existing posts rather than creating new ones or retrieving them.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing post_id), exclusions, or comparisons to siblings like 'create_blog_post' for new posts or 'get_blog_post' for retrieval, leaving usage context unclear.

    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 states it 'Get's data, implying a read-only operation, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or what the return format looks like (e.g., distance, address details). This is a significant gap for a tool with zero annotation coverage.

    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 appropriately sized and front-loaded, with the core purpose stated first followed by parameter details. The parameter explanations are efficient, though the formatting with 'Args:' could be slightly more polished for readability.

    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 complexity (3 required parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., nearest location details, distance metrics), error conditions, or behavioral traits like performance or dependencies, leaving the agent with insufficient context for reliable 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 description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'business_id' is a 'DevHub Business ID associated with the location' and instructs to 'Prompt the user for this ID', and clarifies that 'latitude' and 'longitude' refer to 'the location' (presumably the user's or a target location). This compensates well for the lack of 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 verb 'Get' and resource 'nearest DevHub location', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'get_locations' or 'get_businesses', which might have overlapping functionality for location-related queries.

    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 like 'get_locations' or 'get_businesses'. The description lacks context about prerequisites, exclusions, or specific use cases, leaving the agent with no directional cues for tool selection.

    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 for behavioral disclosure. It mentions the upload action and supported formats but lacks critical behavioral details: whether this requires authentication, what permissions are needed, whether it overwrites existing files with same names, what happens on success/failure, rate limits, or what the return value contains. For a mutation tool with zero annotation coverage, this leaves significant 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 appropriately sized and well-structured with clear sections: purpose statement, format support, and parameter explanations. Each sentence earns its place by adding value. The information is front-loaded with the core purpose first. Minor improvement could be made by integrating parameter details more seamlessly rather than using a separate 'Args:' section.

    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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It covers the basic action and parameters but misses critical context: authentication requirements, error handling, return values, file size limits, or what happens in the DevHub media gallery after upload. For a tool that modifies system state, this leaves too many unknowns for safe and effective use.

    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 adds meaningful semantic context beyond the schema. While schema description coverage is 0% (titles only), the description explains that 'base64_image_content' should contain 'Base 64 encoded content of the image file' and 'filename' should be 'Filename including the extension' - providing crucial usage guidance not present in the bare schema. For 2 parameters, this adequately compensates for the low schema coverage.

    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 verb ('Upload') and resource ('image to the DevHub media gallery'), making the purpose immediately understandable. It distinguishes from sibling tools like create_blog_post or get_locations by focusing specifically on media uploads rather than content creation or data retrieval. However, it doesn't explicitly differentiate from potential similar upload tools (though none exist in the sibling list).

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. While it mentions supported image formats (webp, jpeg, png), it doesn't explain when you'd choose this over other media handling methods or what prerequisites exist (like authentication requirements or file size limits). There's no mention of when-not-to-use scenarios or comparisons with 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a list of locations with specific fields, which is helpful, but lacks critical details such as whether it's read-only (implied by 'Get' but not explicit), pagination behavior, error handling, authentication needs, or rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

    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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a structured list of return fields. Every sentence earns its place by adding value, with no redundant or verbose language, making it efficient and easy to parse.

    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's low complexity (1 parameter, no output schema, no annotations), the description is moderately complete. It explains the purpose and return fields adequately, but lacks details on behavioral aspects like error handling or usage context. Without annotations or an output schema, it should do more to compensate, but it covers the basics for a simple read operation.

    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 input schema has 1 parameter (business_id) with 0% description coverage, so the description must compensate. It adds meaning by clarifying that locations are retrieved 'for a business', implicitly explaining the business_id parameter's role. However, it doesn't specify format constraints or examples, leaving some ambiguity. With 0 parameters documented in the schema, the baseline is 4, and the description partially meets this by providing contextual meaning.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all locations for a business' specifies the verb ('Get') and resource ('locations'), with the scope ('for a business') distinguishing it from siblings like 'get_nearest_location' or 'get_businesses'. However, it doesn't explicitly differentiate from potential similar tools beyond the business 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/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid business_id), exclusions, or comparisons to siblings like 'get_nearest_location' or 'get_businesses', leaving usage context implied at best.

    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 for behavioral disclosure. It mentions that content 'Should not include a <h1> tag, only h2+' which is useful behavioral guidance, but fails to disclose critical aspects: whether this is a mutation (implied but not stated), what permissions are needed, whether the post is published immediately or saved as draft, what happens on success/failure, or what the return value contains. For a creation tool with zero annotation coverage, this leaves significant 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 appropriately sized and front-loaded with the core purpose. The parameter explanations are organized in a clear 'Args:' section. While efficient, the 'Prompt the user for this ID' note could be more concise, and the formatting constraint for content might belong in a separate guidelines section rather than inline with the parameter definition.

    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 a 3-parameter creation tool with no annotations and no output schema, the description does an adequate job but has clear gaps. It covers parameter meanings well and provides some behavioral guidance about HTML formatting, but misses critical context about the mutation nature, permissions, publication status, and return values. The description is minimally viable but incomplete for a tool that creates content.

    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 provides excellent parameter semantics despite 0% schema description coverage. It explains what each parameter represents: 'Website ID where the post will be published' for site_id, 'Blog post title' for title, and 'HTML content of blog post' with specific formatting constraints for content. The 'Prompt the user for this ID' guidance for site_id adds practical usage context. 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.

    Purpose4/5

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

    The description clearly states the verb 'Create' and resource 'blog post', making the purpose immediately understandable. It distinguishes from siblings like 'update_blog_post' by specifying 'new', but doesn't fully differentiate from other creation tools that might exist (though none are listed as siblings). The purpose is specific and actionable.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. While it mentions 'Prompt the user for this ID' for site_id, this is parameter guidance rather than tool selection advice. There's no mention of prerequisites, when not to use it, or how it differs from similar operations like 'update_blog_post' beyond the obvious creation vs. update distinction.

    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 discloses that the tool returns site details (ID, URL, location IDs) and can prompt for user input, which adds useful behavioral context. However, it lacks details on error handling, permissions, or rate limits, leaving gaps for a tool that fetches data.

    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 and appropriately sized: it starts with the core purpose, adds usage notes, lists return values, and details parameters. Each sentence adds value, but the bulleted return list could be slightly more concise. Overall, it's efficient with minimal waste.

    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 no annotations, no output schema, and 1 parameter with low schema coverage, the description is moderately complete. It covers the purpose, parameter semantics, and return values, but lacks error handling, authentication needs, or examples. For a data-fetching tool, this leaves some contextual 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 has 1 parameter with 0% description coverage, so the description must compensate. It adds meaning by specifying the 'url' parameter format: 'all lowercase and ends with a slash.' This provides critical syntax details beyond the schema's basic string type, though it doesn't cover all potential edge cases (e.g., validation rules).

    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 purpose: 'Get the DevHub site ID from a URL.' This specifies the verb ('Get') and resource ('DevHub site ID'), and distinguishes it from sibling tools like 'get_locations' or 'get_businesses' by focusing on site identification from a URL. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_nearest_location' might also involve URLs), keeping it at 4 rather than 5.

    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 provides some usage context: 'Can prompt the user for the URL instead of passing a site_id.' This implies an alternative input method but doesn't specify when to use this tool versus others (e.g., 'get_locations' for location data). No explicit when/when-not guidance or named alternatives are given, so it's implied rather than clear.

    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 discloses the return format (list of 7 items representing days) and behavioral traits like handling of closed days and lunch breaks, but lacks details on error handling, permissions, or rate limits. It adds value beyond basic function but is incomplete for full 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 appropriately sized and front-loaded with the core purpose. It efficiently includes examples and parameter explanations, though the formatting of examples could be slightly clearer. Most sentences add value without waste.

    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 no annotations and no output schema, the description does well to explain the return structure and parameters. However, it lacks information on error cases, authentication needs, or rate limits, making it incomplete for a tool with 2 parameters and complex return behavior.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It explains 'location_id' as a 'DevHub Location ID' and 'hours_type' with its default and user specification context, adding meaningful semantics beyond the bare schema. However, it doesn't detail possible values for 'hours_type' beyond 'primary'.

    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 specific action ('Get the hours of operation') and resource ('for a DevHub location'), distinguishing it from sibling tools like 'get_locations' or 'update_hours'. It precisely defines what the tool does without being vague or tautological.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_locations' or 'update_hours'. It mentions a default for 'hours_type' but lacks explicit context, prerequisites, or exclusions for tool selection.

    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?

    No annotations are provided, so the description carries the full burden. It discloses that the tool returns a list of businesses with specific fields (id and business_name), which is useful behavioral context. However, it lacks details on error handling, pagination, or rate limits, which are important for a read operation. The description doesn't contradict any annotations, but it's not fully comprehensive.

    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 and concise, with three sentences that each add value: stating the purpose, detailing the return fields, and providing usage guidance. It's front-loaded with the core purpose. A minor point is that the second sentence could be more tightly integrated, but overall it's efficient with minimal waste.

    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 no annotations, no output schema, and 0 parameters, the description does a decent job by explaining the return format and usage assumption. However, for a tool that returns data, more details on response structure (e.g., list format, error cases) would improve completeness. It's adequate but has clear gaps in behavioral context.

    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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, which is correct. However, it doesn't add any extra semantic context beyond the schema, so it earns a baseline 4 for zero-parameter tools.

    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 purpose: 'Get all businesses within the DevHub account.' It specifies the verb ('Get') and resource ('businesses'), and the scope ('within the DevHub account') is well-defined. However, it doesn't explicitly differentiate from sibling tools like 'get_locations' or 'get_nearest_location', which prevents a score of 5.

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

    Usage 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 'If only one business exists in the account, you can assume that the user wants to use that business for any business_id related tools.' This gives practical guidance on when to use the tool's output. However, it doesn't specify when not to use it or name explicit alternatives among siblings, 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.

  • 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 clearly indicates this is a mutation tool ('Update'), describes the data structure (7 items representing days, 0-4 time ranges), and provides formatting examples. However, it lacks information about permissions, side effects, error conditions, or what happens to existing hours not mentioned.

    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 appropriately sized and well-structured: it starts with the core purpose, explains the data format, provides concrete examples, and lists parameters with explanations. Every sentence adds value, though the parameter explanations could be slightly more integrated with the initial description.

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

    Completeness3/5

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

    For a mutation tool with no annotations and no output schema, the description does a good job explaining parameters and data format. However, it lacks information about what the tool returns, error handling, authentication requirements, or how changes affect existing data. The examples help but don't fully compensate for missing behavioral context.

    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?

    With 0% schema description coverage, the description fully compensates by explaining all three parameters: 'location_id' identifies the target, 'new_hours' is described in detail with structure and examples, and 'hours_type' is explained with its default value and optional nature. The description adds substantial meaning beyond the bare 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 specific action ('Update'), resource ('hours of operation for a DevHub location'), and scope (days of the week with time ranges). It distinguishes from sibling tools like 'get_hours_of_operation' by focusing on modification rather than retrieval.

    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 updating hours for a DevHub location, but provides no explicit guidance on when to use this tool versus alternatives like 'get_hours_of_operation' or other update tools. No prerequisites, exclusions, or comparison to siblings are mentioned.

    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

devhub-cms-mcp MCP server

Copy to your README.md:

Score Badge

devhub-cms-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/devhub/devhub-cms-mcp'

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