AI Agents and Developers Guide
Vertize is an AI software company in Ho Chi Minh City. The tools below expose public facts from this website. Names, descriptions and parameters are the same on WebMCP, MCP and REST. No tool sends a message or states a price.
Quick guide
- WebMCP. A classic inline script registers all 6 tools on
document.modelContextandnavigator.modelContext. A browser agent calls them there. The same list is onwindow.__vertizeAgent. - MCP.
https://www.vertize.io/mcp(Streamable HTTP, no sessions, JSON responses). Server tools:get_company_info,list_services,get_service,list_integrations,search_blog. - REST.
POST /api/agent/{tool}with a JSON body. The same server tools as MCP. Specification: /openapi.json.
open_booking exists only in the browser. It opens the chat on the page so the visitor can plan a 30-minute conversation. The visitor fills in their own details and confirms. The tool sends nothing.
Tools
| Name | Purpose | Bucket | Login | Channel |
|---|---|---|---|---|
get_company_info | Company information | 2: server-backed, public | None | WebMCP, MCP, REST |
list_services | List services | 2: server-backed, public | None | WebMCP, MCP, REST |
get_service | Service details | 2: server-backed, public | None | WebMCP, MCP, REST |
list_integrations | Integrations | 2: server-backed, public | None | WebMCP, MCP, REST |
search_blog | Search the blog | 2: server-backed, public | None | WebMCP, MCP, REST |
open_booking | Open the 30-minute call | 1: page-local (in the browser tab) | None | WebMCP |
get_company_info
Use when the visitor asks who Vertize is, where the office is, how to call or email, which hours apply, or where Vertize works. Returns the name, address, phone, email, office hours, service area, the languages of this website, and the contact page URL. Returns no prices. To book a call, use open_booking in the browser.
language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
REST: POST /api/agent/get_company_info
list_services
Use when the visitor asks what Vertize builds. Returns the five pillars (AI agents for hotels, custom CRM, dashboards, websites, SEO and AI visibility), each with a title, a short description and a page URL in the requested language. Call get_service next for one pillar. Returns no prices.
language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
REST: POST /api/agent/list_services
get_service
Use when the visitor asks about one pillar from list_services: what the first release includes, what sets the price and the build time, how long it takes, or a question from the page FAQ. Returns the lede, the solution parts, the factors, the lead time and the FAQ. Returns no price amount. An unknown service id is rejected.
service(required) "ai-agents-hotels" | "crm" | "dashboards" | "websites" | "geo": Pillar id from list_services: ai-agents-hotels, crm, dashboards, websites or geo.language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
REST: POST /api/agent/get_service
list_integrations
Use when the visitor asks which property-management, messaging or booking systems Vertize connects to. Returns the same three lists as the integrations page, with labels in the requested language, plus the page URL. It does not check whether a live property is connected. Returns no prices.
language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
REST: POST /api/agent/list_integrations
search_blog
Use when the visitor wants an article. Searches published blog posts and returns at most 10 matches with title, excerpt, URL and date. The query must be 2 to 100 characters. Call it again with a narrower query when the list is long.
query(required) string: Words to find in the title or the excerpt. 2 to 100 characters.language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
REST: POST /api/agent/search_blog
open_booking
Use when the visitor wants to plan a 30-minute call. Opens the chat on this page to plan a 30-minute conversation. The visitor fills in their own details and confirms. The tool sends nothing.
intent"book" | "ask" default "book": book opens the chat to plan the 30-minute call. ask opens the chat for a question. Defaults to book.language"en" | "nl" | "fr" | "de" | "vi" | "th" | "ru" | "ko" | "ar" | "zh" default "en": Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.
Browser only. Not on the MCP server and not on REST.
Authentication
None. The server tools return public information that is already on the website. There is no API key and no login. open_booking does not send the visitor's details.
Examples
curl -s https://www.vertize.io/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-11-25' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -s -X POST https://www.vertize.io/api/agent/get_company_info \
-H 'Content-Type: application/json' \
-d '{"language":"en"}'
curl -s -X POST https://www.vertize.io/api/agent/search_blog \
-H 'Content-Type: application/json' \
-d '{"query":"hotel","language":"en"}'
Errors and status codes
Success is a JSON object with ok: true. Errors do not throw. They return { "ok": false, "code": "...", "message": "..." }. On REST the HTTP status follows the code.
| Status | Code | When |
|---|---|---|
| 200 | ok: true | The tool ran. |
| 400 | VALIDATION | The JSON body is invalid for that tool. |
| 404 | NOT_FOUND | The requested record does not exist. |
| 404 | UNKNOWN_TOOL | The name is not a server tool. open_booking is one of these. |
| 429 | UNAVAILABLE | The rate limit answered. Try again later. |
| 503 | UNAVAILABLE | The tool could not be completed. |
WebMCP wraps the same object as { "content": [{ "type": "text", "text": "<json>" }] }. A missing page bridge or an unreachable server uses UNAVAILABLE.
Rate limit
60 requests per 10 minutes per IP, on /mcp and on /api/agent/{tool}. The limit is kept in memory on the server instance.
More
/openapi.json · /llms.txt · /.well-known/webmcp.json · Contact