Skip to main content
Glama
op-enny
by op-enny

Fake Store API MCP Server

A Model Context Protocol (MCP) server that provides seamless access to the Fake Store API for AI assistants. Perfect for e-commerce demos, testing, and learning MCP development.

Features

  • πŸ›οΈ Complete E-commerce Data Access: Products, carts, and users

  • πŸ”§ 18 MCP Tools: Full CRUD operations for all resources

  • πŸ“¦ Easy Integration: Works with Claude Desktop, Plugged.in, and other MCP clients

  • πŸš€ Zero Configuration: Works out of the box with Fake Store API

  • πŸ“ TypeScript: Fully typed for better development experience

  • βœ… Input Validation: Comprehensive parameter validation

Related MCP server: Commerce-MCP

Installation

npx -y mcp-server-fakestore

From Source

git clone https://github.com/yourusername/mcp-server-fakestore.git
cd mcp-server-fakestore
npm install
npm run build

Configuration

Claude Desktop

Add this to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fakestore": {
      "command": "npx",
      "args": ["-y", "mcp-server-fakestore"]
    }
  }
}

Plugged.in

Add this server configuration in Plugged.in MCP settings:

{
  "name": "fakestore",
  "command": "npx",
  "args": ["-y", "mcp-server-fakestore"]
}

Available Tools

Products (7 tools)

  • fakestore_get_products - Get all products with optional limit and sorting

  • fakestore_get_product - Get a single product by ID

  • fakestore_get_categories - Get all product categories

  • fakestore_get_products_by_category - Get products in a specific category

  • fakestore_add_product - Add a new product (simulation)

  • fakestore_update_product - Update an existing product (simulation)

  • fakestore_delete_product - Delete a product (simulation)

Carts (6 tools)

  • fakestore_get_carts - Get all carts with optional limit and sorting

  • fakestore_get_cart - Get a single cart by ID

  • fakestore_get_user_carts - Get all carts for a specific user

  • fakestore_add_cart - Add a new cart (simulation)

  • fakestore_update_cart - Update an existing cart (simulation)

  • fakestore_delete_cart - Delete a cart (simulation)

Users (5 tools)

  • fakestore_get_users - Get all users with optional limit and sorting

  • fakestore_get_user - Get a single user by ID

  • fakestore_add_user - Add a new user (simulation)

  • fakestore_update_user - Update an existing user (simulation)

  • fakestore_delete_user - Delete a user (simulation)

Usage Examples

With Claude Desktop

Get all products:

Show me all products from the fake store

Search by category:

Show me electronics from the fake store

Get user's cart:

What's in user ID 1's shopping cart?

Product analysis:

Find the 5 most expensive products in the store

Programmatic Usage

import { Server } from '@modelcontextprotocol/sdk/server/index.js';

// The server runs on stdio transport
// Connect your MCP client to interact with the tools

Data Structure

Product

{
  id: number;
  title: string;
  price: number;
  description: string;
  category: string;
  image: string;
  rating: {
    rate: number;
    count: number;
  };
}

Cart

{
  id: number;
  userId: number;
  date: string;
  products: Array<{
    productId: number;
    quantity: number;
  }>;
}

User

{
  id: number;
  email: string;
  username: string;
  password: string;
  name: {
    firstname: string;
    lastname: string;
  };
  address: {
    city: string;
    street: string;
    number: number;
    zipcode: string;
    geolocation: {
      lat: string;
      long: string;
    };
  };
  phone: string;
}

Development

# Install dependencies
npm install

# Build the project
npm run build

# Watch mode for development
npm run watch

# Run tests
npm test

Important Notes

  • Simulation: The Fake Store API is read-only. POST, PUT, and DELETE operations return simulated responses but don't persist data.

  • Rate Limits: The public API has no strict rate limits, but please be respectful.

  • Data: All data is fake and for testing purposes only.

Troubleshooting

Server not appearing in Claude Desktop

  1. Ensure the configuration file is valid JSON

  2. Restart Claude Desktop completely

  3. Check the Claude Desktop logs for errors

Tools not working

  1. Verify you have an active internet connection (API requires connectivity)

  2. Check if fakestoreapi.com is accessible

  3. Review error messages in Claude Desktop logs

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

MIT License - see LICENSE file for details.

Resources

Support


Built with ❀️ for the MCP community

Available Tools

18 tools
fakestore_add_cartB

Add a new cart (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID who owns the cart
dateYesCart date in ISO format (e.g., 2024-01-01)
productsYesArray of products in the cart

TDQS

B3.3/5.0
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 a key behavioral trait: 'simulation - does not persist,' indicating it's a non-persistent operation, which is valuable context. However, it lacks details on error handling, response format, or side effects, leaving gaps in behavioral understanding.

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 extremely concise with a single sentence that front-loads the core action and includes a critical behavioral note. Every word earns its place, with no redundant or unnecessary 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?

Given no annotations and no output schema, the description is incomplete for a mutation tool. It covers the simulation aspect but lacks details on return values, error conditions, or interaction with other tools. It's minimally adequate but has clear gaps in context.

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 100%, so the schema fully documents all three parameters. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.

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 ('Add') and resource ('a new cart'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'fakestore_update_cart' or 'fakestore_get_cart', which would require mentioning it's for creation rather than modification or retrieval.

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. It does not mention prerequisites, such as needing an existing user ID, or contrast with other cart-related tools like 'fakestore_update_cart' for modifications or 'fakestore_get_cart' for retrieval.

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

fakestore_add_productA

Add a new product to the store (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesProduct title
priceYesProduct price
descriptionYesProduct description
imageYesProduct image URL
categoryYesProduct category

TDQS

A3.5/5.0
Behavior4/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 effectively reveals that this is a simulation tool ('does not persist'), which is crucial context about its non-destructive, temporary nature. However, it lacks details on response format, error handling, or any rate limits, leaving some behavioral aspects unspecified.

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 extremely conciseβ€”just 10 words in a single sentenceβ€”with zero wasted language. It's front-loaded with the core purpose and efficiently includes the critical simulation disclaimer, making it easy for an agent to parse quickly.

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 tool with no annotations and no output schema, the description provides basic but incomplete context. It covers the simulation aspect well but omits details about what the tool returns, error conditions, or how it interacts with sibling tools. Given the complexity of a write operation, more completeness would be beneficial.

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 100% description coverage, clearly documenting all 5 required parameters. The tool description adds no additional parameter information beyond what's in the schema, so it meets the baseline for adequate but not exceptional parameter semantics.

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 action ('Add a new product') and the resource ('to the store'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'fakestore_update_product' in terms of when to use one versus the other, 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 like 'fakestore_update_product' for modifying existing products. It mentions the simulation aspect but doesn't clarify practical usage scenarios or prerequisites, leaving the agent with minimal context for decision-making.

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

fakestore_add_userA

Add a new user (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesUser email address
usernameYesUsername
passwordYesUser password
firstnameYesFirst name
lastnameYesLast name
cityYesCity
streetYesStreet name
numberYesStreet number
zipcodeYesZIP code
latYesLatitude
longYesLongitude
phoneYesPhone number

TDQS

A4.1/5.0
Behavior4/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 successfully communicates the critical behavioral trait that this is a simulation that 'does not persist' - essential information that wouldn't be captured in annotations. However, it doesn't describe what the tool actually returns or how the simulation behaves.

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 perfectly concise - just 7 words that communicate both the primary function and the critical behavioral constraint. Every word earns its place, and the most important information (simulation nature) is included.

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 tool with 12 required parameters and no output schema, the description provides essential behavioral context about it being a simulation. However, it doesn't explain what the tool returns or provide guidance on the simulation's behavior, leaving gaps in understanding how to interpret results.

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 description coverage is 100%, with all 12 parameters clearly documented in the schema. The description doesn't add any additional parameter information beyond what's already in the schema, so it meets the baseline of 3 for high schema coverage without adding extra value.

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 ('Add a new user') and distinguishes it from sibling tools by specifying the resource type (user). It also includes the critical qualifier 'simulation - does not persist' which differentiates it from actual persistence tools in the fakestore system.

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 context that this is a simulation tool, which implicitly guides when to use it (for testing/demo purposes rather than real data persistence). However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the sibling tools.

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

fakestore_delete_cartB

Delete a cart (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCart ID to delete

TDQS

B3.3/5.0
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 states the tool deletes a cart and adds crucial context that it's a simulation that 'does not persist', which helps the agent understand this is a non-destructive or temporary operation. However, it lacks details on error handling, response format, or side effects, leaving gaps in behavioral understanding.

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 extremely concise and front-loaded, consisting of a single sentence that directly states the action and key behavioral trait ('simulation - does not persist'). Every word earns its place, with no redundant or unnecessary information, 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 complexity (a deletion operation with 1 parameter), no annotations, and no output schema, the description is minimally complete. It covers the basic purpose and a critical behavioral note (simulation), but lacks details on return values, error cases, or interactions with sibling tools. This is adequate for a simple tool but leaves room for improvement in guiding the agent fully.

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 100% description coverage, with the 'id' parameter clearly documented as 'Cart ID to delete'. The description doesn't add any additional meaning beyond this, such as format examples or constraints. According to the rules, with high schema coverage (>80%), the baseline score is 3 when no extra param info is provided in the description.

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 action ('Delete') and resource ('a cart'), making the purpose understandable. It distinguishes itself from sibling tools like 'fakestore_get_cart' by specifying deletion rather than retrieval. However, it doesn't explicitly differentiate from other deletion tools like 'fakestore_delete_product' or 'fakestore_delete_user' beyond the resource type.

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 minimal guidance, only implying usage for deleting carts. It doesn't specify when to use this tool versus alternatives like 'fakestore_update_cart' for modifications or 'fakestore_get_cart' for viewing, nor does it mention prerequisites such as needing a valid cart ID. No explicit when-not-to-use or alternative recommendations are included.

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

fakestore_delete_productA

Delete a product (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID to delete

TDQS

A4/5.0
Behavior4/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 key behavioral traits: the destructive nature ('Delete') and that it's a simulation without persistence. This covers the core safety profile, though it could add more about error handling or what 'simulation' entails specifically.

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 extremely concise with just one sentence that efficiently communicates both the action and critical behavioral context ('simulation - does not persist'). Every word earns its place, and it's front-loaded with the core purpose.

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 deletion tool with no annotations and no output schema, the description does well by clarifying it's a simulation. This addresses key safety concerns, though it could be more complete by mentioning what happens after deletion (e.g., returns success/failure) or linking to sibling tools for verification.

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 100%, with the parameter 'id' clearly documented as 'Product ID to delete.' The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but not enhanced coverage.

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 ('Delete') and resource ('a product'), distinguishing it from sibling tools like fakestore_update_product or fakestore_get_product. It also adds important context about it being a simulation that doesn't persist, which is valuable differentiation.

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 context through 'simulation - does not persist,' suggesting this is for testing rather than production. However, it doesn't explicitly state when to use this vs. alternatives like fakestore_update_product or provide clear exclusions, leaving some ambiguity about appropriate use cases.

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

fakestore_delete_userA

Delete a user (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUser ID to delete

TDQS

A4.2/5.0
Behavior4/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 clearly states this is a simulation that doesn't persist, which is crucial behavioral information about the tool's effect. However, it doesn't mention error handling, response format, or what happens when attempting to delete non-existent users.

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 extremely concise (6 words) and front-loaded with the essential information. Every word earns its place by conveying the action, resource, and critical behavioral constraint (simulation). No wasted words or unnecessary elaboration.

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 single-parameter deletion tool with no annotations and no output schema, the description provides good context by specifying it's a simulation. However, it doesn't explain what the tool returns (e.g., success/failure message, deleted user data) or address edge cases like invalid IDs, leaving some gaps in 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 description coverage is 100%, with the single parameter 'id' already documented as 'User ID to delete'. The description doesn't add any additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

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 ('Delete') and resource ('a user'), and distinguishes it from siblings by specifying it's a simulation that doesn't persist. This provides precise differentiation from other tools like fakestore_delete_product or fakestore_delete_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 provides clear context that this is a simulation tool, which implicitly suggests when to use it (for testing/development) versus when not to use it (for actual data deletion). However, it doesn't explicitly name alternatives or provide specific exclusion criteria beyond the simulation aspect.

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

fakestore_get_cartC

Get a single cart by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCart ID

TDQS

C2.9/5.0
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. While 'Get' implies a read-only operation, it doesn't specify whether this requires authentication, what happens if the ID is invalid (e.g., returns null, throws error), or any rate limits. For a 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('Get a single cart by its ID') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy for an agent to parse quickly.

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 lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain what the tool returns (e.g., cart details, error responses) or address potential complexities like authentication needs. For a retrieval tool with no structured output information, more context is needed to guide the agent fully.

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 100%, with the single parameter 'id' documented as 'Cart ID' in the schema. The description adds no additional meaning beyond this, such as format examples (e.g., numeric range) or context about valid IDs. With high schema coverage, the baseline is 3, as the description doesn't compensate but doesn't detract either.

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 ('a single cart by its ID'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'fakestore_get_carts' (plural) or 'fakestore_get_user_carts', which would require explicit differentiation to earn a 5.

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

Usage 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 'fakestore_get_carts' (for multiple carts) or 'fakestore_get_user_carts' (for user-specific carts). It lacks any context about prerequisites, error conditions, or typical use cases, leaving the agent with minimal usage direction.

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

fakestore_get_cartsB

Get all carts from the store. Optionally limit results and sort.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit the number of carts returned
sortNoSort carts (asc or desc)

TDQS

B3.1/5.0
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 states it's a read operation ('Get'), but lacks details on permissions, rate limits, pagination, or what 'all carts' entails (e.g., all in the system vs. filtered). This is inadequate for a tool with potential complexity.

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

Conciseness5/5

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

The description is two sentences with zero waste: the first states the core purpose, and the second covers optional parameters. It's front-loaded and appropriately sized, making it easy to parse quickly.

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 2 parameters with full schema coverage, the description is minimally adequate but has gaps. It explains what the tool does but lacks behavioral context (e.g., safety, performance) and output details, making it incomplete for optimal agent use.

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 100%, so the schema fully documents both parameters (limit and sort). The description mentions these options ('Optionally limit results and sort') but adds no meaning beyond what the schema provides, such as default behaviors or interaction effects, meeting the baseline of 3.

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 action ('Get all carts') and resource ('from the store'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'fakestore_get_cart' (singular) or 'fakestore_get_user_carts', which would require more specificity to earn a 5.

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

Usage 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 sibling tools like 'fakestore_get_cart' for a single cart or 'fakestore_get_user_carts' for user-specific carts, leaving the agent without context for choosing between them.

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

fakestore_get_categoriesB

Get all available product categories

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read operation ('Get') but doesn't disclose whether it's cached, paginated, rate-limited, or requires authentication. For a tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.

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, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it immediately scannable and perfectly concise for its simple purpose.

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 read tool with no parameters and no output schema, the description is minimally adequate. It states what the tool does but lacks details about return format (e.g., list structure, category fields) or behavioral constraints. Given the low complexity, it's passable but could be more informative.

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 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description appropriately doesn't add parameter details, maintaining focus on the tool's purpose. This meets the baseline 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 verb ('Get') and resource ('all available product categories'), making the purpose immediately understandable. It distinguishes from siblings like 'fakestore_get_products_by_category' by specifying it retrieves categories rather than products. However, it doesn't explicitly mention it's a list operation, which slightly reduces specificity.

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, timing considerations, or differentiate from similar tools like 'fakestore_get_products_by_category' which also involves categories. The agent must infer usage from the name and context alone.

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

fakestore_get_productC

Get a single product by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Get' which implies a read operation, but doesn't disclose behavioral traits like error handling (e.g., what happens if ID doesn't exist), authentication needs, rate limits, or response format. This is a significant gap for a tool with no 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.

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 no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, or behavioral context needed for a tool that retrieves data. This is inadequate for a tool with no structured support.

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 100%, with the parameter 'id' documented as 'Product ID'. The description adds no additional meaning beyond what the schema provides, such as ID format or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.

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 ('a single product'), specifying it's by ID. It distinguishes from sibling tools like 'fakestore_get_products' (plural) and 'fakestore_get_products_by_category', but doesn't explicitly contrast them. 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?

No guidance is provided on when to use this tool versus alternatives like 'fakestore_get_products' for multiple products or 'fakestore_get_products_by_category' for filtered lists. The description implies usage by ID but doesn't mention prerequisites or exclusions.

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

fakestore_get_productsC

Get all products from the store. Optionally limit results and sort by price.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit the number of products returned
sortNoSort products by price (asc or desc)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions optional limiting and sorting, but fails to address critical aspects such as whether this is a read-only operation (implied by 'Get' but not explicit), potential rate limits, error conditions, or the format of returned data (e.g., list structure). This leaves significant gaps in understanding the tool's 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 extremely concise, consisting of only two sentences that directly state the tool's purpose and optional features. Every word serves a purpose, with no redundant or unnecessary information, making it easy to parse and understand quickly.

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 lack of annotations and output schema, the description is incomplete for a retrieval tool. It does not explain the return format (e.g., array of product objects), potential pagination, error handling, or how it differs from sibling tools. While the purpose is clear, the absence of behavioral and contextual details makes it insufficient for fully informed tool selection and invocation.

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 description coverage is 100%, with clear descriptions for both parameters ('limit' and 'sort'). The description adds minimal value by mentioning 'optionally limit results and sort by price', which aligns with but does not significantly expand upon the schema. Since the schema is well-documented, a baseline score of 3 is appropriate, as the description does not compensate for any gaps but also does not detract.

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 action ('Get all products') and resource ('from the store'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'fakestore_get_product' (singular) or 'fakestore_get_products_by_category', which offer more specific retrieval options, leaving room for improvement in distinguishing use cases.

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. For example, it does not mention using 'fakestore_get_product' for a single product or 'fakestore_get_products_by_category' for filtered results, nor does it specify prerequisites or exclusions, leaving the agent to infer usage from context alone.

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

fakestore_get_products_by_categoryC

Get all products in a specific category

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesProduct category name

TDQS

C2.9/5.0
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's a read operation ('Get'), but doesn't mention any behavioral traits such as error handling, rate limits, authentication needs, or what happens if the category doesn't exist. This leaves significant gaps for a tool that interacts with data.

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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and wastes no space, making it easy to parse quickly.

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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a list of products, error formats), behavioral aspects, or how it differs from siblings. For a data retrieval tool, this leaves too much unspecified for effective agent use.

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 description coverage is 100%, with the single parameter 'category' clearly documented as 'Product category name'. The description adds no additional meaning beyond what's in the schema, but since the schema is comprehensive, the baseline score of 3 is appropriate as it doesn't need to compensate.

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 action ('Get all products') and resource ('in a specific category'), making the purpose immediately understandable. However, it doesn't distinguish itself from sibling tools like 'fakestore_get_products' or 'fakestore_get_product', which suggests it's a filtered version but this distinction isn't explicit.

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 'fakestore_get_products' (which likely returns all products) or 'fakestore_get_product' (which likely returns a single product). The description implies usage for category-based filtering but offers no explicit context or exclusions.

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

fakestore_get_userB

Get a single user by their ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUser ID

TDQS

B3.1/5.0
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 action ('Get') but doesn't reveal if this is a read-only operation, what happens if the ID doesn't exist (e.g., returns null or error), or any rate limits or authentication requirements. This leaves significant behavioral 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.

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

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 read operation with one parameter and no output schema, the description is minimally adequate but incomplete. It lacks details on error handling, return format, or differentiation from siblings, which could hinder an agent's ability to use it correctly in context with other 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 input schema has 100% description coverage, with the 'id' parameter clearly documented as 'User ID'. The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or examples, so it meets the baseline for high schema coverage without compensating value.

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 ('a single user by their ID'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'fakestore_get_users' (plural) or 'fakestore_get_user_carts', which could cause confusion about when to use this specific tool versus alternatives.

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 sibling tools like 'fakestore_get_users' for listing multiple users or 'fakestore_get_user_carts' for related data, leaving the agent to infer usage context without explicit direction.

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

fakestore_get_user_cartsB

Get all carts belonging to a specific user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what happens if the user ID doesn't exist. For a read operation 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.

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's front-loaded with the main action and resource, making it immediately scannable. Every word earns its place with no redundancy or fluff.

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 read operation with 1 parameter and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it doesn't address key contextual elements like return format (e.g., array of cart objects), error handling, or authentication requirements. The description meets basic needs but leaves the agent to assume or discover important details.

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 100%, with the single parameter 'userId' clearly documented as a number representing 'User ID'. The description adds no additional parameter semantics beyond what the schema provides (e.g., format examples, valid ranges, or relationship to other tools). The baseline score of 3 reflects adequate but minimal value addition.

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 action ('Get all carts') and target resource ('belonging to a specific user'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'fakestore_get_carts' (which presumably gets all carts without user filtering) and 'fakestore_get_cart' (which gets a single cart). However, it doesn't specify the exact scope (e.g., whether it returns active carts only or all historical carts).

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 'fakestore_get_carts' or 'fakestore_get_cart'. It doesn't mention prerequisites, error conditions, or typical use cases. The agent must infer usage from the tool name and description alone without explicit context.

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

fakestore_get_usersC

Get all users from the store. Optionally limit results and sort.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit the number of users returned
sortNoSort users (asc or desc)

TDQS

C2.9/5.0
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 optional limiting and sorting but lacks critical details like whether this is a read-only operation, potential rate limits, authentication requirements, or what format the returned users are in. For a 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.

Conciseness5/5

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

The description is perfectly concise at just two sentences. The first sentence establishes the core purpose, and the second efficiently covers the optional parameters. Every word serves a purpose with zero wasted text.

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 lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what 'users' means in this context (what fields are returned), doesn't mention pagination or default behavior when parameters aren't provided, and provides no error handling information. For a tool with rich sibling context and no structured output documentation, this leaves too many questions unanswered.

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 description coverage is 100%, with both parameters ('limit' and 'sort') fully documented in the schema. The description adds minimal value by mentioning these options exist but doesn't provide additional semantic context beyond what's already in the structured schema fields.

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 action ('Get all users') and resource ('from the store'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'fakestore_get_user' (singular) or 'fakestore_get_user_carts', which would require explicit differentiation for 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 sibling tools like 'fakestore_get_user' for retrieving a single user or 'fakestore_get_user_carts' for user-specific cart data, leaving the agent to infer usage context without explicit direction.

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

fakestore_update_cartB

Update an existing cart (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCart ID to update
userIdNoNew user ID
dateNoNew cart date
productsNoNew products array

TDQS

B3.3/5.0
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 critical behavioral trait that this is a simulation that 'does not persist', which is essential context not inferable from the schema. However, it lacks details on permissions, error handling, or what 'update' entails beyond the parameters.

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?

Extremely concise with a single sentence that front-loads the core purpose and includes the crucial simulation detail. Every word earns its place with zero waste 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 mutation tool with no annotations and no output schema, the description provides minimal but critical context about the simulation nature. However, it lacks information about what happens during the update, error conditions, or return values, leaving significant gaps in understanding the tool's behavior.

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 100%, providing clear documentation for all 4 parameters. The description adds no additional parameter semantics beyond implying 'id' is required for an existing cart. Baseline 3 is appropriate as the schema does the heavy lifting.

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 action ('Update') and resource ('existing cart'), making the purpose immediately understandable. It distinguishes from siblings like 'fakestore_add_cart' (create) and 'fakestore_delete_cart' (remove). However, it doesn't specify what fields can be updated beyond the simulation note.

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 on when to use this tool versus alternatives. While the description mentions 'existing cart' implying it requires a pre-existing cart ID, it doesn't clarify when to choose this over 'fakestore_add_cart' for modifications or how it relates to other update tools like 'fakestore_update_product'.

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

fakestore_update_productB

Update an existing product (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID to update
titleNoNew product title
priceNoNew product price
descriptionNoNew product description
imageNoNew product image URL
categoryNoNew product category

TDQS

B3.3/5.0
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 critical behavioral trait that this is a simulation that 'does not persist', which is essential context for a mutation operation. However, it doesn't mention error conditions, response format, or other behavioral aspects like whether partial updates are allowed.

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?

Extremely concise with just 7 words that convey the core action and crucial behavioral constraint. Every word earns its place - 'Update an existing product' establishes purpose, and '(simulation - does not persist)' provides essential context without 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 mutation tool with no annotations and no output schema, the description provides the minimum viable information. The simulation disclosure is critical, but more context about what 'does not persist' means practically would be helpful. Given 6 parameters and mutation nature, additional behavioral context 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?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is high.

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 ('an existing product'), making the purpose unambiguous. It distinguishes from siblings like 'fakestore_add_product' by specifying 'existing' rather than creating new. The simulation disclaimer doesn't detract from purpose clarity.

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 'fakestore_update_cart' or 'fakestore_update_user'. The description mentions it's a simulation but doesn't explain when this simulation behavior matters or what the practical implications are for usage decisions.

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

fakestore_update_userB

Update an existing user (simulation - does not persist)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUser ID to update
emailNoNew email address
usernameNoNew username
passwordNoNew password
firstnameNoNew first name
lastnameNoNew last name
cityNoNew city
streetNoNew street name
numberNoNew street number
zipcodeNoNew ZIP code
latNoNew latitude
longNoNew longitude
phoneNoNew phone number

TDQS

B3.3/5.0
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 critical behavioral trait that this is a simulation that 'does not persist,' which is valuable context not inferable from the name or schema. However, it lacks other important details like error handling, response format, or side effects, leaving gaps in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('Update an existing user') and appends crucial behavioral context ('simulation - does not persist'). There is no wasted verbiage, and every word serves a clear purpose.

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 complexity (13 parameters, mutation operation) and lack of annotations and output schema, the description is moderately complete. It covers the simulation nature but misses details like return values, error cases, or prerequisites. It's adequate as a minimum viable description but has clear gaps for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 13 parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., no examples, constraints, or usage tips). According to the rules, this earns a baseline score of 3 when schema coverage is high.

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 ('existing user'), making the purpose evident. It distinguishes from sibling tools like fakestore_add_user (create vs. update) and fakestore_get_user (read vs. update). However, it doesn't specify what fields can be updated beyond the generic 'user' reference, which keeps it from being a perfect 5.

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., user must exist), exclusions, or comparisons to siblings like fakestore_update_product or fakestore_update_cart. The agent must infer usage from the tool name alone.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updates
    • First observedfakestore_add_cart
    • First observedfakestore_add_product
    • First observedfakestore_add_user
    • First observedfakestore_delete_cart
    • First observedfakestore_delete_product
    • First observedfakestore_delete_user
    • First observedfakestore_get_cart
    • First observedfakestore_get_carts
    • First observedfakestore_get_categories
    • First observedfakestore_get_product
    • First observedfakestore_get_products
    • First observedfakestore_get_products_by_category
    • First observedfakestore_get_user
    • First observedfakestore_get_user_carts
    • First observedfakestore_get_users
    • First observedfakestore_update_cart
    • First observedfakestore_update_product
    • First observedfakestore_update_user

TDQS

A3.6/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources (cart, product, user) and actions (add, delete, get, update), with no overlap or ambiguity. For example, fakestore_get_products and fakestore_get_products_by_category are clearly differentiated by scope.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with the prefix 'fakestore_' and snake_case throughout, such as fakestore_add_product and fakestore_get_user_carts. There are no deviations in naming conventions.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a store API covering three main resources (cart, product, user) with full CRUD operations and additional query tools. It feels comprehensive without being overly bloated.

Completeness5/5

The tool set provides complete CRUD coverage for carts, products, and users, along with additional query tools like get_categories and get_products_by_category. There are no obvious gaps, enabling agents to handle all core store operations effectively.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Dynamics 365 Commerce systems through 125+ tools covering customer management, sales orders, cart operations, product searches, inventory tracking, and store operations. Provides comprehensive mock data for development and testing purposes.
    3
    -
  • A
    license
    D
    quality
    D
    maintenance
    Enables natural-language control of e-commerce operations including product management, order processing, inventory tracking, customer service, content generation, and advertising analytics through 15 integrated MCP tools. Provides a local-first commerce automation solution with SQLite storage and extensible channel adapters for end-to-end online store workflows.
    15
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Hosted MCP endpoint that returns realistic fake data for prototyping agents. Paste one URL into Claude Code, Cursor, or Claude Desktop β€” 12 pre-built tools covering users, products, orders, events, email, and knowledge base search. No signup, no config, no auth. Built for developers who want to prototype agent workflows before wiring up a real backend.
    MIT

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/op-enny/mcp-server-fakestore'

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