# Boardroom Revenue Control (remote · control.boardroom-ai.ae)

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

- Trust score: 90/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `control.boardroom-ai.ae`: 90/100 (this document), [markdown](https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control.md), [page](https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control)

## Channel facts

- Endpoint: `https://control.boardroom-ai.ae/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1013 tokens (~77/item across 13 items; 13 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 87/100
  - Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Boardroom Revenue Control MCP server?

Boardroom Revenue Control is a hosted endpoint at https://control.boardroom-ai.ae/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http boardroomgen-ai-ae-boro-ai 'https://control.boardroom-ai.ae/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "boardroomgen-ai-ae-boro-ai": {
      "url": "https://control.boardroom-ai.ae/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "boardroomgen-ai-ae-boro-ai": {
      "type": "http",
      "url": "https://control.boardroom-ai.ae/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.boardroomgen-ai-ae-boro-ai]
url = "https://control.boardroom-ai.ae/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "boardroomgen-ai-ae-boro-ai": {
      "type": "remote",
      "url": "https://control.boardroom-ai.ae/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add boardroomgen-ai-ae-boro-ai --url 'https://control.boardroom-ai.ae/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  boardroomgen-ai-ae-boro-ai:
    url: "https://control.boardroom-ai.ae/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "boardroomgen-ai-ae-boro-ai": {
      "Transport": "http",
      "Url": "https://control.boardroom-ai.ae/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add boardroomgen-ai-ae-boro-ai -t streamable-http -u 'https://control.boardroom-ai.ae/mcp'
```

### Other

```json
{
  "mcpServers": {
    "boardroomgen-ai-ae-boro-ai": {
      "type": "http",
      "url": "https://control.boardroom-ai.ae/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 90, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 88, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 85, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (13)

### `whoami` (~40 tokens)

Who am I (token and workspace)

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.

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `crm_list_leads` (~169 tokens)

List leads

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]

Input parameters:

- `limit` (integer): Maximum number of rows to return.
- `offset` (integer): Rows to skip before the first returned row (for paging).
- `pipeline_id` (string): UUID of one pipeline. Omit for all.
- `since` (string): today | yesterday | week | month | 7d | 30d | ISO timestamp. Days are Asia/Dubai.
- `stage` (string): Stage name, exact (case-insensitive). Omit for all stages.

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `crm_get_lead` (~85 tokens)

Get one lead

One lead — notes, events, stage history and open tasks. Phone, e-mail and messenger ids are MASKED unless this key also holds crm:read_pii, which the workspace owner grants separately. Scoped to this workspace: a lead id from elsewhere reads as not_found. [scope: crm:read]

Input parameters:

- `lead_id` (string, required): UUID of the lead.

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `crm_pipeline_overview` (~35 tokens)

Pipeline overview

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

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `crm_leads_without_task` (~63 tokens)

Leads without a follow-up task

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]

Input parameters:

- `limit` (integer): Maximum number of rows to return.

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `ad_attribution` (~110 tokens)

Ad attribution

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]

Input parameters:

- `limit` (integer): Maximum number of rows to return.
- `since` (string): today | week | month | 30d | ISO timestamp (Asia/Dubai days).

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `agent_conversations` (~77 tokens)

AI-agent conversations

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

Input parameters:

- `limit` (integer): Maximum number of rows to return.
- `since` (string): today | week | month | 7d | ISO timestamp (Asia/Dubai days).

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `agent_get_conversation` (~59 tokens)

One conversation transcript

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

Input parameters:

- `conversation_id` (string, required): UUID from agent_conversations.
- `limit` (integer): Maximum number of rows to return.

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `dashboard_snapshot` (~34 tokens)

Dashboard snapshot

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

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `marketing_snapshot` (~36 tokens)

Marketing snapshot

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

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `agent_config` (~102 tokens)

AI-agent configuration

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]

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `partner_overview` (~68 tokens)

Partner overview

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]

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

### `voice_calls` (~66 tokens)

Voice calls

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

Input parameters:

- `limit` (integer): Maximum number of rows to return.
- `since` (string): today | week | month | 7d | ISO timestamp (Asia/Dubai days).

Output parameters:

- `error`: Machine-readable refusal code (a string), present only when ok is false.
- `message`: Human-readable explanation of a refusal (a string).
- `ok` (boolean): False when the call was refused or failed; see error.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control#diagnostics

## Score history

- 2026-11-05: 90
- 2026-11-04: 89
- 2026-11-03: 89
- 2026-11-02: 88
- 2026-11-01: 88
- 2026-10-31: 87
- 2026-10-30: 87
- 2026-10-29: 86
- 2026-10-28: 86
- 2026-10-27: 85
- 2026-10-26: 85
- 2026-10-25: 84
- 2026-10-24: 84
- 2026-10-23: 83
- 2026-10-22: 83
- 2026-10-21: 83
- 2026-10-20: 82
- 2026-10-19: 82
- 2026-10-18: 81
- 2026-10-17: 81
- 2026-10-16: 80
- 2026-10-15: 80
- 2026-10-14: 79
- 2026-10-13: 79
- 2026-10-12: 78
- 2026-10-10: 77

## Common questions

### What is the Boardroom Revenue Control MCP server?

Boardroom Revenue Control is an MCP server listed in the public MCP registry as io.github.boardroomgen-ai-ae/boro-ai. Read-only sales CRM for AI clients: leads, pipeline, AI-agent chats, calls, ad attribution. This page covers its hosted endpoint (https://control.boardroom-ai.ae/mcp).

### Is the Boardroom Revenue Control MCP server safe to use?

Boardroom Revenue Control scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Boardroom Revenue Control MCP server expose?

Boardroom Revenue Control exposes 13 tools: whoami, crm_list_leads, crm_get_lead, crm_pipeline_overview, crm_leads_without_task, and 8 more. Their descriptions and schemas cost roughly 944 tokens of context every time the server is loaded.

### Does the Boardroom Revenue Control MCP server require authentication?

Yes. Boardroom Revenue Control asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Boardroom Revenue Control MCP server still maintained?

Boardroom Revenue Control is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://control.boardroom-ai.ae/mcp
- Authorisation metadata: https://control.boardroom-ai.ae/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/boardroomgen-ai-ae/boro-ai
- Website: https://boardroom-ai.ae/
- Changelog RSS feed: https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control.xml
- Changelog JSON feed: https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control.json
- HTML version of this page: https://verifymcp.io/servers/boardroomgen-ai-ae-boro-ai/control
