Skip to main content
Glama

MagicBell MCP by usefulapi

Server Details

Read MagicBell broadcasts, users, events, workflows and channels; create and update user records.

Ownership verified
Status
Healthy
Uptime
84.9% over 71 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation5/5

Each tool maps to a distinct resource+action pair (get vs list vs create vs update on users, broadcasts, events, workflows, channels, integrations). The get/list split is well-signaled by descriptions, so an agent can select reliably.

Naming Consistency5/5

All tools follow a strict magicbell_ + verb_noun snake_case pattern (create_user, get_broadcast, list_workflow_runs, update_user). No mixing of conventions.

Tool Count5/5

13 tools is well within the ideal 3-15 range and each earns its place by covering a distinct resource/action. No redundant or filler tools.

Completeness3/5

The surface is heavily read-only: users have create/get/update/list but no delete, while broadcasts, workflows, integrations, and channels are get/list only with no create/update/delete. Notably there is no way to send a notification or create a broadcast, which is arguably the core purpose of MagicBell, leaving significant lifecycle gaps.

Available Tools

13 tools
magicbell_create_userCreate a userA
Destructive
Inspect

Creates a user (notification recipient) record in MagicBell. Additive — sends no notification. Provide at least one identifier (external_id or email). Project API: POST /users.

NameRequiredDescriptionDefault
emailNoUser email address.
timezoneNoIANA timezone, e.g. America/New_York.
last_nameNoUser last name.
first_nameNoUser first name.
external_idNoYour own stable id for this user (recommended identifier).
phone_numbersNoArray of phone numbers (E.164).
custom_attributesNoArbitrary key/value metadata for the user.

TDQS

A4.2/5.0
Behavior4/5

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

The only annotation is destructiveHint=true, so the description usefully adds the side-effect disclosure that this is 'Additive — sends no notification,' plus the underlying endpoint (POST /users). It does not cover what happens if the user already exists or any auth/permission requirements, which would have raised this further. Note the mild tonal tension with destructiveHint=true, but 'additive' describes lack of side effects on other resources rather than contradicting a write operation, so this is not a contradiction.

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?

Three short sentences, no filler, with the core action and the non-obvious 'no notification' behavior front-loaded ahead of the constraint and endpoint. Every sentence 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 7-parameter mutation with no output schema and only a destructiveHint annotation, the description covers action, side effects, the minimum-identifier rule, and the API route. The main remaining gap is the outcome of the call (duplicate/existing-user behavior and what the response contains), which an agent would otherwise have to discover at runtime.

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?

Schema description coverage is 100%, so the baseline is 3 and the schema carries field-level meaning. The description goes beyond it by stating the cross-parameter constraint that at least one of external_id or email must be supplied — genuinely necessary information since the schema marks nothing as required.

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?

States a specific verb and resource ('Creates a user record in MagicBell') and parenthetically explains what a user is in this domain ('notification recipient'), which is not inferable from the name alone. The verb cleanly separates it from siblings like magicbell_get_user, magicbell_list_users, and magicbell_update_user.

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?

It gives one actionable precondition — 'Provide at least one identifier (external_id or email)' — which the schema does not enforce (required count is 0). However it never states when to prefer this over magicbell_update_user, nor whether calling it for an existing user is idempotent/upserting, so alternative selection is left to inference.

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

magicbell_get_broadcastGet a broadcastB
Read-only
Inspect

Fetch a single broadcast by id. Project API: GET /broadcasts/{broadcast_id}.

NameRequiredDescriptionDefault
broadcast_idYesBroadcast id.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context by mapping to the REST endpoint (GET /broadcasts/{broadcast_id}), but says nothing about behavior on a missing/invalid id or the response shape.

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, front-loaded sentences with zero waste; the core operation comes first and the endpoint mapping second.

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 tool with full schema coverage and annotations covering the safety profile, the description is nearly sufficient. Minor gaps remain around lookup failure behavior, but nothing essential to a correct invocation is missing.

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 a single required broadcast_id, so the schema already documents the parameter. The description only restates 'by id' and adds no format, source, or constraint details beyond the schema baseline.

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?

States a specific verb+resource ('Fetch a single broadcast') and the word 'single' implicitly contrasts with the sibling magicbell_list_broadcasts. It doesn't explicitly name the alternative, so it falls short of full sibling differentiation.

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 explicit guidance on when to use this versus magicbell_list_broadcasts or other siblings; the 'single' vs. list distinction must be inferred. No prerequisites or error conditions mentioned.

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

magicbell_get_eventGet an eventA
Read-only
Inspect

Fetch a single delivery event by id. Project API: GET /events/{event_id}.

NameRequiredDescriptionDefault
event_idYesEvent id.

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this as a safe read, so the description only needs to add context. It adds the REST endpoint mapping (GET /events/{event_id}), but says nothing about error behavior for a missing/invalid id or response shape.

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, zero filler, with the core action front-loaded before the API mapping detail.

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 single-resource GET with one fully documented parameter and annotations covering the safety profile, this is nearly sufficient. Only the absence of any error/not-found behavior keeps it from a 5.

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?

There is a single parameter with 100% schema description coverage, so the schema already carries the semantics. The description's 'by id' adds no syntax, format, or sourcing detail beyond the schema baseline.

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?

States a specific verb and resource ('Fetch a single delivery event by id'), and the word 'single' implicitly contrasts with the sibling magicbell_list_events. It does not name that sibling explicitly, so it falls just short of a 5.

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?

'By id' implies the precondition that the caller already has an event id, but there is no explicit statement of when to use this versus magicbell_list_events or how to obtain the id. Usage is inferred rather than stated.

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

magicbell_get_userGet a userA
Read-only
Inspect

Fetch a single user by MagicBell user id or external id. Project API: GET /users/{user_id}.

NameRequiredDescriptionDefault
user_idYesMagicBell user id or external id.

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description adds the underlying REST mapping (GET /users/{user_id}), which is mild context, but says nothing about not-found behavior, error responses, or result freshness.

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, front-loaded with the primary purpose, with the API mapping relegated to a secondary clause. No padding or repetition.

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 one-parameter read tool whose safety profile is covered by annotations and which has no output schema, the description is nearly sufficient. The only real omission is behavior when the user does not exist, which an agent would likely want to know.

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% and the single parameter is fully documented as 'MagicBell user id or external id'. The description restates that same fact rather than adding format, prefix, or resolution-order detail, so baseline 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?

States a specific verb (fetch) and resource (a single user) and names the lookup key, which distinguishes it from list_users and create/update_user. It does not explicitly name the sibling it replaces, but scope ('a single user') makes the boundary inferable.

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?

Usage is implied by 'by MagicBell user id or external id' — an agent understands it needs an identifier — but there is no explicit when-to-use guidance, no statement that it returns nothing for unknown ids, and no mention of list_users as the alternative for enumerating users.

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

magicbell_get_workflow_runGet a workflow runA
Read-only
Inspect

Fetch a single workflow run by id. Project API: GET /workflows/runs/{run_id}.

NameRequiredDescriptionDefault
run_idYesWorkflow run id.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered and the bar is lower. The description adds the REST path (GET /workflows/runs/{run_id}), which is mild extra context, but says nothing about not-found/error behavior or permission scope for a lookup tool.

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, zero filler, with the action front-loaded before the endpoint detail. Every clause 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 whose annotations cover the safety profile, the description is nearly sufficient. The one gap is that no output schema exists, so it never hints at what a workflow run response contains (status, timestamps, steps), which an agent would otherwise have to discover empirically.

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% and the single run_id parameter is already documented as 'Workflow run id.' The description's 'by id' adds no format, prefix, or constraint detail beyond the schema, so the baseline 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?

States a specific verb and resource ('Fetch a single workflow run by id') and even pins down the scope as singular-and-by-id, distinguishing it from the sibling list_workflow_runs. It does not explicitly name siblings or contrast with list_workflow_runs/list_workflows, so it falls short of the top tier.

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?

No explicit when-to-use or when-not-to-use statement and no named alternative, but the singular 'by id' framing plus the presence of list_workflow_runs makes the intended usage inferable. This is implied rather than stated guidance.

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

magicbell_list_broadcastsList broadcastsA
Read-only
Inspect

List broadcasts (notification-send batches) with cursor pagination. Read-only observability. Project API: GET /broadcasts.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so 'Read-only observability' largely restates structured data, though it does confirm the intent of the call. The genuinely additive detail is the cursor-pagination disclosure and the underlying API mapping (GET /broadcasts), but return shape and page-size defaults are left unstated.

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?

Three short sentences/fragments with no filler, and the pagination behavior is front-loaded right after the action. 'Project API: GET /broadcasts' is dense but useful for agents that reason about API surfaces; nothing is redundant.

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 zero-required-parameter list endpoint with a fully documented schema and no output schema, the description covers the essential facts: what a broadcast is, that results are paginated, and that the call is read-only. Only the return item shape and default page size are absent, which is acceptable given the simple 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%, so limit, ending_before, and starting_after are fully documented in the schema. The description's mention of 'cursor pagination' is consistent with that but adds no syntax, defaults, or ordering semantics beyond it, so the baseline 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?

States a specific verb+resource ('List broadcasts') and helpfully defines the domain term as 'notification-send batches', which removes ambiguity for an agent unfamiliar with MagicBell's vocabulary. It does not explicitly name the sibling get_broadcast as the single-item alternative, so it stops just short of full sibling differentiation.

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?

'Read-only observability' implies the context (inspecting sent batches) but there is no explicit when-to-use/when-not or pointer to an alternative such as magicbell_get_broadcast for a single item. Usage is inferable from the name and the observability framing rather than stated.

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

magicbell_list_channelsList channelsB
Read-only
Inspect

List delivery channels (in-app, email, push, SMS, etc.) with cursor pagination. Project API: GET /channels.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the burden is lower. The description adds useful context beyond the annotations: pagination model and the REST endpoint it maps to (GET /channels). However, it says nothing about rate limits, default page size, or ordering, so it is adequate rather than rich.

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, zero waste, with the resource and its value set front-loaded ahead of the pagination and endpoint notes. Nothing could be trimmed without losing information.

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 read-only, zero-required-parameter list tool with full schema coverage and no output schema, the description covers purpose, pagination, and the backing endpoint. It is slightly thin on what each returned channel object contains, but the enumerated channel types give the agent a reasonable expectation.

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 limit, ending_before, and starting_after are already fully documented in the schema. The description only restates that pagination is cursor-based, adding no syntax, defaults, or interaction detail beyond the schema — the baseline 3 for high coverage 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?

States a specific verb and resource ('List delivery channels') and enumerates the kind of values returned (in-app, email, push, SMS), which disambiguates it from siblings like list_integrations or list_broadcasts. It does not explicitly say how it differs from the nearest sibling, so it falls short of a 5.

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?

The description gives no when-to-use or when-not-to-use guidance and names no alternative tool. The only usage-ish signal is 'cursor pagination', which describes mechanics rather than context for selecting this tool over list_integrations or list_users.

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

magicbell_list_eventsList eventsA
Read-only
Inspect

List notification delivery events with cursor pagination. Read-only observability. Project API: GET /events.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so 'Read-only observability' largely restates structured data. The description does add the pagination behavior (cursor-based listing), but says nothing about ordering, rate limits, or retention/visibility rules for events. With annotations covering the safety profile, this is adequate but thin.

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?

Three terse clauses with the core purpose front-loaded, followed by the read-only nature and the underlying API endpoint. Nothing is wasted and the API mapping is genuinely useful for cross-referencing.

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 zero-required-param list tool with full schema coverage and no output schema, the description covers calling mechanics but omits what an event record contains and how results are ordered. Complete enough to invoke correctly, not complete enough to interpret results.

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%, and the schema already documents limit, starting_after, and ending_before with cursor semantics. The description's mention of cursor pagination matches but adds no format, default, or ordering detail beyond the schema, 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?

States a specific verb and resource ('List notification delivery events') and adds the pagination mode, which cleanly distinguishes it from the singular sibling magicbell_get_event. It does not explicitly name the sibling or contrast them, so it falls short of a 5.

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?

'Read-only observability' implies the usage context (inspecting delivery outcomes) but gives no when-to-use vs. when-to-use magicbell_get_event, and no prerequisites. Usage is inferable rather than stated.

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

magicbell_list_integrationsList integrationsA
Read-only
Inspect

List configured provider integrations (e.g. Sendgrid, APNs, FCM). Project API: GET /integrations.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe, non-mutating read, so the description's burden is light. It adds the underlying API mapping (GET /integrations), which helps ground the call, but says nothing about response shape, pagination, or ordering of the returned integrations.

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 compact sentences, front-loaded with the action and resource, with the API endpoint note kept last. Nothing is wasted and nothing important is buried.

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 no-argument read-only list tool with annotations covering the safety profile, the definition is nearly sufficient. Without an output schema, the response shape (what fields describe each integration) is left unknown, which is the only meaningful omission.

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 takes zero parameters, and schema description coverage is effectively complete for an empty object. Baseline 4 applies: there are no parameter semantics the description could or should clarify.

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 gives a specific verb ('List') plus resource ('configured provider integrations') and concrete examples (Sendgrid, APNs, FCM), so the purpose is unambiguous. It does not differentiate itself from similar list siblings such as magicbell_list_channels, though the 'provider integrations' phrasing does scope it well.

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?

Usage is implied by the resource name — an agent would call this to discover which providers are configured — but there is no explicit when-to-use statement, no prerequisites, and no alternative tool named. Adequate but with clear gaps.

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

magicbell_list_usersList usersB
Read-only
Inspect

List users (notification recipients) with cursor pagination. Project API: GET /users.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds a pagination note and the REST endpoint mapping, but nothing about ordering, rate limits, or return shape that would go beyond structured data.

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 compact sentences with the core purpose front-loaded and no filler; every clause carries information.

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 read-only listing tool with no required params, no output schema, and fully documented parameters, the description covers what an agent needs to invoke it. It could be stronger only by clarifying ordering or relation to get_user.

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 limit, ending_before, and starting_after are already fully documented in the schema. The description's 'cursor pagination' phrase adds no syntax or default details beyond that, so the baseline 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?

States a specific verb+resource ('List users') and adds a clarifying gloss ('notification recipients') plus the underlying API endpoint (GET /users). The plural 'List' distinguishes it from the singular sibling get_user, though the description never names that sibling explicitly.

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?

There is no when-to-use guidance and no mention of alternatives such as get_user for a single record or the create/update_user tools. Usage is only inferable from the verb 'List'.

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

magicbell_list_workflow_runsList workflow runsB
Read-only
Inspect

List workflow runs (execution history) with cursor pagination. Project API: GET /workflows/runs.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description adds the meaningful behavior that results are paginated by cursor and maps to the Project API endpoint GET /workflows/runs. It does not disclose ordering (newest first?), a default page size, or whether runs across all workflows or one workflow are returned.

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, zero filler, with the core action front-loaded and pagination plus endpoint tacked on compactly.

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?

There is no output schema, so an agent gets no description of what a 'workflow run' record contains or its ordering, which matters for a history-listing tool. Given only three cursor-style parameters and read-only annotations, the definition is adequate but leaves the return-value shape implicit.

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 coverage is 100% and each cursor parameter is self-documented in the schema, so baseline is 3. The description's 'cursor pagination' phrasing corroborates the schema but adds no format details, default limit, or cursor lifetime beyond what is already there.

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?

States a specific verb and resource ('List workflow runs') plus a parenthetical scope clarification ('execution history'), which distinguishes it from get_workflow_run and list_workflows. It does not explicitly name a sibling, but the singular/plural and get/list split makes the intent unambiguous.

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?

The description gives no when-to-use guidance, no statement of when to prefer get_workflow_run over this history listing, and no prerequisites. The cursor-pagination note is a mechanism detail, not usage direction.

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

magicbell_list_workflowsList workflowsB
Read-only
Inspect

List notification workflows with cursor pagination. Project API: GET /workflows.

NameRequiredDescriptionDefault
limitNoMax items per page (cursor pagination).
ending_beforeNoCursor: return items before this id (previous page).
starting_afterNoCursor: return items after this id (next page).

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, so safety is covered. The description usefully adds that results are cursor-paginated, but says nothing about ordering, page-size defaults, behavior when a cursor is invalid, or empty results.

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, front-loaded with the action and resource. The endpoint clause is mildly redundant but compact and useful for API-oriented callers.

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 read-only, zero-required-parameter list tool with no output schema, the description covers the essentials. It stops short of describing the shape of the returned collection or default page size, leaving minor gaps for an agent composing a paging loop.

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 all three cursor parameters are already fully documented in the schema, which sets the baseline at 3. The description's 'cursor pagination' phrase restates that mechanic without adding format or edge-case detail.

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?

States a specific verb (List) and resource (notification workflows) plus the pagination model, and the endpoint mapping (GET /workflows) confirms the resource. It does not explicitly distinguish itself from the nearby sibling magicbell_list_workflow_runs, so an agent must infer the singular/plural distinction from names.

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?

There is no when-to-use guidance, no mention of alternatives such as list_workflow_runs or get_workflow_run, and no stated prerequisites. The presence of cursor parameters implies paging but the description never says when this tool is the right choice over siblings.

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

magicbell_update_userUpdate a userB
Destructive
Inspect

Updates a user record (reversible; sends no notification). Project API: PUT /users/{user_id}.

NameRequiredDescriptionDefault
emailNoUser email address.
user_idYesMagicBell user id or external id to update.
timezoneNoIANA timezone, e.g. America/New_York.
last_nameNoUser last name.
first_nameNoUser first name.
external_idNoYour own stable id for this user (recommended identifier).
phone_numbersNoArray of phone numbers (E.164).
custom_attributesNoArbitrary key/value metadata for the user.

TDQS

B3.2/5.0
Behavior2/5

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

The description asserts the operation is "reversible" while the annotation declares destructiveHint=true, which undercuts the safety signal an agent should surface before mutating a user. The "sends no notification" clause is genuinely useful added context, and it does not state whether the PUT is a full replace or a partial merge, nor any permission/rate-limit constraints.

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 clauses with the core verb front-loaded and no filler; the API-endpoint parenthetical is compact and helps map the call. Slightly more terse than ideal, but nothing is wasted.

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 an 8-parameter mutation with no output schema, the description covers the basic nature of the call but omits replace-vs-merge semantics, required permissions, and error/partial-update behavior, and its reversibility claim conflicts with the destructive annotation. Adequate but with clear gaps.

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 coverage is 100%, so all eight fields (including custom_attributes and detailed phone_numbers/timezone formats) are already documented in the schema; the description adds only the implied path placement of user_id via PUT /users/{user_id}. Baseline 3 applies when the schema does the heavy lifting.

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?

"Updates a user record" is a specific verb+resource that clearly separates it from magicbell_create_user, magicbell_get_user, and magicbell_list_users, and the projected PUT /users/{user_id} endpoint reinforces the operation type. It does not explicitly name a sibling, but the change-vs-create-vs-read distinction is unambiguous from the text.

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 purpose implies when to reach for this tool (mutating an existing user), but there is no explicit when-to-use/when-not guidance or pointer to alternatives such as magicbell_create_user for new records or magicbell_get_user for reads. Usage is inferable rather than stated.

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Novu's notification infrastructure, supporting event triggering, subscriber management, topic operations, and notification retrieval.
    ISC
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to interact with Novu's notification system, facilitating operations like sending notifications, managing subscribers, and organizing topics.
    4
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Lets AI assistants manage subscribers, trigger workflows, inspect notification events, and tune preferences across any MCP-compatible client.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Manage your entire notification infrastructure using natural language. Trigger workflows, create users, manage preferences, update tenant branding, and access docs — all from Cursor, Claude Desktop, or Windsurf. 24 tools covering email, SMS, push, WhatsApp, Slack, MS Teams, and in-app notifications.
    22
    12
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.