Boardroom Revenue Control

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

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
64%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,728Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.13% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

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

Remote-Endpunkte

https://control.boardroom-ai.ae/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (13)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢whoami

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢crm_list_leads(stage, pipeline_id, since, limit, offset)

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]

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "stage": {
      "type": "string",
      "description": "Stage name, exact (case-insensitive). Omit for all stages."
    },
    "pipeline_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of one pipeline. Omit for all."
    },
    "since": {
      "type": "string",
      "description": "today | yesterday | week | month | 7d | 30d | ISO timestamp. Days are Asia/Dubai."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "Maximum number of rows to return."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5000,
      "default": 0,
      "description": "Rows to skip before the first returned row (for paging)."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢crm_get_lead(lead_id)

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]

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the lead."
    }
  },
  "required": [
    "lead_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢crm_pipeline_overview

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢crm_leads_without_task(limit)

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]

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "Maximum number of rows to return."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢ad_attribution(since, limit)

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]

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "today | week | month | 30d | ISO timestamp (Asia/Dubai days)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 100,
      "description": "Maximum number of rows to return."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢agent_conversations(since, limit)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "today | week | month | 7d | ISO timestamp (Asia/Dubai days)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "Maximum number of rows to return."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢agent_get_conversation(conversation_id, limit)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID from agent_conversations."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 100,
      "description": "Maximum number of rows to return."
    }
  },
  "required": [
    "conversation_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢dashboard_snapshot

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢marketing_snapshot

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢agent_config

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]

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢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]

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}
🟢voice_calls(since, limit)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "today | week | month | 7d | ISO timestamp (Asia/Dubai days)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "Maximum number of rows to return."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False when the call was refused or failed; see error."
    },
    "error": {
      "description": "Machine-readable refusal code (a string), present only when ok is false."
    },
    "message": {
      "description": "Human-readable explanation of a refusal (a string)."
    }
  },
  "additionalProperties": true
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet13 Tools