CoreLoop Business Network
by coreloop.so · remote · no sign-in to list tools · v1.2.1 · published by so.coreloop
Search real businesses, then read profiles, services and hours or contact them, in one endpoint.
7 tools: 1 do something that can't be undone, 1 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things1Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http directory https://coreloop.so/api/mcp/coreloop-directoryFindings
Matches of fixed checks, with the text they matched.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...oreLoop business directory. Start here: every other tool on this endpoint needs a business, and..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Can't be undone 1Claude Code: ask
send_business_inquirySend a message to one business.No findings
Why it is in this group
- The name "send_business_inquiry" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Send a message to one business. This has a real side effect — it notifies the owner and delivers an email — and is rate-limited both per business and across this directory, so send one considered inquiry rather than a broadcast.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 1Claude Code: ask
check_business_availabilityOne business's opening hours, whether it is open right now, and when it next opens.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One business's opening hours, whether it is open right now, and when it next opens. Phase 1 returns published hours, not bookable slots.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
Only reads 5Claude Code: allow
compare_business_servicesCompare one business's services within a category or keyword, with a price/duration summary.No findings
Why it is in this group
- The name "compare_business_services" says "compare": a word for reading.
Description, as the server wrote it Compare one business's services within a category or keyword, with a price/duration summary. Each row reports `match_type`, so you can tell an exact category hit from an incidental keyword.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_business_agentThe canonical ids and endpoint URLs for one business — its own MCP and A2A endpoints, agent card, llms.txt and public page, under `protocol_urls`.No findings
Why it is in this group
- The name "get_business_agent" says "get": a word for reading.
Description, as the server wrote it The canonical ids and endpoint URLs for one business — its own MCP and A2A endpoints, agent card, llms.txt and public page, under `protocol_urls`. A null URL means that surface is switched off for this business right now: do not construct it yourself, and use one of the non-null surfaces instead.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_business_infoFull profile for one business found through search_businesses: identity, locations, contact, policies, images, public documents and the languages it publishes in.No findings
Why it is in this group
- The name "get_business_info" says "get": a word for reading.
Description, as the server wrote it Full profile for one business found through search_businesses: identity, locations, contact, policies, images, public documents and the languages it publishes in.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_business_servicesOne business's service catalogue, with filtering, sorting and pagination.No findings
Why it is in this group
- The name "get_business_services" says "get": a word for reading.
Description, as the server wrote it One business's service catalogue, with filtering, sorting and pagination. Page with `offset`/`limit` and read `has_more` — the order is stable, so a second page will not repeat or skip a service.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
search_businessesSearch the CoreLoop business directory.1 finding
Why it is in this group
- The name "search_businesses" says "search": a word for reading.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...oreLoop business directory. Start here: every other tool on this endpoint needs a business, and..."
Description, as the server wrote it Search the CoreLoop business directory. Start here: every other tool on this endpoint needs a business, and each result carries the `business_id` and `slug` you pass to them as the `business` argument. `business_id` is a PUBLIC, OPAQUE, STABLE routing identifier: it is safe to store and re-use across sessions, it stays the same when a business renames itself or changes its slug, and it carries no sensitive information. Treat it as a token — do not parse it, do not derive meaning from its format, and do not construct one. Pass back exactly the value you were given. A result with `asserts_no_physical_location: true` has stated that it has no premises (consultants, trades, online-only) — it is intentionally absent from city search rather than missing data. `false` means no such statement was made; it does NOT imply premises. Results are returned in your requested language when the business has published a translation: send `?locale=<code>` on the endpoint URL (takes precedence) or an Accept-Language header. Each result reports the language it is written in (`locale`), the business's original language (`content_locale`), and every language it is available in (`available_locales`). `mcp_url`, `a2a_url` and `page_url` — and every URL inside `protocol_urls` — are null when that surface is currently switched off for the business: a null is intentional (do not construct the URL yourself), and the business remains reachable through its non-null surfaces. `data_source: "directory"` marks these rows as the search projection; call get_business_info for the live profile. PAGING: one call returns at most `limit` results. Read `has_more` — a short page is not proof of the end — and pass `next_cursor` back as `cursor` for the next page. The cursor is opaque and bound to the filters and sort it was issued for: change any of them and it is rejected, so start a new search instead. `limit` may change between pages.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http directory https://coreloop.so/api/mcp/coreloop-directoryRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__directory__search_businesses",
"mcp__directory__compare_business_services",
"mcp__directory__get_business_agent",
"mcp__directory__get_business_info",
"mcp__directory__get_business_services"
],
"ask": [
"mcp__directory__check_business_availability",
"mcp__directory__send_business_inquiry"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as directory. Review it before you use it.