MCP

MCP · streamable HTTP · JSON-RPC 2.0

The same knowledge base an agent can call.

One endpoint, one bearer token, eight tools. Every price comes back with its kind and its source, and a missing figure comes back as null rather than an estimate.

Endpoint
https://formation.labshero.ai/mcp

POST only. A GET returns 405. The protocol version is 2025-06-18 and responses are JSON, not SSE.

Authentication

Send Authorization: Bearer <token>. The token is set on the server from the environment. If no token is configured the endpoint returns 503 instead of opening.

Tools

NameWhat it answers
search_knowledgeSearch zones, guides, competitors and government systems. Returns typed hits with the page path.
list_zonesList researched free zones and mainland jurisdictions. total is our own first-year sum for a licence with no visas, present only when every part is proven; absent means not yet confirmed.
get_zoneOne zone with its packages, every fee, coworking, company and licence types, process, documents, portal, compliance, gaps and sources.
compare_zonesRank zones by the first-year total we build from proven parts for an activity, a number of visas and a workspace. A zone has a total only when every required part is proven; otherwise it is listed with the missing parts and no total. Any number is a proven value or the string NotYetConfirmed, never zero.
get_topicOne topic guide: corporate tax, VAT, audit, financial year, banking, UBO/ESR/AML, visas, golden visa, renewal, free zone vs mainland, compliance calendar or closing a company.
get_compliance_calendarAnnual and recurring obligations for one zone or all zones, ordered by when they fall due after the financial year ends.
list_competitorsFormation agents and resellers, their headline prices, fee model, digital experience, complaints and the weaknesses a transparent service can exploit.
get_sourcesEvery source behind the knowledge base, with the day it was read, optionally filtered to one kind and one target.
search_regulationsSearch the official regulation texts (full text, English) and return the documents and articles that match, each with its document title, article, official URL and a text excerpt. An empty corpus returns an empty list.
list_conversationsList customer conversations across WhatsApp, email and web chat, newest activity first, with the latest message.
get_conversationRead one conversation with its contact and its most recent messages.
send_messageSend a message to a customer on one channel. Provide conversation_id or contact_channel_id, or a channel_type with channel_address. On WhatsApp, free text is allowed only inside the 24 hour window that starts with the customer's last inbound; outside it, send an approved template_name. With no provider credentials the message is recorded as dry_run.
mark_handledResolve a conversation. It closes and records who or what resolved it and why.
assign_conversationAssign a conversation to a human or an agent, or unassign it.
list_callsList phone calls, newest first, with direction, counterpart, duration, disposition and recording metadata.
get_callRead one call record, including the linked conversation and recording metadata.
start_callStart an outbound call through the provider: it rings our number first, then the customer. Without provider credentials the call intent is recorded as dry_run.

One exchange, start to finish

Three requests: initialize, list the tools, then price a path. The id is yours to choose; the server echoes it.

POST https://formation.labshero.ai/mcp Authorization: Bearer $CF_MCP_TOKEN Content-Type: application/json Accept: application/json, text/event-stream {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}} {"jsonrpc":"2.0","id":2,"method":"tools/list"} {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"compare_zones","arguments":{"activity":"services","visas":1,"office":"none"}}}

JSON API

The website, the API and MCP read through one query layer, so a number does not differ between them.

PathReturns
/api/v1/zonesEvery zone, with filters q, emirate, north, remote_only, official_only
/api/v1/zones/{slug}One zone with packages, fees, process, documents, compliance and integration
/api/v1/compareRanked zones for activity, visas and office
/api/v1/topicsGuide index; /api/v1/topics/{slug} for one guide
/api/v1/activitiesActivity index; /api/v1/activities/{slug} for one
/api/v1/banksBank index; /api/v1/banks/{slug} for one
/api/v1/competitorsCompetitor profiles with prices
/api/v1/governmentGovernment systems with fees
/api/v1/compliance-calendarEvery obligation, optionally one zone
/api/v1/search?q=Hits across zones, guides, activities, banks, competitors and systems
/api/v1/sourcesEvery source, filtered by kind and slug

What is not built

Starting an application, uploading a document and paying are not exposed as tools yet. The MCP answers from the knowledge base; it does not file.