For developers

Connect an assistant to Agora

Agora is a registry of verified local businesses, exposed as a single MCP server. Your assistant can search it, check that a business is genuinely verified, and send enquiries or quote requests — without ever handling anyone’s phone number. It is live in Malaysia today and expands market by market; search_businesses tells you what is covered.

Endpoint

Streamable HTTP, protocol 2025-06-18. Read tools work with no credential at all, so you can try it before registering anything.

https://agora-mcp.hefes.net/mcp

In a client that takes a JSON config:

{
  "mcpServers": {
    "agora": {
      "url": "https://agora-mcp.hefes.net/mcp"
    }
  }
}

Or find it in the official MCP registry as net.hefes/agora, or on Smithery.

Tools

ToolDoesCredential
search_businessesFind businesses by need, category and locationnone
get_businessOfferings, prices, hours, area, freshnessnone
get_attestationCheck a verification claim against the chainnone
request_quoteAsk for a price on a specific jobagora:act
contact_businessSend a free-text enquiryagora:act
get_threadRead the business’s replyagora:act
report_listingFlag a listing for reviewagora:act

Credentials

Registration is one call — no form, no email. It grants agora:read immediately.

curl -X POST https://agora-mcp.hefes.net/oauth/register \
  -H 'content-type: application/json' \
  -d '{"client_name":"My Assistant","contacts":["[email protected]"]}'

curl -X POST https://agora-mcp.hefes.net/oauth/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -H 'content-type: application/json' \
  -d '{"grant_type":"client_credentials","scope":"agora:read"}'
Action tools are gated on purpose. request_quote and contact_business deliver messages to a shop owner’s personal WhatsApp or Telegram. The reason businesses tolerate being reachable here is that we do not let strangers message them, so agora:act is approved by a person. Register first, then email [email protected] with your client_id and what you’re building.

Full details, including why client_credentials is the only grant we support: auth.md.

Two things to get right

“Verified” is not one thing

Every result carries a verificationTier and a claimed flag, and they are not interchangeable. Only veri5_attested — documents checked by a person, anchored on a public chain — should be described to a user as verified. basic means the business proved it controls its contact channel. claimed: false means the row came from a public dataset and nobody at that business has ever confirmed it. You can check an attestation yourself, without asking us, at https://agora.hefes.net/verify/{reference}.

You will never receive a phone number

Not because it is withheld from you specifically — the public serializer has no field for it. Contact tools relay your message on the business’s own channel and return an opaque thread reference. Neither side learns the other’s details.

Try it without writing anything

The assistant on the home page is a plain MCP client calling the same public tools yours would. It shows its tool calls as it makes them.

Operated by Hefes LLC. Machine-readable equivalents of this page: llms.txt, server card, agent skills.