Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a distinct purpose: site info, list/get for posts, pages, and tags. No overlap, clear boundaries.

    Naming Consistency5/5

    All tools use the 'ghost_' prefix followed by a consistent verb_noun pattern (e.g., list_posts, get_post), all in snake_case.

    Tool Count5/5

    7 tools is well-scoped for a read-only Ghost CMS server, covering the main resources (site info, posts, pages, tags) without bloat.

    Completeness3/5

    The set covers read operations (list and get) for posts, pages, and tags, plus site info, but lacks write operations like create, update, delete, which limits full lifecycle coverage.

  • Average 3.8/5 across 7 of 7 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 is passing
  • 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?

    Discloses that results include 'post counts', but with no annotations, it fails to mention other traits like read-only nature, auth requirements, or rate limits.

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

    Conciseness5/5

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

    Single sentence, no fluff, front-loaded with key information.

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

    Completeness3/5

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

    Adequate for a simple tool, but lacks details on pagination, default behavior, or ordering; could be more complete given no output schema.

    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?

    Description does not add meaning to the 'limit' parameter (only parameter), leaving the parameter completely without explanation; schema has 0% coverage, so description should compensate but doesn't.

    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?

    Clearly states 'List tags' on Ghost blog with 'post counts', which distinguishes it from siblings like ghost_get_tag (single tag) and ghost_list_posts (list posts).

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives like ghost_get_tag or ghost_list_posts; no when-not or exclusions provided.

    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 exist, so the description carries the full burden. It discloses that results are slimmed (no full body) and that pagination and filtering are supported, which is useful. However, it does not mention error behavior, default filtering behavior (e.g., default status is 'all'), or 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?

    Two concise sentences, front-loaded with the action and key features (filtering, pagination, slimmed metadata). Every sentence adds value with no redundancy.

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

    Completeness3/5

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

    With 4 parameters and no output schema, the description is somewhat incomplete. It mentions slimmed metadata but does not specify which fields are returned, how pagination works in practice, or whether filters are combinable. Adequate but leaves gaps for a tool of moderate complexity.

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

    Parameters3/5

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

    Schema description coverage is 50% (tag and status have descriptions; page and limit do not). The description mentions tagging, status, and pagination at a high level, adding context beyond the schema's individual descriptions. But it does not elaborate on each parameter's format or constraints, leaving the schema to do more work.

    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 lists pages, with optional filtering by status and tag, and pagination. It distinguishes itself from siblings like ghost_list_posts by specifying 'pages' and notes it returns slimmed metadata, differentiating from ghost_get_page which would return full content.

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

    Usage Guidelines3/5

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

    The description implies usage for listing pages with filters, but does not explicitly guide when to use alternatives like ghost_get_page or ghost_list_posts. No exclusions or when-not-to-use advice is given.

    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 provided, so description carries the burden. Mentions return of 'slimmed metadata (no full body)', which is useful behavioral info. However, lacks details on authentication, rate limits, or side effects beyond the read operation.

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

    Conciseness5/5

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

    Two concise sentences that front-load the core purpose. Every sentence adds value without unnecessary detail.

    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?

    Covers optional filtering, pagination, and slimmed output. Lacks details like default sorting, return structure, or behavior when no results. Adequate but not fully comprehensive for a listing tool with no output schema.

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

    Parameters3/5

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

    Schema coverage is 50% (only tag and status have descriptions). Description adds no extra meaning for parameters beyond what schema provides. Baseline of 3 is appropriate given moderate coverage and no additional semantic enrichment.

    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?

    Describes listing posts with optional status/tag filtering and pagination. Clearly distinguishes from sibling tools like 'ghost_get_post' (single post) and 'ghost_list_pages' (different resource).

    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?

    Implies usage via filtering and pagination options, but does not explicitly state when to use this tool versus alternatives (e.g., 'ghost_get_post' for a single post). No when-not or alternative recommendations.

    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?

    Without annotations, the description must disclose behavior. It states the tool fetches a single tag, which implies a read operation, but does not address error conditions (e.g., missing tag), rate limits, or whether the operation is safe. The description is adequate but not comprehensive.

    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 exceptionally concise, consisting of two short sentences that convey the essential information without any superfluous content.

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

    Completeness4/5

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

    Given the low complexity (two optional parameters, no output schema, no nested objects), the description covers the core behavior and constraint. It could mention what happens if both or neither parameter is provided, but overall it is sufficient for an agent to use the tool correctly.

    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?

    With 0% schema description coverage, the description compensates by clarifying that the two parameters are mutually exclusive ('by id or slug') and that exactly one must be provided. However, it does not specify constraints like valid formats or required presence, leaving some ambiguity.

    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 'Fetch a single tag by id or slug', specifying the verb, resource, and identifier options. It effectively distinguishes from sibling tools like ghost_list_tags which lists tags, and ghost_get_post which fetches a different resource.

    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 instruction 'Provide exactly one' is helpful but lacks explicit guidance on when to use this tool versus alternatives such as ghost_list_tags. There is no mention of prerequisites or context for choosing id over slug.

    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 provided, so the description carries full burden. It does not disclose any behavioral traits (e.g., authentication needs, rate limits, side effects). Only the return values are stated, lacking transparency on other aspects.

    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?

    Single sentence with 12 words, no filler, immediately states the core functionality. Optimal conciseness.

    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?

    Despite no output schema, the description lists key return fields (title, description, version, url). For a simple read-only info tool, this is adequate. Could be improved by noting potential error states or response format.

    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?

    No parameters exist (0 params), so baseline score of 4 applies. The description does not need to explain parameter meaning since there are none.

    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 returns basic site info (title, description, version, url), with a specific verb 'Return'. It is distinct from sibling tools that focus on posts, pages, or tags.

    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?

    No explicit guidance on when to use this tool versus siblings. Context implies it is for site-level metadata, but no when-not or alternatives are provided.

    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 discloses the primary behavior (fetching a single post with HTML body) but does not mention read-only nature, auth requirements, or side effects. For a simple read operation, this is minimally adequate but could be more explicit.

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

    Conciseness5/5

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

    The description consists of two concise sentences with no wasted words. It front-loads the core purpose and follows with a critical usage constraint. Every sentence earns its place.

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

    Completeness4/5

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

    Given the tool's simplicity (two parameters, no nested objects, no output schema), the description is largely sufficient. It covers the action, identifier options, and return detail (HTML body). A minor addition about the return structure could improve completeness, but current info is adequate.

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

    Parameters4/5

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

    Schema coverage is 100% with both id and slug described as 'post id.' and 'post slug.' respectively. The description adds the important constraint 'Provide exactly one of id or slug', which is not enforced by the schema (both are optional). This adds meaningful usage guidance beyond the 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 verb 'Fetch' and the resource 'a single post', specifying the retrieval method 'by id or slug' and the additional detail 'including its full HTML body'. It effectively distinguishes from sibling tools like ghost_list_posts (list multiple posts) and ghost_get_page (different resource).

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

    Usage Guidelines4/5

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

    The description explicitly states 'Provide exactly one of id or slug', giving a clear constraint on parameter usage. It does not, however, explicitly compare to sibling tools or provide when-to-use vs. when-not-to-use guidance, though the sibling names imply differentiation.

    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?

    No annotations provided, so description bears full burden. It discloses that the tool returns 'full HTML body', which is a key behavioral trait. However, it does not cover error cases (e.g., page not found) or permissions, but for a simple fetch, 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?

    Two concise sentences with no wasted words. Front-loaded: first sentence states action and result, second adds constraint. Every sentence earns its place.

    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 a simple fetch tool with 2 optional parameters, no output schema, and no annotations, the description covers essential aspects: what it does, how to call it (exactly one of id/slug), and what it returns (full HTML body). Completely adequate for an AI agent.

    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?

    Input schema has 100% description coverage (id and slug described), so baseline is 3. Description adds 'Provide exactly one of id or slug', clarifying mutual exclusivity and usage constraint, which adds value beyond 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?

    Description clearly states 'Fetch a single page by id or slug, including its full HTML body.' Verb 'fetch' is specific, resource is 'page', method is by id/slug, and output includes full HTML body. Distinguishes from siblings like ghost_list_pages and ghost_get_post by specifying page vs post and single vs list.

    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?

    Description only gives the constraint 'Provide exactly one of id or slug.' No explicit when-to-use or when-not-to-use guidance, nor alternatives mentioned. While the constraint is useful, the agent lacks context for choosing this tool over siblings like ghost_list_pages or ghost_get_post.

    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

ghost-mcp-secure MCP server

Copy to your README.md:

Score Badge

ghost-mcp-secure 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/cuonghapvn/ghost-mcp-secure'

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