Find local businesses with owner-verified hours, services, prices and contacts, for AI agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Full profile of one business: identity, description, services with prices, weekly hours (all time ranges), contacts, photos with AI descriptions, FAQs, synced products, declared freshness.
Business id (public id) or slug, as returned by search_businesses
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http registry https://mcp.spotby.io/
Full profile of one business: identity, description, services with prices, weekly hours (all time ranges), contacts, photos with AI descriptions, FAQs, synced products, declared freshness.
| Argument | Type | Description |
|---|---|---|
| id* | string | Business id (public id) or slug, as returned by search_businesses |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Business id (public id) or slug, as returned by search_businesses"
}
}
}Businesses whose data changed since a given moment — the freshness feed. Use it to stay in sync without re-crawling.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since* | string | ISO 8601 datetime cursor, e.g. 2026-07-01T00:00:00Z |
{
"type": "object",
"required": [
"since"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"since": {
"type": "string",
"description": "ISO 8601 datetime cursor, e.g. 2026-07-01T00:00:00Z"
}
}
}Search verified businesses in the Spotby registry by free text, city and/or category. Returns compact results; use get_business for full details.
| Argument | Type | Description |
|---|---|---|
| city | string | Filter by city (partial match) |
| limit | integer | |
| query | string | Free-text search on business name and description |
| category | string | Filter by category key or label |
| industry | string | Filter by served industry key: fashion, retail, food, hospitality, finance, healthcare, manufacturing, tech, realestate, services, nonprofit, public |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Filter by city (partial match)"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"description": "Free-text search on business name and description"
},
"category": {
"type": "string",
"description": "Filter by category key or label"
},
"industry": {
"type": "string",
"description": "Filter by served industry key: fashion, retail, food, hospitality, finance, healthcare, manufacturing, tech, realestate, services, nonprofit, public"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.