# Agoria

> Search local businesses and book, order, quote or message any of them from one connection.

- name: studio.agoria/registry
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 89/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/studio.agoria%2Fregistry
- tools: https://api.protogrid.dev/v1/servers/studio.agoria%2Fregistry/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agoria": {
      "type": "http",
      "url": "https://agoria.studio/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 85
- provenance: 75
- drivers: +repository +dns-namespace +reachable +uptime-98% ~updated-75d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 18 of 18 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,339 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 18, about 3,339 tokens to load them all
- tool set hash: 01efbce5d28572a5003eea831c8f0c6a
- badge: [![protogrid quality](https://protogrid.dev/badge/studio.agoria/registry.svg)](https://protogrid.dev/servers/studio.agoria/registry)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://agoria.studio/mcp (streamable-http, auth none, reachable true, uptime30d 0.982906)

## Packages

_none_

## Tools (18)

- `accept_quote`: 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.
- `ask_market`: 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.
- `book_appointment`: Book an appointment at any business by slug. Confirm the slot with check_availability first.
- `check_availability`: Check open appointment slots for a service at a business on a date (YYYY-MM-DD).
- `compare_quotes`: 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.
- `create_want`: 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.
- `get_business`: Get full details for a business by slug: description, contact, hours, services, FAQs, and the actions its agent supports.
- `get_item`: 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).
- `get_reviews`: Get a business's aggregate rating and reviews by slug. Optionally filter to a product/service id.
- `list_market_filters`: What can be searched and filtered on. Call this when you are unsure which `kind` or which `filters` keys search_market will accept.
- `list_products`: List the products a business sells by slug — price/sale, availability/stock, brand, SKU/GTIN, variants, specs, dimensions.
- `open_demand`: 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.
- `price_guide`: 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.
- `request_quotes`: 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.
- `resolve_place`: 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.
- `search_businesses`: 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.
- `search_market`: 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.
- `take_action`: 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.
