Skip to main content
Glama

Boardroom Revenue Control

Server Details

Read-only sales CRM for AI clients: leads, pipeline, AI-agent chats, calls, ad attribution.

Ownership verified
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 tools
ad_attributionAd attribution
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.
sinceNotoday | week | month | 30d | ISO timestamp (Asia/Dubai days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
agent_configAI-agent configuration
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
agent_conversationsAI-agent conversations
Read-onlyIdempotent
Inspect

Conversations the AI agent handled, with intent, language, message count and the deal they bound to. Contacts masked. [scope: agent:read]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.
sinceNotoday | week | month | 7d | ISO timestamp (Asia/Dubai days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
agent_get_conversationOne conversation transcript
Read-onlyIdempotent
Inspect

One conversation with its transcript — what the customer wrote and what the agent answered. [scope: agent:read]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.
conversation_idYesUUID from agent_conversations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
crm_get_leadGet one lead
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
lead_idYesUUID of the lead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
crm_leads_without_taskLeads without a follow-up task
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
crm_list_leadsList leads
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.
sinceNotoday | yesterday | week | month | 7d | 30d | ISO timestamp. Days are Asia/Dubai.
stageNoStage name, exact (case-insensitive). Omit for all stages.
offsetNoRows to skip before the first returned row (for paging).
pipeline_idNoUUID of one pipeline. Omit for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
crm_pipeline_overviewPipeline overview
Read-onlyIdempotent
Inspect

Every pipeline and stage with its lead count and total value. The shape of the funnel. [scope: crm:read]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
dashboard_snapshotDashboard snapshot
Read-onlyIdempotent
Inspect

The workspace's own KPI contract as the dashboard renders it, with the time it was built. [scope: crm:read]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
marketing_snapshotMarketing snapshot
Read-onlyIdempotent
Inspect

Advertising performance: spend, reach, clicks, cost per lead, per campaign, plus the CRM join. [scope: marketing:read]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
partner_overviewPartner overview
Read-onlyIdempotent
Inspect

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]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
voice_callsVoice calls
Read-onlyIdempotent
Inspect

Calls with direction, disposition and talk time. Customer numbers masked. [scope: crm:read]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return.
sinceNotoday | week | month | 7d | ISO timestamp (Asia/Dubai days).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).
whoamiWho am I (token and workspace)
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNoFalse when the call was refused or failed; see error.
errorNoMachine-readable refusal code (a string), present only when ok is false.
messageNoHuman-readable explanation of a refusal (a string).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updates
    • Changedad_attribution1 field changed
      • changedOutput 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"
        +}
    • Changedagent_config1 field changed
      • changedOutput 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"
        +}
    • Changedagent_conversations1 field changed
      • changedOutput 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"
        +}
    • Changedagent_get_conversation1 field changed
      • changedOutput 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"
        +}
    • Changedcrm_get_lead1 field changed
      • changedOutput 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"
        +}
    • Changedcrm_leads_without_task1 field changed
      • changedOutput 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"
        +}
    • Changedcrm_list_leads1 field changed
      • changedOutput 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"
        +}
    • Changedcrm_pipeline_overview1 field changed
      • changedOutput 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"
        +}
    • Changeddashboard_snapshot1 field changed
      • changedOutput 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"
        +}
    • Changedmarketing_snapshot1 field changed
      • changedOutput 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"
        +}
    • Changedpartner_overview1 field changed
      • changedOutput 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"
        +}
    • Changedvoice_calls1 field changed
      • changedOutput 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"
        +}
    • Changedwhoami1 field changed
      • changedOutput 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"
        +}
  2. 6 tool updates
    • Changedad_attribution1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
    • Changedagent_conversations1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
    • Changedagent_get_conversation1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
    • Changedcrm_leads_without_task1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
    • Changedcrm_list_leads2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip before the first returned row (for paging)."
    • Changedvoice_calls1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of rows to return."
  3. 13 tool updates
    • First observedad_attribution
    • First observedagent_config
    • First observedagent_conversations
    • First observedagent_get_conversation
    • First observedcrm_get_lead
    • First observedcrm_leads_without_task
    • First observedcrm_list_leads
    • First observedcrm_pipeline_overview
    • First observeddashboard_snapshot
    • First observedmarketing_snapshot
    • First observedpartner_overview
    • First observedvoice_calls
    • First observedwhoami

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    AI-native CRM with 33 tools. Pipeline, leads, health scores, revenue analytics, CSV import/export.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.