Skip to main content
Glama
ckaraca
by ckaraca

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct resource and action: products, categories, carts, and users each have list/get operations, with get_products_by_category and get_user_carts providing specific filtered views. There is no overlap or ambiguity between tools.

    Naming Consistency5/5

    All tools follow a consistent snake_case verb_noun pattern: list_* for collections and get_* for individual items. The compound names like get_products_by_category and get_user_carts remain readable and fit the same convention.

    Tool Count5/5

    With 9 tools, the server is well-scoped for a fake store API covering products, categories, carts, and users. Every tool serves a clear purpose without redundancy or bloat.

    Completeness4/5

    The coverage is complete for read-only browsing: all resources have list and detail retrieval, with category and user-cart filtering. However, there are no create, update, or delete operations, which would be expected for full lifecycle management, but this may be intentional for a fake store demo.

  • Average 3.6/5 across 9 of 9 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 is failing
  • 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?

    With no annotations, the description carries full burden. It discloses pagination and sorting behavior, which adds context beyond the raw schema. However, it omits details like default values, maximum limit, authentication requirements, or response structure, leaving gaps.

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

    Conciseness5/5

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

    The description is two short sentences, front-loaded with the primary purpose, and contains no redundant or filler content. Every word earns its place.

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

    Completeness3/5

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

    For a simple list tool with optional pagination parameters, the description is mostly sufficient. However, the lack of an output schema means the return format is unstated, and the phrase 'all users' could mislead without explicitly explaining that pagination limits the result set. Still, the description provides adequate context for basic usage.

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

    Parameters2/5

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

    The schema has zero description coverage, so the description must explain parameter meanings. It mentions 'limit and sorting' but does not clarify what field sorting applies to or how limit behaves. The enum values asc/desc are self-evident, but the description adds minimal semantic value beyond parameter names.

    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 returns all users, which is a specific verb+resource. It is distinguishable from sibling tool get_user (singular) and other entities like products or carts, though it does not explicitly mention the alternative.

    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 explicit guidance on when to use this tool versus alternatives like get_user. It implies use for listing users with pagination, but does not state exclusions or when another tool would be more appropriate.

    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. It only says 'Get detailed information' without disclosing return format, error behavior (e.g., 404 if user not found), or authentication requirements. This is a significant transparency gap for a getter with no structured annotations.

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

    Conciseness5/5

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

    The description is a single, tightly worded sentence that says exactly what the tool does. No filler, redundancy, or unnecessary details.

    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 no output schema or annotations, the description is the only source of context. It adequately conveys the basic function but lacks detail about the response contents or potential failure modes. For a simple getter, this is minimally acceptable but not rich.

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

    Parameters3/5

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

    The schema defines the required 'id' parameter as an integer >0, but provides no description. The description adds that it is the 'user's ID,' giving minimal context. However, it does not explain how to obtain the ID or any constraints beyond what the schema already states.

    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 ('Get'), the resource ('user'), and the scope ('specific user by their ID'). It distinguishes this from sibling tools like list_users (which lists all users) and get_user_carts (which retrieves carts), so the purpose is unmistakable.

    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 gives no guidance on when to use this tool vs alternatives. It does not mention that you need a user ID obtained from list_users, nor does it exclude cases like user carts. The user is left to infer usage context.

    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, and the description simply states the basic operation without disclosing behavior like response structure, error handling, or read-only nature. It does not add contextual information beyond what the tool name already conveys.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no unnecessary words or repetition. It is perfectly concise and front-loaded with the essential verb and object.

    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?

    While the tool is simple (one parameter, no output schema), the description lacks details about what 'detailed information' includes, error behavior, or any limitations. However, for a basic get-by-id operation, it remains minimally viable since the purpose and parameter are clearly stated.

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

    Parameters2/5

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

    The description mentions 'by its ID', which ties the id parameter to the product identifier, but the schema's property name already does this. With 0% schema description coverage, the description fails to provide any additional semantic detail about the parameter, such as format expectations or edge cases.

    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 action (get), the resource (detailed information about a specific product), and the identifier (by its ID). This distinctly separates it from sibling tools that list or filter products, as it is specifically retrieving a single product.

    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 you have a product ID and need detailed data, but it does not explicitly provide any exclusion criteria or mention alternative tools such as list_products or get_products_by_category. Guidance is present but not elaborated.

    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, the description carries the full burden, but it only says 'Get detailed information' without specifying return shape, side effects, or any constraints. It does not disclose what 'detailed' includes or any behavioral traits like read-only status or pagination.

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

    Conciseness5/5

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

    The description is a single, focused sentence with no filler or 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?

    For a simple get-by-ID tool, the description is adequate, but it lacks detail on what the response contains and doesn't clarify when to use this over get_user_carts. Given no output schema, more specificity about return values would improve completeness.

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

    Parameters3/5

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

    The schema's single parameter 'id' is self-explanatory, and the description confirms it's the cart's ID. However, no additional meaning like format or constraints beyond the schema is provided.

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

    Purpose5/5

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

    The description uses a specific verb ('Get') and resource ('cart') with scope ('by its ID'), clearly distinguishing it from sibling list tools like list_carts and get_user_carts.

    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 you have a cart's ID, but doesn't explicitly state when to prefer this over list_carts or get_user_carts. No exclusion criteria or alternatives are mentioned.

    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, the description carries the full burden. It mentions pagination and sorting as behavioral capabilities, which is useful context, but it does not explicitly state that the operation is read-only, whether authentication is required, or the potential for large result sets. The 'get' verb implies read-only but is not explicit.

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

    Conciseness5/5

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

    Two concise sentences front-load the core action with no unnecessary detail. Every word contributes to the essential meaning.

    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 simple list tool with no output schema, the description covers the basic operation but lacks details about return format, default pagination, or how it differs from sibling product tools. It is minimally viable but leaves clear gaps for an agent choosing among tools.

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

    Parameters3/5

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

    The schema has no parameter descriptions (0% coverage), so the description partially compensates by mentioning 'limit' and 'sorting'. It clarifies that limit supports pagination and that sorting is available, but it does not explain the sort enum values, the field being sorted, or default limit behavior.

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

    Purpose5/5

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

    The description clearly states the tool retrieves all products from the store, using a specific verb and resource. It distinguishes from sibling tools like get_product (single product) and get_products_by_category (filtered products) by emphasizing 'all'.

    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 explicit guidance is provided on when to use this tool versus alternatives such as get_product or get_products_by_category. The phrase 'Get all products' implies a general list use, but there are no 'when not to use' instructions or alternative tool mentions.

    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 only states the action and resource, without mentioning read-only implications, auth requirements, pagination, or any side effects, offering minimal transparency beyond what the name implies.

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

    Conciseness5/5

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

    The description is a single concise sentence that clearly and directly states the tool's purpose. Every word earns its place, with no unnecessary information or redundancy.

    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 simplicity of the tool (no parameters, no output schema), the description is reasonably complete for a basic list operation. However, it could have provided more context about the return format or any inherent ordering/filtering, but for a simple category list, it 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?

    The tool has zero parameters, so the schema imposes no requirements. The description doesn't add parameter details, but the baseline for 0 params is 4, indicating the description adequately covers the trivial parameter context.

    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 action ('Get all available product categories') with a specific verb and resource. It distinguishes itself from sibling tools like list_products and get_products_by_category by specifying the target is categories, not products.

    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. There is no mention of use cases, exclusions, or references to sibling tools, leaving the agent without context for choosing this tool over similar list operations.

    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 of behavioral disclosure. It does mention pagination and sorting, which is useful, but it omits details such as the sort field, default ordering, response format, or read-only nature.

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

    Conciseness5/5

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

    The description is two short sentences with no filler. The first sentence states the purpose, and the second adds behaviorally relevant capability info, making it appropriately sized and front-loaded.

    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?

    This is a simple list tool with two optional parameters, but with no output schema or annotations, the description is somewhat thin. It does not explain return shape, default sort field, pagination behavior (e.g., max limit), or how it relates to scoped list tools like get_user_carts.

    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 input schema has 0% description coverage, so the description must compensate. It associates 'limit' with pagination and references sorting, but it does not explain what field sorting applies to or any defaults. This adds minimal meaning beyond the parameter names.

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

    Purpose5/5

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

    The description uses the specific verb 'Get' with the resource 'all shopping carts', clearly indicating a list-all operation. It distinguishes from siblings like get_cart (single cart) and get_user_carts (scoped to a user) through the word 'all'.

    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 notes pagination with limit and sorting, providing some usage context, but it does not explicitly state when to prefer this tool over alternatives like get_cart or get_user_carts. No exclusions or alternative tool references 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?

    No annotations are provided, so the description must carry the behavioral disclosure burden. It mentions pagination and sorting, which adds useful context, but it does not cover edge cases like missing categories, default limits, or sort field applicability.

    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 sentences, front-loaded with the primary purpose, followed by a brief note on pagination and sorting. No redundant or filler content.

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

    Completeness4/5

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

    For a low-complexity read tool with no output schema and no annotations, the description covers the core purpose, required category, and optional pagination/sorting behavior. It is slightly incomplete regarding defaults and error behavior, but sufficient for a simple tool.

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

    Parameters4/5

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

    Despite 0% schema coverage, the description adds meaning by explaining 'pagination with limit' and 'sorting', directly clarifying the purpose of the limit and sort parameters. 'Specific category' also frames the required category parameter.

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

    Purpose5/5

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

    The description states 'Get all products in a specific category' with a clear verb and resource, distinguishing it from sibling tools like list_products (all products) and get_product (single product).

    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 explicit guidance is given about when to use this tool versus alternatives. It implies use for category filtering but does not mention list_products or other tools, nor any exclusions.

    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?

    There are no annotations provided, so the description carries the full burden of behavioral disclosure. The word 'Get' implies a read-only operation, which is safe, but the description doesn't mention what happens if the user doesn't exist, the return format, or whether an empty list is returned. This is acceptable for a simple retrieval tool but lacks explicit behavioral context.

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

    Conciseness5/5

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

    The description is a single, concise sentence that is front-loaded with the action and resource. Every word earns its place, with no extraneous 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 simplicity of the tool (one parameter, no output schema), the description provides enough context to understand its core purpose. However, it doesn't mention the return structure or edge cases, which would enhance completeness. It's still fairly complete for a straightforward 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 only one parameter, userId (integer >0), with 0% schema description coverage. The description compensates by explicitly stating 'by their user ID', which clarifies the parameter's purpose and meaning. This adds value beyond the schema, though it could be more explicit about the expected format or origin of the ID.

    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 'Get all shopping carts for a specific user by their user ID' uses a specific verb ('Get') and resource ('shopping carts') with a clear scope ('for a specific user'). It distinguishes itself from siblings like list_carts (which likely returns all carts) and get_cart (which likely returns a single cart).

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

    Usage Guidelines4/5

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

    The description clearly states that this tool retrieves carts for a specific user, implying it should be used when you have a user ID and need that user's carts. However, it does not explicitly mention alternatives or exclusions (e.g., when to use list_carts or get_cart), 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.

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

fake-store-mcp MCP server

Copy to your README.md:

Score Badge

fake-store-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/ckaraca/fake-store-mcp'

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