Call Desk
Server Details
US and Canada calling rules: number checks, calling hours, recording consent, AI voice disclosure.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct question: whether a number is callable (check_phone_number), whether it's legally OK to call now (can_i_call_now), what disclosure rules apply (ai_voice_disclosure_rules), what recording consent rules apply (recording_consent_rules), and a full state rule dump (list_state_calling_rules). There is some conceptual overlap between can_i_call_now and list_state_calling_rules, but the descriptions make the division clear (point-in-time decision vs. exhaustive listing). No two tools appear to do the same thing.
Four of five tools use a consistent verb_noun or verb_phrase pattern with snake_case (check_phone_number, can_i_call_now, list_state_calling_rules, recording_consent_rules), which is mostly predictable. The one outlier is ai_voice_disclosure_rules, which is a noun phrase rather than a verb phrase, slightly breaking the pattern. Still readable and largely consistent.
Five tools for a legal compliance server covering phone number validation, calling windows, AI disclosure, recording consent, and state rule lookup is well-scoped. Each tool earns its place and the count avoids redundancy while covering the domain.
The surface covers key compliance areas: number validity, calling hours, AI disclosure, recording consent, and state rule aggregation. However, there is no tool for text/SMS compliance rules or for looking up specific citations by keyword, which could be useful. Core workflows are covered but minor gaps exist.
Available Tools
5 toolsai_voice_disclosure_rulesAI voice disclosure rulesARead-onlyIdempotentInspect
List the laws that require a caller or conversational agent to disclose that it is AI, a bot, or an artificial or prerecorded voice, for a US state, Canadian province or phone number, or for every jurisdiction. Covers the FCC ruling that AI-generated voices are artificial voices under the TCPA (so AI voice calls need prior express consent), the federal rule that prerecorded messages identify the caller at the start, state AI and chatbot disclosure laws, and state rules on identifying automated messages. Each rule gives what must be disclosed, when, who it applies to, effective and sunset dates, whether it is in force today, the citation, a verbatim quote, the source URL and as-of date. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | A US state, DC, territory or Canadian province, as a code or name. | |
| phone_number | No | Instead of a state: a phone number; its area code gives the state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, non-open-world behavior, and the description adds substantial extra context: exactly what each returned rule contains (disclosure requirement, timing, applicability, effective/sunset dates, in-force status, citation, verbatim quote, source URL, as-of date) plus the FCC/TCPA framing. It also disclaims 'informational, not legal advice', which is useful behavioral guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then the invocation modes, then the enumerated return contents. It is on the longer side and the enumeration of rule fields could be trimmed, but every sentence carries information relevant to calling or interpreting the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully compensates by describing the shape and fields of each returned rule, the scope options, and the safety profile via annotations. An agent has everything needed to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: both parameters are optional and omitting them returns rules 'for every jurisdiction'. It also reiterates that a phone number's area code resolves to a state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list the laws requiring AI/bot/prerecorded-voice disclosure) and scopes it precisely to US states, Canadian provinces, phone numbers, or all jurisdictions. It is clearly distinguishable from siblings like list_state_calling_rules and recording_consent_rules by its AI-disclosure focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent the ways to invoke it: pass a state, a phone number, or nothing to cover 'every jurisdiction'. It gives clear contextual usage but does not explicitly name alternatives or state when a different sibling (e.g. recording_consent_rules) is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
can_i_call_nowCan I call nowARead-onlyIdempotentInspect
Decide whether a call to a phone number, or to someone in a given state or province, is allowed right now or at a given time under calling-hours law: the FCC TCPA rule and FTC Telemarketing Sales Rule (8 a.m. to 9 p.m. called party's local time), every stricter state rule we verified (for example Florida, Oklahoma, Maryland, Washington and Wyoming stop at 8 p.m.; Texas Sundays start at noon; Pennsylvania bans Sundays from 2026-10-18; Kentucky starts at 10 a.m.; Maine allows automated solicitation weekdays 9 to 5 only), and in Canada the CRTC rules and British Columbia's holiday ban. Checks every time zone the number could be in, state holiday bans and future effective dates. Returns allowed or not, the reason, the window today, the next allowed time, and every rule applied with its citation, verbatim quote, source URL and as-of date. Choose call_type: sales_automated covers AI voice agents, prerecorded and autodialed sales calls. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Check a time other than now: ISO 8601 with an offset, for example 2026-10-19T09:30:00-05:00. | |
| state | No | Instead of a number: the called person's US state, DC, US territory or Canadian province, as a code (TX) or name (Texas). States with several time zones are checked in all of them. | |
| call_type | No | sales_automated (default): a sales call by AI voice, prerecorded message or autodialer. sales_live: a sales call by a person. automated_non_sales: an automated or AI-voice call that sells nothing (reminders, surveys). live_non_sales: a person calling about anything but a sale. | sales_automated |
| phone_number | No | The number to be called. Its area code and exchange give the state and time zones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/idempotent safety profile, and the description adds a great deal beyond that: the full set of rule sources, that it checks every possible time zone, state holiday bans and future effective dates, plus what the response contains (allowed/not, reason, window today, next allowed time, cited rules). It also discloses the 'informational, not legal advice' caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause and the return contract and disclaimer close the paragraph in a sensible order. The long parenthetical catalogue of state examples is dense and could be trimmed, but each element does illustrate real jurisdictional coverage rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly carries the burden of describing the return payload (decision, reason, window, next allowed time, cited rules with verbatim quotes and as-of dates). For a zero-required-parameter, compliance-decision tool spanning US and Canadian law, nothing an agent needs to invoke and interpret it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description's 'choose call_type' note largely paraphrases the enum descriptions already present in the schema, and the state/phone_number/at parameters are left to the schema, so little net meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+outcome ('Decide whether a call ... is allowed right now or at a given time') plus the precise legal corpus it applies (FCC TCPA, FTC TSR, stricter state rules, CRTC/BC). An agent can distinguish it from check_phone_number or list_state_calling_rules, which describe or list rules rather than render a yes/no decision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the decision context and explicitly tells the agent how to choose the call_type parameter (sales_automated for AI voice/prerecorded/autodialed sales), which is the main branching decision. It stops short of naming sibling alternatives or exclusions, so an agent cannot tell from this text alone when to prefer list_state_calling_rules over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_phone_numberCheck a phone numberARead-onlyIdempotentInspect
Check a US, Canadian or other North American (+1) phone number before calling or texting it. Returns whether it can be a working number (N11 codes and unassigned area codes fail; 555-0100 to 0199, reserved for fiction, is flagged as fictional_range and still resolves), the E.164 form, where the area code rings (US state or territory, Canadian province, or another country on the +1 plan), whether the area code is in service, its overlays, every time zone the exchange covers with the current local time there, and a toll-fraud risk grade (block, high, medium, low) with reasons: Caribbean and Bermuda +1 codes that bill as international calls, 900 premium numbers, Pacific territory codes, non-geographic codes and the 976 exchange. Area code data from NANPA, time zones from libphonenumber; no network access. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number | Yes | The number in any common format: (406) 555-0123, +1 406 555 0123, 1-800-FLOWERS, or with an extension. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already signal a safe, read-only, idempotent, no-network operation), the description discloses failure semantics (N11 and unassigned area codes fail), the fictional_range edge case that still resolves, data provenance (NANPA, libphonenumber), and an explicit 'informational, not legal advice' disclaimer. This is substantive behavioral context not available from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and dense, but it is front-loaded with the core purpose and every clause carries content — return fields, risk grades, and edge cases — rather than filler. The enumeration is justified for a tool with no output schema, though it could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of describing return values, and it does so comprehensively: validity, E.164 form, area-code geography, service status, overlays, time zones with local time, and a graded toll-fraud risk with named reasons. Nothing an agent needs to interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema description coverage, the schema already documents the accepted input formats (including extensions and alphanumeric forms). The description adds only the +1 geographic scope, which is context rather than parameter syntax, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (a +1 phone number) and scopes it to US/Canadian/North American numbers before calling or texting. It enumerates exactly what the result covers, so an agent can distinguish it from siblings like can_i_call_now or list_state_calling_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before calling or texting it' clearly establishes the pre-contact validation context in which the tool should be used. It does not, however, name or explicitly exclude the sibling tools (can_i_call_now, list_state_calling_rules) that might be confused with it, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_state_calling_rulesList state calling rulesARead-onlyIdempotentInspect
Show every calling rule Call Desk holds for one US state, DC, territory or Canadian province: its time zones and area codes, federal and state calling-hours rules with windows, holidays and per-day call caps, recording consent, AI disclosure and automated message rules, each with citation, quote, source URL and as-of date, plus any rule we looked for and could not verify. With no state, returns a table of every jurisdiction with hours stricter than federal, the states with no stricter rule, and the all-party recording states. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | A US state, DC, territory or Canadian province, as a code (OK) or name (Oklahoma). Leave out for the overview. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond that: it discloses the returned provenance (citation, quote, source URL, as-of date), that unverifiable rules are surfaced, and adds a scope disclaimer ('Informational, not legal advice').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded, and the second sentence covers the no-argument mode. The middle clause is a long, comma-heavy enumeration of rule types, which is informative but slightly dense; still no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full burden of describing return values, and it does: rule categories, per-rule provenance fields, and the unverified-rules caveat, plus the distinct shape of the no-argument overview. An agent knows what it will get in either mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter's accepted forms (code 'OK' or name 'Oklahoma') are already documented in the schema. The description only restates the omit-for-overview behavior that the schema also notes, adding no new format or constraint detail. Baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Show/List) and resource (calling rules Call Desk holds), plus the exact scope: one US state, DC, territory or Canadian province. The enumerated rule categories (time zones/area codes, calling-hours, recording consent, AI disclosure, automated messages) make it easy to distinguish from siblings like recording_consent_rules or ai_voice_disclosure_rules, which cover only one slice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly defines the two usage modes: pass a state for one jurisdiction, omit it for the all-jurisdiction overview table (hours stricter than federal, no-stricter-rule states, all-party recording states). That is concrete when-to-use guidance. It stops short of explicitly naming alternatives such as can_i_call_now for a real-time decision, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_consent_rulesRecording consent rulesARead-onlyIdempotentInspect
Look up whether a phone call may be recorded with one party's consent or needs every party's consent, for one or more US states, DC or Canadian provinces, by state or by the phone numbers on the call. Returns each jurisdiction's rule (one-party, all-party or mixed, such as Oregon, Connecticut, Nevada or Michigan, with the case law that decides it), the statute, a verbatim quote, the source URL and as-of date, the federal rule (18 U.S.C. 2511(2)(d)), and a bottom line for calls that cross state lines. With no input, returns the lists of all-party, mixed and one-party states. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| states | No | States or provinces of the people on the call, as codes or names. | |
| phone_numbers | No | Phone numbers of the people on the call; each maps to its area code's state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so safety is covered. The description adds meaningful context beyond that: it enumerates what is returned, discloses the no-input fallback behavior, and adds the 'Informational, not legal advice' caveat. It does not state any rate limits or authority constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core question the tool answers, then the input modes, then the return contents. The sentence listing return fields is long and dense but each element (statute, quote, source, as-of date, federal rule, bottom line) is substantive rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so thoroughly, enumerating jurisdictions, statute, quote, URL, as-of date, federal rule and a cross-border bottom line. Optional-parameter behavior (empty input) is also covered, leaving no obvious gap for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, setting a baseline of 3. The description adds the either/or query mode framing ('by state or by the phone numbers on the call') and clarifies that multiple jurisdictions can be supplied at once, which is modest but real added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('look up whether a phone call may be recorded with one party's consent or needs every party's consent') with the exact scope (US states, DC, Canadian provinces). It is clearly distinguishable from siblings like list_state_calling_rules and ai_voice_disclosure_rules, which cover different regulatory questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to use it — checking recording-consent law by state or by the call's phone numbers — and explicitly covers the no-input case ('With no input, returns the lists of all-party, mixed and one-party states'). It does not name a competing sibling tool or state exclusions, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
ai_voice_disclosure_rules - First observed
can_i_call_now - First observed
check_phone_number - First observed
list_state_calling_rules - First observed
recording_consent_rules
Publisher details
- Operator
- Modern Mustard Seed · Publisher source
- Operator website
- https://modernmustardseed.com · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://mcp.modernmustardseed.com/docs/call-desk · Publisher source
- Trust center
- Not available
- Restrictions
- Not applicable
Related MCP Connectors
AI phone calls, SMS and CRM records in one Lead Friendly account, compliance-checked on every send
U.S. outbound calls from a verified caller ID for AI agents via CLI/MCP.
Canadian SMS and email API for AI agents: send SMS and email, verify phones, handle CASL consent.
Give AI agents a phone layer for consent-based calls, transcripts, summaries, and outcomes.
Related MCP Servers
- AlicenseAqualityDmaintenanceEMEA sales + employment compliance for AI agents across 7 countries (UK, Germany, France, Spain, Italy, Netherlands, Sweden). GDPR, IR35, CNIL, B2B opt-out rules, cultural buyer psychology. Built by an ex-Deel ($12B) compliance + sales operator.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to ask, before sending each message, whether disclosure laws require them to admit they are an AI, returning the rules in force with citations and suggested wording. It also grades recorded conversations against 47 US, EU, UK, Canadian, and Australian disclosure rules.24 npmMIT
- AlicenseAqualityDmaintenanceProvides North American (NANP) area code and phone number intelligence for AI agents, including area code lookup, phone validation, carrier info, city/state coverage, local time, and scam context.8125 npmMIT
- AlicenseBqualityBmaintenanceEnables AI assistants to place and steer real phone calls through ElevenLabs voice agents: draft a briefing with the number, language, goal and permitted facts, rehearse it in text, confirm to dial, then follow progress, answer the agent's questions mid-call, and retrieve the transcript, duration and cost. Includes guardrails such as a fixed AI disclosure line, per-person call and minute limits, number restrictions and retention-based deletion of calls and transcripts.102MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.