Skip to main content
Glama
ictinnovations

ictbroadcast-mcp

Official

ictbroadcast-mcp

A Model Context Protocol server for ICTBroadcast — the voice, SMS and fax broadcasting and call-center platform from ICT Innovations.

It lets an AI assistant monitor outbound campaigns — list them, check status, read summaries and per-call results — and, only when you turn writes on, start and stop them.

Install

npx -y ictbroadcast-mcp      # no install
npm install -g ictbroadcast-mcp

Requires Node.js 18 or newer.

Related MCP server: Zoho Campaigns MCP

Configure

Variable

Required

Default

ICTBROADCAST_BASE_URL

yes

Server base URL, without the /rest suffix, e.g. https://your-ictbroadcast

ICTBROADCAST_USERNAME

yes

API account username

ICTBROADCAST_PASSWORD

yes

Password for that account

ICTBROADCAST_MCP_ALLOW_WRITE

no

false

Unlock start/stop campaign (see Safety)

ICTBROADCAST_TIMEOUT_MS

no

30000

Per-request timeout

ICTBROADCAST_TLS_INSECURE

no

false

Skip TLS verification — self-signed test servers only

Claude Desktop example

{
  "mcpServers": {
    "ictbroadcast": {
      "command": "npx",
      "args": ["-y", "ictbroadcast-mcp"],
      "env": {
        "ICTBROADCAST_BASE_URL": "https://your-ictbroadcast",
        "ICTBROADCAST_USERNAME": "admin",
        "ICTBROADCAST_PASSWORD": "your-password"
      }
    }
  }
}

Tools

Read tools are always available:

Tool

What it does

ictbroadcast_list_campaigns

List campaigns (id and name)

ictbroadcast_campaign_status

Live status of a campaign (running, stopped)

ictbroadcast_campaign_summary

Totals: answered, failed, human vs machine

ictbroadcast_campaign_result

Per-call results (contact, response, AMD, DNC)

Write tools appear only when ICTBROADCAST_MCP_ALLOW_WRITE=true:

Tool

What it does

ictbroadcast_start_campaign

Launch a campaign — begins live outbound calling

ictbroadcast_stop_campaign

Stop a running campaign

Safety

The server is read-only by default. Starting a campaign begins live outbound calling and can cost real money, so ictbroadcast_start_campaign and ictbroadcast_stop_campaign are not registered at all unless you set ICTBROADCAST_MCP_ALLOW_WRITE=true.

How it connects

ICTBroadcast exposes a form-encoded RPC API at {base}/rest/<Method>. Each call carries the account username and password; the server sends those for you. There is no separate token to provision. (The ICTBroadcast REST API is bundled with the Service Provider edition.)

About

Built by Tahir Almas at ICT Innovations — the team behind ICTBroadcast, ICTContact, ICTDialer, ICTFax and ICTPBX. Learn more at ictbroadcast.com.

MIT licensed. Issues and PRs welcome at github.com/ictinnovations/ictbroadcast-mcp.

Available Tools

4 tools
ictbroadcast_campaign_resultCampaign call resultsA
Read-only

Per-call results for a campaign (contact, response, answering-machine detection, DNC), optionally filtered by call status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOptional call-status filter.
campaign_idYesThe campaign id.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true, the read-only nature is already covered by annotations, so the description doesn't need to restate that. It adds useful context about the result categories and the optional status filter, though these mostly echo the schema. No destructive behavior or side effects need disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that front-loads the core purpose ('Per-call results for a campaign') and packs useful qualification into a parenthetical and a short optional clause. No filler or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with a fully documented two-parameter schema, this description covers the core purpose, the available filter, and the broad result categories. It could be stronger by explicitly routing to sibling tools or hinting at the response shape, but the category list partially compensates for the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: campaign_id is documented as 'The campaign id' and status as 'Optional call-status filter.' The description only restates the status filter without adding any new semantic detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as returning per-call results for a campaign and enumerates the kinds of data included (contact, response, answering-machine detection, DNC). It distinguishes from siblings by emphasizing 'per-call' results, but lacks an explicit verb like 'retrieve' or 'list', making it slightly less direct than an ideal definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when the tool would be used (when per-call results are needed, optionally filtered by status), but it does not explicitly mention alternatives such as ictbroadcast_campaign_summary or ictbroadcast_campaign_status. The distinction is implicit in the word 'per-call', but no direct guidance or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ictbroadcast_campaign_statusCampaign statusA
Read-only

Live status of a campaign by id (for example running or stopped). Poll this while a campaign runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesThe campaign id.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety and scope of the operation. The description adds modest context by indicating the tool can be polled while a campaign runs (suggesting it is non-blocking and safe to call repeatedly). However, it doesn't disclose the return format or any potential latency/best-effort nature of the status check. With annotations covering the main behavioral traits, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero wasted words. The core action ('Poll this while a campaign runs') is front-loaded, and the example statuses add clarity without bloat. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only polling tool with a 100%-covered schema and readOnly/openWorld annotations, the description is mostly complete. The only minor gap is not describing the shape of the status response (e.g., possible values beyond 'running or stopped'), but an output schema is absent and the examples suffice for an agent to know what to expect at a glance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter (campaign_id) adequately. The description does not add new parameter-level detail beyond implying that the campaign id uniquely identifies the campaign. Per the calibration, baseline 3 is correct when the schema carries the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Poll') and resource ('status of a campaign by id'), and clarifies the meaning of status with concrete examples ('running or stopped'). It clearly distinguishes itself from siblings like ictbroadcast_campaign_result (which likely retrieves results rather than status) and ictbroadcast_list_campaigns (which lists campaigns rather than checking a single campaign's status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides usage guidance: 'Poll this while a campaign runs.' This tells the agent when to use the tool (during campaign execution) and implies it may be called repeatedly. It also naturally excludes using this tool for campaign results or listing, which are handled by the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ictbroadcast_campaign_summaryCampaign summaryB
Read-only

Totals for a campaign: answered, failed, human vs machine and so on. Optionally scope to one agent/user id.

ParametersJSON Schema
NameRequiredDescriptionDefault
usr_idNoOptional agent/user id to scope the summary.
campaign_idYesThe campaign id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description doesn't need to cover mutation risk. It adds useful behavioral context by enumerating the aggregate categories and the optional user-id scope, but leaves the full set of returned metrics open-ended with 'and so on.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core purpose front-loaded and no redundant phrasing. The phrase 'and so on' is slightly vague but keeps the description compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only summary, the essential invocation context is present, and the optional scope is clearly stated. However, there is no output schema and the description's 'and so on' leaves the exact returned fields unspecified, so an agent cannot fully anticipate the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both campaign_id and usr_id already documented. The description reinforces the optional user scoping but adds no new constraints, formats, or meanings beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('a campaign') and the kind of result ('totals... answered, failed, human vs machine'), which distinguishes it from siblings like ictbroadcast_campaign_status or ictbroadcast_list_campaigns. It lacks an explicit verb like 'retrieves' or 'returns,' so it falls just short of top-tier clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to select this tool over siblings; the description only states what totals are available and mentions optional scoping. It does not name alternatives or give exclusion criteria, leaving the choice to inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ictbroadcast_list_campaignsList campaignsA
Read-only

List the outbound campaigns on the ICTBroadcast server (id and name of each). Start here to find a campaign id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, and the description is consistent with it, adding that the tool returns id and name pairs. It provides a small amount of behavioral context via 'Start here' but does not disclose additional traits such as pagination, ordering, or whether this returns all campaigns. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The core purpose is front-loaded, and the workflow hint ('Start here') is placed second without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description adequately covers what it does and why an agent would use it first. It does not explicitly state that it returns all campaigns or describe an output structure beyond id/name, but the no-param schema and clear purpose make this sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so there is nothing to document. The description adds no parameter details, but none are needed; a baseline of 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair ('List the outbound campaigns on the ICTBroadcast server') and explicitly names the returned data (id and name of each). The phrase 'Start here to find a campaign id' clearly positions this as the entry point, distinguishing it from the result/status/summary siblings that likely consume the campaign id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Start here to find a campaign id' is an explicit usage instruction that tells an agent when to invoke this tool first. It gives clear context for the workflow, though it does not explicitly name the alternative sibling tools or state when not to use this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation4/5

Each tool targets a distinct concept: listing campaigns, live status, per-call results, and aggregate totals. Campaign_result and campaign_summary are related but clearly separated by per-call versus totals.

Naming Consistency4/5

Names follow a consistent ictbroadcast_ prefix and mostly use a noun-based pattern (campaign_result, campaign_status, campaign_summary). The one verb-based name, ictbroadcast_list_campaigns, is a minor deviation but still clear.

Tool Count5/5

Four tools is well-scoped for a campaign monitoring/analytics server. Each tool covers a necessary piece without unnecessary bloat.

Completeness4/5

The set covers the core campaign monitoring workflow: discover campaigns, check live status, view summary totals, and inspect individual call results. It lacks management operations like create/update/stop, but those may be outside the server's apparent read-only purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read access to campaign performance data from Google Ads, Meta Ads, and TikTok Ads via live API calls, enabling AI assistants to analyze and audit advertising campaigns.
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables to interact with Zoho Campaigns API v1.1, supporting OAuth2 authentication, contact and campaign management, bounced contact queries, and more, through natural language.
    11
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to monitor outbound campaigns in ICTContact/ICTDialer, including listing campaigns, checking status, reading summaries and per-call results, and optionally starting and stopping campaigns when write access is enabled.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ictinnovations/ictbroadcast-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server