Skip to main content
Glama
nickoc

bearing-local-business

by nickoc

bearing-local-business

bearing-local-business is a Bearing reference stdio MCP server for a fictional bakery, Cypress & Crumb. It makes a local business agent-queryable so a customer's AI agent can check hours, inspect the menu, ask about custom-order timing, and initiate a demo inquiry.

All data is fictional demo data. The server makes no network calls, persists nothing, and is intended as a reference for the agentic economy: a local business exposing a clean, typed MCP surface for discovery and transaction initiation.

Tools

get_business_profile

  • Input: none

  • Output: bakery name, tagline, weekly hours, address, phone, pickup details, delivery details, and custom-order lead time

get_menu

  • Input: { category?: string }

  • Output: the full menu grouped by category, or the filtered category if provided

check_custom_order_availability

  • Input: { date: string, orderType?: string }

  • Output: whether the requested date is far enough out for a custom order, the integer days out, and the earliest available date

submit_order_inquiry

  • Input: { name: string, contact: string, details: string, date?: string }

  • Output: a demo inquiry reference plus the captured request details

Related MCP server: agent-storefront

Run

Development:

bun run dev

Build and run the compiled server:

bun run build
bun run start

The server reads src/data/demo-bakery.json at runtime with readFileSync and import.meta.url path resolution. The loader checks both the source-layout path used by bun run src/index.ts and the built-layout path used by node dist/index.js, so the JSON file does not need to be copied into dist/.

MCP Client Config

Example Claude Desktop or compatible stdio client config:

{
  "mcpServers": {
    "bearing-local-business": {
      "command": "node",
      "args": [
        "/absolute/path/to/bearing-mcp/dist/index.js"
      ]
    }
  }
}

For local development, you can also point a client at Bun:

{
  "mcpServers": {
    "bearing-local-business": {
      "command": "bun",
      "args": [
        "run",
        "/absolute/path/to/bearing-mcp/src/index.ts"
      ]
    }
  }
}

Point It At A Real Business

To adapt this for a real business, replace the fictional demo-bakery.json source with a consented, authenticated system of record such as a POS, ordering backend, or inventory service. In a real deployment:

  • keep the MCP tool contracts stable

  • add authentication and authorization

  • persist inquiries into the business's system

  • fetch live hours, menu, and availability from an approved source

This demo intentionally does none of that. It persists nothing and only echoes a simulated inquiry capture.

Available Tools

4 tools
check_custom_order_availabilityCheck custom-order availabilityA

Given a requested YYYY-MM-DD date, report whether it meets the custom-order lead time, how many days out it is, and the earliest available date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
orderTypeNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It clearly indicates a read-only reporting operation by specifying the exact outputs: whether lead time is met, days out, and earliest available date. It does not cover edge cases or validation behavior, but the core behavior is well disclosed.

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 well-structured sentence that front-loads the input ('Given a requested YYYY-MM-DD date') and lists the three concrete outputs. Every word earns its place with no 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?

Given the lack of annotations and output schema, the description explains the main return values but omits parameter semantics for orderType and provides no usage guidance versus sibling tools. It is minimally viable for a simple availability check but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only clarifies the 'date' parameter format (YYYY-MM-DD). The optional 'orderType' parameter is completely undocumented, leaving the agent without guidance on its values, purpose, or effect on the availability check.

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 reports whether a date meets custom-order lead time, how many days out, and the earliest available date. This specific verb+resource distinguishes it from sibling tools like submit_order_inquiry, get_menu, and get_business_profile.

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 gives clear context: use when you have a requested date and need availability/lead-time information. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous, so it narrowly misses a 5.

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

get_business_profileGet business profileA

Return the bakery's core profile: name, tagline, weekly hours, address, phone, and pickup/delivery details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description relies on 'Return' to signal a read-only operation, but it does not disclose additional behavioral traits such as caching, data freshness, or error handling. It provides basic transparency but leaves room for more.

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?

A single sentence efficiently lists the returned fields with no redundancy. The description is front-loaded with the purpose and enumerates contents compactly.

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 zero-parameter tool with no output schema, the description fully enumerates the return payload (name, tagline, hours, address, phone, pickup/delivery), making it complete for its complexity. There is no missing essential information.

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

Parameters4/5

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

The input schema has zero parameters, and the description naturally does not need to explain parameter behavior. The baseline for zero-parameter tools is 4, and the description meets this without adding unnecessary detail.

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

Purpose5/5

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

The description uses the verb 'Return' with the specific resource 'bakery's core profile' and enumerates the fields, clearly distinguishing it from sibling tools like get_menu or check_custom_order_availability. This is a specific verb+resource with clear scope.

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 implies the tool is used when the bakery's general profile information is needed, which is clear context for the given zero-parameter tool. However, it does not explicitly state exclusions or alternatives to sibling tools, so it falls short of a 5.

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

get_menuGet menuA

List menu items grouped by category. Optionally filter to a single category (e.g. cakes, pastries, bread, coffee, catering).

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the core behavior (listing and grouping, optional filtering) but does not mention return format, pagination, or behavior for invalid categories. This is adequate for a simple read-only tool but lacks some 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, well-structured sentence that provides essential information without redundancy. The optional filter is clearly separated by a period, making it easy to parse.

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 tool with one optional parameter and no output schema, the description covers the core functionality adequately. It could mention the structure of the output or behavior when no category is provided, but given the simplicity, it is sufficiently complete.

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 only defines 'category' as a string with no description (0% coverage), so the description's explanation that it filters to a single category with concrete examples (cakes, pastries, etc.) adds significant 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 uses a specific verb ('List') and resource ('menu items') with a clear grouping behavior ('grouped by category'), and it distinguishes itself from sibling tools focused on orders and business profile.

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

Usage Guidelines4/5

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

The description clearly indicates the optional category filter with examples, which implies when to use the tool. It does not explicitly mention alternatives, but sibling tools are clearly unrelated, so no exclusion is necessary.

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

submit_order_inquirySubmit an order inquiry (demo)A

Capture a demo custom-order inquiry and return a reference. This is a demo: nothing is persisted or transacted.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
nameYes
contactYes
detailsYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: 'This is a demo: nothing is persisted or transacted' is a critical, non-obvious behavioral disclosure that prevents an agent from expecting real persistence. It also mentions the return of a reference. However, it does not describe validation behavior or the reference format.

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

Conciseness5/5

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

The description is two short sentences, front-loads the purpose, and wastes no words. The demo warning is a necessary addition and is placed effectively. Every sentence contributes meaningful information.

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?

The tool has four parameters, no output schema, and no annotations, so the description is the only source of guidance. It explains the demo side effect and that a reference is returned, but it does not clarify parameter semantics, response structure, or when this is appropriate relative to sibling tools. This is insufficient for reliable invocation beyond a trivial case.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not compensate by explaining any of the four parameters. While names like 'name', 'contact', and 'details' are self-explanatory, the optional 'date' field and expected formats or semantics are left completely unspecified, adding little beyond the schema's property list.

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

Purpose5/5

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

The description clearly states the action: 'Capture a demo custom-order inquiry' and the output: 'return a reference.' It names the specific resource (custom-order inquiry) and the verb (capture/submit), distinguishing it from the sibling tools that check availability or retrieve menus.

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 when to use the tool (to submit a demo custom-order inquiry) but does not explicitly state when not to use it or mention alternatives like check_custom_order_availability. The demo caveat provides some context but no direct comparison with siblings.

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.

  1. 4 tool updatesv0.1.0
    • First observedcheck_custom_order_availability
    • First observedget_business_profile
    • First observedget_menu
    • First observedsubmit_order_inquiry

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct concern: business profile, menu, availability check, and inquiry submission. There is no functional overlap between any pair of tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: check_, submit_, get_, get_. The verbs are specific and the pattern is uniform.

Tool Count5/5

With only 4 tools, the set is tightly scoped to the server's purpose of providing business info and handling custom-order inquiries. Each tool earns its place.

Completeness5/5

The tool surface covers the core domain: discovering the business (profile), exploring offerings (menu), verifying order feasibility (availability), and initiating an order (inquiry). No essential operation is missing for the stated demo scope.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for managing bakery recipe technical sheets with Postgres. Enables AI agents to search, create, update, approve, and compare recipe versions through secure tools.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables any AI agent to discover, query, and order from a restaurant's storefront via MCP tools. It handles menu lookup, modifier validation, and enforces a mandatory confirmation gate before payment, replacing the human-operated phone line.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes tools to query DulceGestion business data (orders, stock, customers) and retrieve documentation via RAG, enabling Claude to assist with pastry shop management.
    -