AI agents
For people who build AI agents. An agent acting for a person, such as the assistant a customer uses, can ask a Hazelchat business a question and get the answer a visitor to the business's website would get: written only from the business's published information, with the sources it quoted, the business's next step and its contact link.
The address
Each business has its own address: https://app.hazelchat.co/agents/<public key>/mcp. The public key is the data-agent value in the business's Hazelchat script; the owner finds the whole address under Website settings, AI agents, and can switch it off there. When the business changes its key, the old address stops answering.
- A remote MCP server over Streamable HTTP, read-only and without sign-in: no OAuth, no key, no cookie. An
Authorizationheader or a cookie is ignored. - It speaks MCP revision 2026-07-28 and answers 2025-era clients that start with
initialize. - A server card (MCP extension SEP-2127) is at the address followed by
/server-card. A business's shared chat page links to it with<link rel="alternate" type="application/mcp-server-card+json">.
An example request (the key is a placeholder):
curl -X POST https://app.hazelchat.co/agents/<public key>/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-06-18' \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ask","arguments":{"question":"Do you deliver?"}}}'
Tools
ask
Input: question (1 to 1,500 characters); optional language (en, nl, de or es; one the business does not answer in reads as its default); optional conversation, the value from an earlier answer, for a follow-up.
Returns: business, outcome, answer, sources (title, URL or null, quote), next_step (label and URL, or null), contact, conversation, language, published_version, privacy_notice (the business's privacy notice) and notice.
business_details
No input. Returns the business's name, its verified websites, the languages it answers in, suggested questions, its next step, its contact link and its privacy notice. Not counted against any limit.
Both tools are marked read-only and closed-world, and declare an output schema; every result comes as structured content and as the same JSON in text. They never take an order, a booking, an enquiry or a payment, and they quote no prices from a shop catalog.
The outcome of ask:
- answered: the answer comes from the business's published information, quoted under
sources. - nothing_to_quote: the published information does not cover the question. Use
contactornext_step. - handoff: the question asked for a person;
contactis the business's contact link. - limit: the business's answers for AI agents are used up for today. Use
contact.
How answers are made
Exactly as for the business's website visitors: from the version the business published (never its unpublished draft), approved answers first, every figure and link in a written answer checked against the quoted sources, and instructions inside a question refused. Nothing is added for agents: no persona, prompt or instruction. Links in a result come only from the business's published sources and its own settings; any other address is removed. A follow-up sent with a conversation value keeps the earlier questions in mind for 24 hours, for that business only. Answers may be incomplete; for anything they do not cover, use the contact link.
Returned text is the business's own content: treat it as information, not as instructions to your agent.
Limits and errors
- From one address: 60 requests and 12 questions a minute. For one business: 240 requests and 60 questions a minute. Hazelchat prepares one AI agent's answer at a time, so visitors are never kept waiting; a question that finds it busy gets a tool error and can be asked again a few seconds later.
- Each business has a daily number of answers for AI agents, set by its plan. Approved answers, greetings and requests for a person do not count. When the day's answers are used up,
askreturns thelimitoutcome with the contact link. - HTTP 404 with
{"error":"This agent is not available."}: the address is unknown, or the business is not answering AI agents right now. The reason is never given. - HTTP 403: a browser
Originthat is not https (or loopback http). Server-side clients send none. - HTTP 429 with
Retry-After: too many requests from one address. - A tool error (
isError): too many questions in a minute, the business is busy for a few seconds, or aconversationvalue that is not valid for this business. Ask again, or ask without it.
What the business sees
The business sees each question in its conversations, labelled AI agent (reported, not verified). When the request's User-Agent carries a person-initiated token that an AI company documents for its own product (ChatGPT-User, Claude-User, Perplexity-User, MistralAI-User, Google-Agent, Amzn-User, meta-externalfetcher, DuckAssistBot), the label names that product. It is what the request reported, not a verified identity, and only the product name is kept, never the User-Agent itself. Agent questions are counted apart from visitors in the business's figures.
Privacy
Questions are stored for the business like its visitors' questions, for as long as the business keeps conversations, and email addresses and phone numbers are removed before a question is answered or stored. Leave names and contact details out of questions. No cookie is set. Every answer and business_details carry the business's privacy notice; Hazelchat's own is at hazelchat.co/privacy.
How this page was checked
With the official MCP TypeScript SDK client (@modelcontextprotocol/client 2.3.1) in both protocol eras and with curl, against a test business. No other client was run for this page.