Boardroom Revenue Control
Server Details
Read-only sales CRM for AI clients: leads, pipeline, AI-agent chats, calls, ad attribution.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- boardroomgen-ai-ae/boro-ai
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
13 toolsad_attributionAd attributionRead-onlyIdempotentInspect
Which advertisement produced which conversation: ad id, creative, first-touch flag, and the lead it bound to. The per-click id is NOT returned — only whether one exists. An empty result means no ad-driven conversation has been recorded in the window, not that the tool failed. [scope: marketing:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| since | No | today | week | month | 30d | ISO timestamp (Asia/Dubai days). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
agent_configAI-agent configurationRead-onlyIdempotentInspect
How the AI agent is set up for this workspace: mode and persona, working hours, hand-over rules, follow-up cadence, trigger list, actions, voice scenarios, and the TITLES of its knowledge documents. Document text is not returned — the list answers what the agent knows about; reading one whole is a separate, narrower ask. No credential of any kind is reachable from here: an agent's instructions are not its keys. [scope: agent:read]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
agent_conversationsAI-agent conversationsRead-onlyIdempotentInspect
Conversations the AI agent handled, with intent, language, message count and the deal they bound to. Contacts masked. [scope: agent:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| since | No | today | week | month | 7d | ISO timestamp (Asia/Dubai days). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
agent_get_conversationOne conversation transcriptRead-onlyIdempotentInspect
One conversation with its transcript — what the customer wrote and what the agent answered. [scope: agent:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| conversation_id | Yes | UUID from agent_conversations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
crm_get_leadGet one leadRead-onlyIdempotentInspect
One lead in full — unmasked contact details, notes, events, stage history and open tasks. Scoped to this workspace: a lead id from elsewhere reads as not_found. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | UUID of the lead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
crm_leads_without_taskLeads without a follow-up taskRead-onlyIdempotentInspect
Open leads with no unfinished task against them — the follow-up leak. Sorted by idle time, longest first. Idle days are counted in Asia/Dubai. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
crm_list_leadsList leadsRead-onlyIdempotentInspect
Leads in this workspace, newest activity first. Phone and email are MASKED here — use crm_get_lead for one record when the full contact is genuinely needed. total is the count before paging, so it answers 'how many leads exist'. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| since | No | today | yesterday | week | month | 7d | 30d | ISO timestamp. Days are Asia/Dubai. | |
| stage | No | Stage name, exact (case-insensitive). Omit for all stages. | |
| offset | No | Rows to skip before the first returned row (for paging). | |
| pipeline_id | No | UUID of one pipeline. Omit for all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
crm_pipeline_overviewPipeline overviewRead-onlyIdempotentInspect
Every pipeline and stage with its lead count and total value. The shape of the funnel. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
dashboard_snapshotDashboard snapshotRead-onlyIdempotentInspect
The workspace's own KPI contract as the dashboard renders it, with the time it was built. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
marketing_snapshotMarketing snapshotRead-onlyIdempotentInspect
Advertising performance: spend, reach, clicks, cost per lead, per campaign, plus the CRM join. [scope: marketing:read]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
partner_overviewPartner overviewRead-onlyIdempotentInspect
This partner's own cabinet: referral code and link, the clients who registered through it, the agreed commission rate, what has accrued so far, and which client workspaces this partner currently holds a grant for. Only answers for a token bound to a partner. [scope: partner:read]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
voice_callsVoice callsRead-onlyIdempotentInspect
Calls with direction, disposition and talk time. Customer numbers masked. [scope: crm:read]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| since | No | today | week | month | 7d | ISO timestamp (Asia/Dubai days). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
whoamiWho am I (token and workspace)Read-onlyIdempotentInspect
Who this token is, which workspace it can read, and which scopes it carries. Call this first: it tells you which of the other tools will work.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | False when the call was refused or failed; see error. |
| error | No | Machine-readable refusal code (a string), present only when ok is false. |
| message | No | Human-readable explanation of a refusal (a string). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
- Changed
ad_attribution1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
agent_config1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
agent_conversations1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
agent_get_conversation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
crm_get_lead1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
crm_leads_without_task1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
crm_list_leads1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
crm_pipeline_overview1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
dashboard_snapshot1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
marketing_snapshot1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
partner_overview1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
voice_calls1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
whoami1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "error": { + "description": "Machine-readable refusal code (a string), present only when ok is false." + }, + "message": { + "description": "Human-readable explanation of a refusal (a string)." + }, + "ok": { + "description": "False when the call was refused or failed; see error.", + "type": "boolean" + } + }, + "type": "object" +}
6 tool updates
- Changed
ad_attribution1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return."
- Changed
agent_conversations1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return."
- Changed
agent_get_conversation1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return."
- Changed
crm_leads_without_task1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return."
- Changed
crm_list_leads2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return." - added
Input schema / properties / offset / descriptionAdded value: +"Rows to skip before the first returned row (for paging)."
- Changed
voice_calls1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of rows to return."
13 tool updates
- First observed
ad_attribution - First observed
agent_config - First observed
agent_conversations - First observed
agent_get_conversation - First observed
crm_get_lead - First observed
crm_leads_without_task - First observed
crm_list_leads - First observed
crm_pipeline_overview - First observed
dashboard_snapshot - First observed
marketing_snapshot - First observed
partner_overview - First observed
voice_calls - First observed
whoami
Publisher details
- Operator
- Boardroom AI (Dubai, UAE)
- Operator website
- https://boardroom-ai.ae
- Vendor relationship
- First-party
- Restrictions
- Requires a Revenue Control workspace (free to start). The workspace owner issues and revokes the read-only token.
Related MCP Connectors
CRM, inbox, meetings, revenue intelligence, analytics and automations for AI agents.
Agent-native CRM. 25 tools — contacts, deals, sequences, enrichment waterfall, audit log.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Paid sales-call scoring and CRM next-step analysis for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides safe, read-only CRM access for AI assistants with per-key scopes, field masking, rate limits, and a full audit log of allowed and blocked actions.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with GoHighLevel CRM via natural language for lead lookup, pipeline management, messaging, and calendar operations, with read-only mode by default.12MIT

studiomeyer-crmofficial
AlicenseNot gradedqualityBmaintenanceAI-native CRM with 33 tools. Pipeline, leads, health scores, revenue analytics, CSV import/export.3MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with a CRM covering companies, people, leads, deals, and more, with role checks, scoped agent keys, approval gates, and a shared audit trail.AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.