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