RestoSignals - Restaurant Opening Leads MCP

Find US restaurants and bars 1-6 months before they open. Fuses public liquor-license, food-permit and new-business filings into scored venues with owner contact. Tools: coverage, new_openings, venue_signals, watch_area. Free tier.

호스팅형 MCP 서버

npx add-mcp 'https://api.restosignals.com/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

The API for venues about to open

RestoAPI is the self-serve, technical surface for RestoSignals: a hosted MCP server, a REST endpoint, and an installable skill — one scored /v1/openings call, 1 credit = 1 returned lead, empty results free. Start free, pay as you go. No subscription needed.

Free key

$0

no card

Top-up

$4

1,000 leads

$0.004 / lead

Top-up

$18

5,000 leads

best rate · never expire

Metered per returned lead — filters that return nothing cost nothing. Packs never expire. Need the dashboard, contacts and territory tiers instead? See RestoSignals plans (Pro bundles full API access).

1

Connect the MCP server

The server speaks Model Context Protocol (JSON-RPC 2.0) at https://api.restosignals.com/mcp. Drop this block into any MCP client and swap in your key:

{
  "mcpServers": {
    "restosignals": {
      "url": "https://api.restosignals.com/mcp",
      "headers": { "Authorization": "Bearer pk_YOUR_KEY" }
    }
  }
}

Claude Desktop / Code

Add to your MCP config (claude_desktop_config.json, or via the Claude Code MCP settings):

Cursor

Settings → MCP → Add server, same JSON block.

n8n / LangChain / custom

Point any MCP-over-HTTP client at the URL with the Bearer header, or call the JSON-RPC endpoint directly at https://api.restosignals.com/mcp.

2

The tools

Four tools, same wallet as REST. Always call coverage first so you query a state that actually has data.

Live states + how many scored venues (and hot leads, score ≥ 80) each holds. Call this FIRST so you never query a state with no data.

{ /* no arguments */ }
{
  "states": [
    { "state": "NY", "venues": 812, "hot_leads": 41 },
    { "state": "IL", "venues": 190, "hot_leads": 6 },
    { "state": "TX", "venues": 5300, "hot_leads": 0 }
  ]
}

new_openings 1 / lead requires: state

Scored, fused venue leads for a state, ranked by opening_score. signal_types are liquor / food_permit / business.

{
  "state": "NY",          // required, 2-letter
  "min_score": 40,        // default 30
  "limit": 10             // default 10, max 100
}
{
  "count": 1,
  "openings": [
    { "id": 4412, "business_name": "DINER 24 BROADWAY NYC LLC.",
      "city": "New York", "state": "NY", "opening_score": 100,
      "status": "opening", "signal_types": ["business","food_permit","liquor"] }
  ]
}

The raw underlying signals (liquor / permit / filing rows) that were fused into one venue — show your work.

{ "venue_id": 4412 }
{
  "venue": { "id": 4412, "business_name": "DINER 24 …", "opening_score": 100, "…": "…" },
  "signals": [
    { "source": "ny_sla", "signal_type": "liquor", "status": "pending", "…": "…" },
    { "source": "nyc_permits", "signal_type": "food_permit", "…": "…" }
  ]
}

Register a webhook that fires when a new matching venue surfaces in an area.

{
  "url": "https://you.example.com/hook",
  "criteria": { "state": "NY", "city": "Brooklyn",
                "signal_type": "liquor", "min_opening_score": 60 }
}
{ "webhook_id": 7, "url": "…", "criteria": {…},
  "note": "New matching venues will be POSTed here on the daily run." }

3

Or install the skill

A packaged Agent Skill that teaches Claude exactly when and how to use RestoSignals — the coverage-first rule, the real signal_types, and honest coverage so the agent never promises a state we don't have.

↓ Download SKILL.md

  • Claude Code — drop SKILL.md into.claude/skills/restosignals/ in your project (or ~/.claude/skills/ for all projects).
  • claude.ai — add it as a custom skill in your workspace's skill settings.
  • Any agent — paste its contents into your system prompt / tool instructions.

4

Recipes

“Find restaurants opening soon in New York, best first”

coverage → new_openings(state=NY, min_score=40) → present name, city, score, signal_types.

“Only the strongest, multi-signal leads”

new_openings(min_score=80). A fused venue always outranks any single-signal one.

“Give me Chicago bars specifically”

new_openings(state=IL) then filter to signal_types including 'liquor' and city Chicago.

“Alert me when a new bar files in Brooklyn”

watch_area(url=<your endpoint>, criteria={state:NY, city:Brooklyn, signal_type:liquor}). Free.

“Why is this venue scored 100?”

venue_signals(venue_id) → show the underlying liquor / permit / filing rows.

“Export a whole state for the CRM”

Use REST GET /v1/export?state=NY&format=csv for a signed CSV URL (1 credit/row).

Prefer straight REST?

# 1) mint a trial key
curl -s -X POST https://api.restosignals.com/v1/register   # -> pk_...

# 2) pull scored leads (see /docs for all params)
curl -s "https://api.restosignals.com/v1/openings?state=NY&min_opening_score=40&limit=5" \
  -H "X-API-Key: pk_..."

Full endpoint reference, params and response fields are in the API docs. Machine-readable summary for crawlers: /llms.txt.

Honest by design. Live states are only what coverage returns (NY, TX, IL, OR, CO, WA, CA today). We give you the venue and its signals — not owner contact details yet. Build agents that say so.