Skip to main content
Glama

Graffeo Coffee Roasting

Server Details

Live MCP catalog for Graffeo Coffee Roasting - Simply the World's Finest Coffee since 1935.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes: list_products/search_products for discovery, get_product_details for full info, check_stock for inventory. However, get_price is largely redundant with check_stock, which also returns price, creating mild ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., check_stock, list_products). No mixing of conventions or irregular names.

Tool Count5/5

5 tools is well-scoped for an e-commerce catalog assistant. It covers product discovery, details, stock, and price without being too few or excessive.

Completeness4/5

Covers core read operations (list, search, details, stock). Missing update/create/delete, but that's likely out of scope. The redundant get_price slightly detracts from completeness.

Available Tools

5 tools
check_stockAInspect
Check real-time inventory, price, and shipping for a product SKU.

This tool queries the connected e-commerce platform (Shopify, WooCommerce, etc.)
for live inventory data. Returns current stock level, price, and
availability status.

Args:
    sku: Product SKU (Stock Keeping Unit) - e.g., "RED-WIDGET-001"

Returns:
    Dictionary with:
    - sku: The requested SKU
    - stock: Current inventory count
    - price: Current price in USD
    - can_ship_today: Boolean indicating same-day shipping availability
    - message: Human-readable status message

Example:
    >>> await check_stock("WIDGET-001")
    {
        "sku": "WIDGET-001",
        "stock": 42,
        "price": 29.99,
        "can_ship_today": True,
        "message": "✅ WIDGET-001 (Awesome Widget) - 42 in stock at $29.99"
    }
ParametersJSON Schema
NameRequiredDescriptionDefault
skuYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the operation is a real-time query returning live inventory data, and details the output structure including a boolean for shipping. Missing mention of any side effects or permissions, but it's a read operation.

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

Conciseness4/5

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

Description is front-loaded with purpose, followed by structured Args and Returns sections with an example. It is well-organized, though the example could be slightly trimmed without losing clarity.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description is fully sufficient. It covers purpose, parameter semantics, and return format comprehensively.

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

Parameters4/5

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

Schema coverage is 0%, but the description compensates by explaining the sku parameter with format hint and example. This adds significant meaning beyond the bare schema definition.

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 specific verbs ('check real-time inventory, price, and shipping') and names the resource ('product SKU'). It clearly distinguishes from siblings like get_price (which likely only returns price) and get_product_details by combining inventory, price, and shipping info.

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 explains what the tool does and returns, but does not explicitly state when to use it versus alternatives like get_price or list_products. It implies usage for comprehensive stock/price/shipping queries.

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

get_priceAInspect
Get current price for a product SKU.

Args:
    sku: Product SKU - e.g., "WIDGET-001"

Returns:
    Dictionary with sku and current price

Example:
    >>> await get_price("WIDGET-001")
    {"sku": "WIDGET-001", "price": 29.99, "currency": "USD"}
ParametersJSON Schema
NameRequiredDescriptionDefault
skuYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries full burden. It transparently describes input and output, indicating a simple read operation. However, it does not explicitly state that it is read-only or safe, though the example implies no side effects.

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

Conciseness4/5

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

The description is well-structured with Args, Returns, and Example sections. It is concise but could be slightly trimmed without losing value. However, every sentence serves a purpose.

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

Completeness5/5

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

Given the single parameter, output schema present (though not provided in structured form), and the simple nature of the tool, the description is complete. It covers input, output format, and an example.

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

Parameters5/5

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

Schema coverage is 0%, so the description must explain the parameter. It provides an explicit description and an example format for the sku, adding significant value beyond the schema which only specifies type and requirement.

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 it gets the current price for a product SKU. It is specific about the resource and action, and it distinguishes itself from sibling tools like check_stock, get_product_details, list_products, and search_products which handle different aspects.

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 does not explicitly provide guidance on when to use this tool versus its siblings. It includes an example but lacks conditions or exclusions for usage, relying on implicit understanding.

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

get_product_detailsAInspect
Get full product details optimized for AI agents (structured JSON).

Args:
    sku: Product SKU - e.g., "WIDGET-001"

Returns:
    Dictionary with catalog fields; ``found`` is False when the SKU is missing.
ParametersJSON Schema
NameRequiredDescriptionDefault
skuYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Despite no annotations, the description discloses the return format (dictionary with catalog fields) and the behavior when SKU is missing (`found` is False). This adds useful behavioral context beyond the schema.

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

Conciseness5/5

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

The description is extremely concise, with only two clearly labeled sections (Args, Returns). Every sentence provides value without waste.

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

Completeness5/5

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

For a simple retrieval tool with an output schema, the description covers the essential aspects: purpose, parameter, and return behavior including the error indicator (`found` field). Completeness is high.

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

Parameters4/5

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

The schema has 0% description coverage, but the description explains the `sku` parameter with an example ('WIDGET-001') and its meaning (Product SKU). This compensates for the schema gap.

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 it retrieves full product details in structured JSON, optimized for AI agents. This verb+resource combination is distinct from sibling tools (check_stock, get_price, list_products, search_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?

No guidance on when to use this tool versus alternatives. For example, it does not specify that this should be used when complete product details are needed, while get_price is for pricing queries.

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

list_productsAInspect

List products from the connected store, paginated.

Use this tool when an agent needs to DISCOVER products by browsing the
catalog rather than VERIFYING a known SKU. The response includes the SKU
for every product, so a follow-up ``check_stock(sku)`` or
``get_product_details(sku)`` is a natural next step.

Args:
    limit: Number of products to return (1-50, default 10).
    cursor: Opaque cursor from a previous response's ``next_cursor``.
        Omit for the first page.

Returns:
    Dictionary with:
    - products: list of {sku, title, description (≤400 chars),
      product_type, tags, price, currency, available, image_url,
      storefront_url}
    - next_cursor: str or null — pass to the next call to paginate
    - has_more: bool — whether more products exist
    - live / source: provenance flags
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Despite no annotations, the description details pagination behavior, response structure including provenance flags, and does not hide any destructive aspects. Could mention rate limits but not critical for a list tool.

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?

Well-structured with bullet points for args and returns, front-loaded purpose, and every sentence adds value without redundancy.

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

Completeness5/5

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

Fully describes both parameters and return values despite 0% schema coverage; output schema exists but description complements it. Complete for a list tool.

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

Parameters5/5

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

Adds meaning beyond schema: explains limit range and default, clarifies cursor is opaque and to omit for first page. Schema only has defaults, so description is essential.

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

Purpose5/5

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

The description clearly states the tool lists products from the connected store, paginated, and distinguishes it from siblings by framing it as discovery vs verification of known SKUs.

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

Usage Guidelines5/5

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

Explicitly says when to use (browsing catalog) and when not (verifying known SKU), and suggests follow-up tools like check_stock and get_product_details.

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

search_productsAInspect

Search products in the connected store by keyword.

Use this when a shopper's query suggests specific terms the agent can
match against product titles or tags — e.g. "HEPA air purifier" or
"leather wristwatch". Matches Shopify's native storefront search
behavior, so results align with what customers would find on the site.

Args:
    query: Keyword or phrase to match.
    limit: Max products to return (1-50, default 10).

Returns:
    Same shape as ``list_products``. Empty products list when no matches.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Despite no annotations, the description discloses key behaviors: it matches Shopify's native search behavior and returns an empty list when no matches. It does not cover every edge case but provides sufficient transparency for an AI agent.

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 concise and well-structured: a one-sentence purpose, usage guidance, argument descriptions, and output shape. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given the tool's simplicity, the description is complete. It covers purpose, when to use, parameters, and return shape (referencing a sibling tool for details). The output schema existence further reduces the need for detailed return description.

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

Parameters5/5

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

The input schema lacks parameter descriptions (0% coverage), so the description fully compensates by explaining the query parameter as 'Keyword or phrase to match' and the limit parameter with range and default (1-50, default 10). This adds substantial meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Search products in the connected store by keyword.' It uses a specific verb-resource pair and distinguishes from siblings like list_products and get_product_details, which serve different functions.

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 explicit guidance on when to use this tool: 'Use this when a shopper's query suggests specific terms...' and gives examples. It also notes that results align with native storefront search. However, it does not explicitly mention when not to use it or directly compare to sibling tools.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources