Skip to main content
Glama
nickoc

bearing-local-business

by nickoc
README.md
# 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

## Run

Development:

```bash
bun run dev
```

Build and run the compiled server:

```bash
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:

```json
{
  "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:

```json
{
  "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.

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

ActivitySlowing
ResponsivenessNo issues