Agoria
by agoria.studio · remote · no sign-in to list tools · v0.2.0 · published by studio.agoria
Search local businesses and book, order, quote or message any of them from one connection.
18 tools: 9 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things9Claude Code: ask: see these tools
- Only reads9Claude 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 registry https://agoria.studio/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnopen_demand
The server marks "open_demand" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "open_demand" says "open": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Changes things 9Claude Code: ask
accept_quoteChoose a business's quote.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.
Description, as the server wrote it Choose a business's quote. This creates a real order at that business and declines the others. If that business protects payments, the reply carries a payment link where the money is held by Agoria until the customer confirms they got the work — hand that link to the customer.
Annotations the server declares
- title: Accept one of the quotes
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
ask_marketSame index as search_market, but takes a plain sentence — 'three bedroom house under 800k in Geelong', 'automatic ute under 80,000km' — and works out the filters itself.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 Same index as search_market, but takes a plain sentence — 'three bedroom house under 800k in Geelong', 'automatic ute under 80,000km' — and works out the filters itself. Use it when you have the user's own words; use search_market when you already know the exact filters.
Annotations the server declares
- title: Search everything for sale, in one sentence
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
book_appointmentBook an appointment at any business by slug.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.
Description, as the server wrote it Book an appointment at any business by slug. Confirm the slot with check_availability first.
Annotations the server declares
- title: Book an appointment at a business
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
check_availabilityCheck open appointment slots for a service at a business on a date (YYYY-MM-DD).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 Check open appointment slots for a service at a business on a date (YYYY-MM-DD).
Annotations the server declares
- title: Check availability at a business
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
create_wantSave a standing search on the customer's behalf.No findings
Why it is in this group
- The name "create_want" says "create": a word for a change.
Description, as the server wrote it Save a standing search on the customer's behalf. They get told when matching supply appears, AND — anonymously, without their contact details — sellers who could satisfy it can see it and offer. Use this when search_market found nothing good: it converts a dead end into a request the market can answer.
Annotations the server declares
- title: Tell the network what you're looking for
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
open_demandOpen standing requests from real buyers, anonymised.1 finding
Why it is in this group
- The name "open_demand" says "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "open_demand" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "open_demand" says "open": a word for a change.
Description, as the server wrote it Open standing requests from real buyers, anonymised. Useful for a business deciding what to stock or list, and for understanding where the network has no supply at all.
Annotations the server declares
- title: What buyers are looking for and nobody is supplying
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
price_guideA price distribution for comparable items on the network — asking prices, and where the network settled the sale, what buyers actually paid.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 A price distribution for comparable items on the network — asking prices, and where the network settled the sale, what buyers actually paid. Widens the comparison and says so when the exact match is too thin to be meaningful.
Annotations the server declares
- title: What is a fair price?
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
request_quotesDescribe a job once and send it to the businesses that can price it.No findings
Why it is in this group
- The name "request_quotes" says "request": a word for a change.
Description, as the server wrote it Describe a job once and send it to the businesses that can price it. Each one answers with a real number, what it covers, and how long the price stands. Returns a briefToken — poll compare_quotes with it to see the prices as they land, then accept_quote to choose one. Use this instead of calling request_quote at each business separately.
Annotations the server declares
- title: Get quotes from several businesses at once
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
take_actionPerform any non-booking action a business supports (request_quote, place_order, send_message, pay_invoice, sign_document, subscribe, register…).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.
Description, as the server wrote it Perform any non-booking action a business supports (request_quote, place_order, send_message, pay_invoice, sign_document, subscribe, register…). Get valid action ids and their fields from get_business. Pass the action's fields as a JSON object. If the result is 'action_required', hand the user the next.url (payment/signing link) or re-call with fields.confirmToken to confirm.
Annotations the server declares
- title: Take an action at a business
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 9Claude Code: allow
compare_quotesSee every business's answer to a brief side by side: price, what it covers, lead time, rating, whether the payment would be protected, and which is cheapest or soonest.No findings
Why it is in this group
- The name "compare_quotes" says "compare": a word for reading.
Description, as the server wrote it See every business's answer to a brief side by side: price, what it covers, lead time, rating, whether the payment would be protected, and which is cheapest or soonest.
Annotations the server declares
- title: Compare the quotes on a brief
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_businessGet full details for a business by slug: description, contact, hours, services, FAQs, and the actions its agent supports.No findings
Why it is in this group
- The name "get_business" says "get": a word for reading.
Description, as the server wrote it Get full details for a business by slug: description, contact, hours, services, FAQs, and the actions its agent supports.
Annotations the server declares
- title: Get a business profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_itemEverything about a single item: full facets, photos, where it is, who is selling it and how well-proven they are, a price guide computed from comparable items on the network, and t…No findings
Why it is in this group
- The name "get_item" says "get": a word for reading.
Description, as the server wrote it Everything about a single item: full facets, photos, where it is, who is selling it and how well-proven they are, a price guide computed from comparable items on the network, and the adjacent services a buyer usually needs next (finance, inspection, conveyancing, transport).
Annotations the server declares
- title: Get one item for sale
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_reviewsGet a business's aggregate rating and reviews by slug.No findings
Why it is in this group
- The name "get_reviews" says "get": a word for reading.
Description, as the server wrote it Get a business's aggregate rating and reviews by slug. Optionally filter to a product/service id.
Annotations the server declares
- title: Get reviews & rating for a business
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_market_filtersWhat can be searched and filtered on.No findings
Why it is in this group
- The name "list_market_filters" says "list": a word for reading.
Description, as the server wrote it What can be searched and filtered on. Call this when you are unsure which `kind` or which `filters` keys search_market will accept.
Annotations the server declares
- title: List the item kinds and filters available
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_productsList the products a business sells by slug — price/sale, availability/stock, brand, SKU/GTIN, variants, specs, dimensions.No findings
Why it is in this group
- The name "list_products" says "list": a word for reading.
Description, as the server wrote it List the products a business sells by slug — price/sale, availability/stock, brand, SKU/GTIN, variants, specs, dimensions.
Annotations the server declares
- title: List products at a business
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
resolve_placeResolve a suburb, postcode or city to coordinates and the radius that name implies.No findings
Why it is in this group
- The name "resolve_place" says "resolve": a word for reading.
Description, as the server wrote it Resolve a suburb, postcode or city to coordinates and the radius that name implies. Use it to check a place exists before passing it to search_market.
Annotations the server declares
- title: Turn a place name into a point and a radius
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_businessesFind businesses on Agoria by free-text query, category, and/or city.No findings
Why it is in this group
- The name "search_businesses" says "search": a word for reading.
Description, as the server wrote it Find businesses on Agoria by free-text query, category, and/or city. Returns each business's slug plus the actions its agent can take, so you can act on it directly from this same connection.
Annotations the server declares
- title: Search the business directory
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_marketSearch individual items across every business on the network — property listings, vehicles, courses, products, services, events, plans — with typed filters, a price range and a rad…No findings
Why it is in this group
- The name "search_market" says "search": a word for reading.
Description, as the server wrote it Search individual items across every business on the network — property listings, vehicles, courses, products, services, events, plans — with typed filters, a price range and a radius around a place. Prefer this over search_businesses whenever the user is looking for a THING rather than a company. Returns items with prices, locations, photo counts and the seller's verification status.
Annotations the server declares
- title: Search everything for sale
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
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 0.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http registry https://agoria.studio/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__registry__search_businesses",
"mcp__registry__search_market",
"mcp__registry__get_item",
"mcp__registry__list_market_filters",
"mcp__registry__resolve_place",
"mcp__registry__get_business",
"mcp__registry__list_products",
"mcp__registry__get_reviews",
"mcp__registry__compare_quotes"
],
"ask": [
"mcp__registry__ask_market",
"mcp__registry__price_guide",
"mcp__registry__create_want",
"mcp__registry__open_demand",
"mcp__registry__check_availability",
"mcp__registry__book_appointment",
"mcp__registry__take_action",
"mcp__registry__request_quotes",
"mcp__registry__accept_quote"
],
"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 registry. Review it before you use it.