Agoria

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

사용해야 할까요

품질 및 안전성

A
설명 품질
94%
스키마 완전성
95%
이름 품질
91%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'compare_quotes' description lacks action verbcompare_quotes에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,297토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.58%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "registry": {
      "url": "https://agoria.studio/mcp"
    }
  }
}

원격 엔드포인트

https://agoria.studio/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (18)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_businesses(query, category, city)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "e.g. 'emergency plumber', 'gluten free pizza'"
    },
    "category": {
      "type": "string"
    },
    "city": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_market(query, kind, where, radiusKm, minPrice, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free text, e.g. 'renovated terrace', 'diesel ute'"
    },
    "kind": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Item kinds to include, e.g. ['listing'], ['vehicle'], ['course']. Call list_market_filters to see what exists."
    },
    "where": {
      "type": "string",
      "description": "A suburb, postcode, city or 'lat,lng'"
    },
    "radiusKm": {
      "type": "number",
      "description": "Radius around `where`. Defaults to the size of the place named."
    },
    "minPrice": {
      "type": "number"
    },
    "maxPrice": {
      "type": "number"
    },
    "filters": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "type": "object",
            "properties": {
              "min": {
                "type": "number"
              },
              "max": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "description": "Typed facet filters keyed by field id, e.g. {\"beds\":{\"min\":3},\"make\":\"toyota\"}"
    },
    "verifiedOnly": {
      "type": "boolean",
      "description": "Only items from businesses whose details have been checked against an outside register"
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "price_asc",
        "price_desc",
        "newest",
        "nearest",
        "proven"
      ]
    },
    "limit": {
      "type": "number"
    },
    "page": {
      "type": "number"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ask_market(question)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The user's request, in their words"
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_item(ref)

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).

입력 스키마

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "Item ref from search_market, e.g. 'acme-motors/offering:stk991'"
    }
  },
  "required": [
    "ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_market_filters(kind)

What can be searched and filtered on. Call this when you are unsure which `kind` or which `filters` keys search_market will accept.

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Narrow to specific kinds"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢price_guide(kind, attributes, where)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "description": "Item kind, e.g. 'vehicle' or 'listing'"
    },
    "attributes": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "string",
          "number"
        ]
      },
      "description": "What is being priced, e.g. {\"make\":\"Toyota\",\"model\":\"HiLux\",\"year\":2021}"
    },
    "where": {
      "type": "string",
      "description": "Restrict to a locality first; dropped automatically if too thin"
    }
  },
  "required": [
    "kind",
    "attributes"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_want(contact, request, name, cadence)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "contact": {
      "type": "string",
      "description": "The customer's email — never shown to sellers"
    },
    "request": {
      "type": "string",
      "description": "What they want, in their words"
    },
    "name": {
      "type": "string"
    },
    "cadence": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "How often to tell them about new matches"
    }
  },
  "required": [
    "contact",
    "request"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢open_demand(kind, where, unmetOnly)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "where": {
      "type": "string"
    },
    "unmetOnly": {
      "type": "boolean",
      "description": "Only requests nothing currently matches"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢resolve_place(where)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "where": {
      "type": "string",
      "description": "e.g. 'Fitzroy', '3065', 'Geelong VIC'"
    }
  },
  "required": [
    "where"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_business(slug)

Get full details for a business by slug: description, contact, hours, services, FAQs, and the actions its agent supports.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug from search_businesses"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_products(slug, query)

List the products a business sells by slug — price/sale, availability/stock, brand, SKU/GTIN, variants, specs, dimensions.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug"
    },
    "query": {
      "type": "string",
      "description": "Optional keyword filter"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_reviews(slug, targetId)

Get a business's aggregate rating and reviews by slug. Optionally filter to a product/service id.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug"
    },
    "targetId": {
      "type": "string",
      "description": "Product/service id; omit for whole business"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_availability(slug, serviceId, date)

Check open appointment slots for a service at a business on a date (YYYY-MM-DD).

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug"
    },
    "serviceId": {
      "type": "string",
      "description": "Service id from get_business"
    },
    "date": {
      "type": "string",
      "description": "YYYY-MM-DD"
    }
  },
  "required": [
    "slug",
    "serviceId",
    "date"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢book_appointment(slug, serviceId, startsAt, customerName, customerContact, ...)

Book an appointment at any business by slug. Confirm the slot with check_availability first.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug"
    },
    "serviceId": {
      "type": "string"
    },
    "startsAt": {
      "type": "string",
      "description": "ISO datetime from check_availability"
    },
    "customerName": {
      "type": "string"
    },
    "customerContact": {
      "type": "string",
      "description": "Phone or email"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "slug",
    "serviceId",
    "startsAt",
    "customerName",
    "customerContact"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡take_action(slug, action, fields)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Business slug"
    },
    "action": {
      "type": "string",
      "description": "Action id, e.g. 'request_quote'"
    },
    "fields": {
      "type": "object",
      "additionalProperties": {},
      "description": "The action's input fields as a JSON object (include confirmToken to complete a gated action)"
    }
  },
  "required": [
    "slug",
    "action",
    "fields"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡request_quotes(details, title, category, location, budget, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "details": {
      "type": "string",
      "description": "What the customer needs, in plain language. The more specific, the better the quotes."
    },
    "title": {
      "type": "string",
      "description": "Short label for the job"
    },
    "category": {
      "type": "string",
      "description": "Business category to target, e.g. 'Plumber'"
    },
    "location": {
      "type": "string",
      "description": "City or suburb"
    },
    "budget": {
      "type": "number"
    },
    "neededBy": {
      "type": "string",
      "description": "When it's needed"
    },
    "customerName": {
      "type": "string"
    },
    "customerContact": {
      "type": "string",
      "description": "Email or phone — businesses quote back to this"
    },
    "slugs": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Specific businesses to ask. Omit to have Agoria match them."
    }
  },
  "required": [
    "details",
    "customerContact"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compare_quotes(briefToken)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "briefToken": {
      "type": "string",
      "description": "From request_quotes"
    }
  },
  "required": [
    "briefToken"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪accept_quote(briefToken, slug)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "briefToken": {
      "type": "string",
      "description": "From request_quotes"
    },
    "slug": {
      "type": "string",
      "description": "The business whose quote to accept"
    }
  },
  "required": [
    "briefToken",
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 18개
검증됨버전이 기록되지 않음도구 18개