Compliance Check
Server Details
Preview a TCPA/GDPR/CASL/10DLC gate result before spending a paid send. No key needed.
- Status
- Healthy
- Uptime
- 99.6% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- basilalshukaili/agentbroker
- GitHub Stars
- 0
- Server Listing
- Agent Broker
TDQS
Scored across 8 tools
Each tool targets a distinct compliance domain (messaging, sanctions, trade restrictions, company records) or operational concern (async status, cost preview, health). The only mild ambiguity is between get_outcome and get_status, but descriptions clearly separate final receipts from in-flight state.
Most tools follow a clear verb_noun snake_case pattern: check_compliance, get_outcome, get_status, preview_cost, screen_sanctions, verify_company_record. self_test deviates slightly as a noun-style name, and map_trade_restriction uses 'map' rather than a more common verb, but overall the convention is readable and predictable.
Eight tools is a well-scoped count for a compliance-focused server. Each tool covers a distinct capability without redundancy, and the set feels neither bloated nor thin.
The server covers the full compliance check lifecycle: pre-flight messaging checks, sanctions screening, trade restriction mapping, company verification, cost estimation, async status/outcome retrieval, and self-test health. No obvious dead ends or missing core operations for its stated purpose.
Available Tools
8 toolscheck_complianceARead-onlyIdempotentInspect
Free, instant pre-flight for the compliance gate: runs the SAME TCPA/GDPR/CASL/CAN-SPAM/10DLC checks as send_message and call_business, in preview mode -- nothing is sent, nothing changes. Tells you whether a send would be permitted before you pay, and if not, names the exact rule and how to fix it. De-risks a paid send the way check_booking_link de-risks a paid booking. [free, no key]
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | Delivery channel. Omit to auto-infer sms/email from recipient_id; set 'voice'… | |
| content | Yes | The actual message body you intend to send. The gate classifies the real text,… | |
| state_code | No | US state code (e.g. 'CA') for state-specific rules. | |
| country_code | No | ISO 3166-1 alpha-2 (e.g. 'US', 'DE', 'CA'). Auto-inferred from phone if… | |
| message_type | No | Intent tag: transactional, marketing, reminder, follow_up, notification.… | transactional |
| recipient_id | Yes | Phone in E.164 (e.g. '+14045550100') or email address the message would go to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds key behavioral facts: nothing is sent, nothing changes, and output includes whether a send is permitted plus the exact rule and fix. 'Free, no key' and 'before you pay' are extra operational context not present in annotations.
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?
Three sentences with front-loaded value—'Free, instant pre-flight'—and every sentence earns its place: what checks run, what it returns, and the analogy to check_booking_link. No 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?
For a 6-parameter tool with no output schema, the description covers what the tool does, what it returns, side effects, cost model, and the exact regulatory scope. The input schema covers parameters, so nothing needed to invoke it correctly 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 schema already documents all six parameters. The description does not add meaning beyond the schema—it only says the tool checks content/recipient, which the schema already states.
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?
The description names a specific verb/resource ('pre-flight for the compliance gate') and distinguishes the tool by stating it runs the same TCPA/GDPR/CASL/CAN-SPAM/10DLC checks as send_message and call_business in preview mode. This makes the tool's role clear and distinguishes it from sibling tools.
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?
It says to use it before paying for a send, in preview mode, and compares it to check_booking_link for de-risking a booking. It does not spell out exclusions or explicit 'when not to use', but the preview-mode language effectively rules out using it when an actual send is intended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outcomeARead-onlyIdempotentInspect
Retrieve the final OutcomeReceipt for a completed operation. [free, no key]
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds useful context beyond annotations: the operation must be completed, and the call is free with no key required.
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?
One tight sentence plus a bracket note. Every element earns its place, and the core purpose is front-loaded before the access note.
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?
For a single-parameter retrieval tool with strong annotations, the description is mostly complete: it identifies what to pass, when it is valid, and the access requirements. It does not describe the return shape, but no output schema exists and the resource name 'OutcomeReceipt' is reasonably self-descriptive.
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 0% and the schema only says operation_id is a required string. The description adds context by tying operation_id to the completed operation whose OutcomeReceipt is requested, but it does not specify where the ID comes from or its format.
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 ('Retrieve') and a specific resource ('final OutcomeReceipt') for a 'completed operation'. This clearly distinguishes it from siblings like get_status, which would naturally map to intermediate status rather than the final receipt.
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 gives clear context: this is for retrieving the outcome only after an operation has completed. It does not explicitly name alternatives or exclusions, but the completed-operation condition is a meaningful usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusARead-onlyIdempotentInspect
Query the current state of any in-flight async operation by operation_id. [free, no key]
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description only needs to add context. It adds that the operation is free, requires no API key, and applies to in-flight async operations, which provides useful behavioral context beyond the annotations.
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 compact and front-loaded. The primary purpose is stated in one clear sentence, and the cost/auth note is appended succinctly. Every element earns its place.
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?
For a simple, one-parameter, read-only status tool, the description provides enough to call it correctly: the target resource, the identifier, and the cost/auth constraints. It does not detail the output shape or possible statuses, and it does not explain what happens if the operation is not in-flight, but these are not critical for a basic status query given the annotations.
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?
The input schema only specifies 'operation_id' as a string with no description, so the description carries the semantic burden. It clarifies that operation_id references an in-flight async operation and that the tool queries its state, which gives the parameter meaningful context. It could be stronger by explaining how to obtain the operation_id, but it is adequate.
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?
The description clearly specifies a verb ('Query'), a resource ('the current state of any in-flight async operation'), and the key identifier ('operation_id'). It also implicitly differentiates from the sibling 'get_outcome' by focusing on in-flight operations rather than completed outcomes.
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 gives clear context: use this when you need the current state of an in-flight operation identified by operation_id. It also notes the operation is free and requires no key. It does not explicitly mention exclusions or alternatives, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_trade_restrictionARead-onlyIdempotentInspect
Free cross-border screening of destination and parties: DOES NOT CLASSIFY THE PRODUCT: echoed back, never checked against export-control lists, so a controlled item to an unrestricted destination returns 'partial', never 'clear'. Not an export-control clearance -- classify HS/ECCN yourself. Never fabricates a tariff rate, a clear, or a restricted status. [free in quota, then $0.02/call]
| Name | Required | Description | Default |
|---|---|---|---|
| hs_code | No | Optional Harmonized System code (e.g. '8471.30' for laptops). If provided,… | |
| parties | No | Optional list of party names to screen (exporter, importer, freight forwarder,… | |
| product | Yes | Product name or description, e.g. 'laptop computers', 'crude oil', 'medical… | |
| origin_country | No | Optional ISO 3166-1 alpha-2 code for the exporting country (e.g. 'US', 'DE').… | |
| destination_country | Yes | ISO 3166-1 alpha-2 code for the importing country (e.g. 'IR', 'CA', 'DE').… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals non-obvious behavior not captured by annotations: the product value is echoed back and never checked against export-control lists, and a controlled item to an unrestricted destination returns 'partial', never 'clear'. It also commits to never fabricating a tariff rate, clear status, or restricted status, which is valuable behavior disclosure.
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 front-loaded with the core purpose and packs critical caveats into a compact paragraph. The all-caps emphasis and pricing note add noise but each clause contributes to accurate use.
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?
In the absence of an output schema, the description still hints at possible return statuses ('partial', 'clear') and explicitly disclaims fabrication of statuses/rates. It does not give a full output shape or error semantics, but it is sufficient for an agent to set expectations and invoke the tool.
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 meaningful semantics by stating that the product parameter is only echoed and not classified or screened. This clarifies the role of the product argument beyond the schema's generic 'Product name or description'.
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?
The description clearly frames the tool as a cross-border screening service for destination country and parties, and explicitly states it does not classify the product or provide export-control clearance. This distinguishes it from export-control tools, though the phrasing 'cross-border screening' remains somewhat generic.
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?
It explains when not to rely on the tool ('Not an export-control clearance -- classify HS/ECCN yourself') and what it will never do, which guides selection. It does not name an alternative sibling tool such as screen_sanctions or check_compliance, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_costARead-onlyIdempotentInspect
Return an expected cost estimate, latency estimate, and success-probability estimate for a proposed call before execution. Returns the exact price when it is fixed, and a min/max range when the cost depends on channel or outcome. It does not promise an accuracy percentage - check cost_range. [free, no key]
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | The same request body you would pass to the operation | |
| operation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond that: it returns exact prices when fixed, min/max ranges when variable, does not promise accuracy, and requires no API key ('[free, no key]'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with no filler. The first sentence front-loads the core purpose, the second explains the exact-vs-range behavior, and the third adds a crucial caveat plus auth note. Every sentence earns its place.
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?
The description covers what the tool returns, how pricing varies, and the free/no-key requirement. With no output schema, the return-value description is useful and mostly sufficient. Minor gaps remain around expected operation naming and the exact output shape, but the tool is simple enough that this is not a major deficiency.
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?
The schema documents params as 'the same request body you would pass to the operation,' and the description reinforces the 'proposed call' idea. However, the operation parameter is only a bare string with no allowed values or format, and the description does not elaborate on how operations are specified. Schema coverage is exactly 50%, so the description only partially compensates.
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?
The description names a specific verb ('Return') and a precise resource: cost, latency, and success-probability estimates for a proposed call before execution. This clearly distinguishes it from siblings like get_outcome, get_status, or verify_company_record, which address different concerns.
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 signals this tool is for pre-execution estimation ('before execution') and cautions that accuracy is not promised, directing the user to cost_range. It does not explicitly name alternatives or state when not to use it, but the context is clear enough given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_sanctionsARead-onlyIdempotentInspect
Free screening of a name/entity against sanctions lists: OFAC SDN (US Treasury), EU consolidated list (European Commission), UK Sanctions List (FCDO). THE UN CONSOLIDATED LIST IS NOT SCREENED -- no licence permits redistribution. Never fabricates a match or clear: check lists_screened; reason_code 'partial_screening' (never 'clear') if any source failed. [free in quota, then $0.02/call]
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name of the person or entity to screen, e.g. 'Kim Jong-un' or 'ACME… | |
| type | No | Optional entity type hint. 'person' for individuals, 'entity' for… | |
| country | No | Optional ISO 3166-1 alpha-2 country code or country name (e.g. 'IR', 'Iran').… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it explicitly states the tool never fabricates a match or clear, instructs the agent to check lists_screened, and explains the reason_code 'partial_screening' behavior when a source fails. This is exactly the kind of non-obvious runtime behavior an agent needs to interpret results correctly.
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 compact and front-loaded with the core purpose, then adds critical exclusions and behavioral rules. The pricing note is slightly tangential but useful for an agent deciding whether to call. Every sentence earns its place; a small deduction for the pricing aside being somewhat out of place in a tool description.
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?
For a read-only screening tool with no output schema, the description covers the essential behavioral contract: which lists are screened, which are not, how to interpret partial failures, and the no-fabrication rule. It doesn't describe the exact return shape, but the description's guidance on lists_screened and reason_code partially compensates. Given the tool's complexity and the absence of an output schema, this is strong but not perfect.
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 schema already documents all three parameters. The description adds context about the screening scope and result interpretation, but it doesn't add parameter-specific meaning beyond the schema. Baseline 3 is appropriate when the schema carries the parameter documentation burden.
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?
The description states a specific verb ('screening') and resource ('name/entity against sanctions lists'), and enumerates the exact lists covered (OFAC SDN, EU consolidated, UK FCDO). It also explicitly excludes the UN Consolidated List, which distinguishes it from any generic sanctions-screening sibling and prevents an agent from assuming broader coverage.
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 gives explicit when-to-use context: free screening of a name/entity against sanctions lists, with a clear exclusion (UN list not screened) and a behavioral rule (never fabricate a match or clear; check lists_screened; reason_code 'partial_screening' if any source failed). It also notes quota/pricing, which helps an agent decide when to call it. While it doesn't name a specific alternative sibling, the exclusions and conditions are strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
self_testARead-onlyIdempotentInspect
Service health probe: runs 6 internal checks and reports how many passed. Confirms the server is up and responding - it does NOT probe each tool individually. Use to verify connectivity before production use. [free, no key]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value by disclosing the internal check count (6), the aggregate pass/fail nature, and the free/no-key requirement, which are not in the annotations.
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 compact and front-loaded: it states the core function first, then the limitation, then the use case, then the free/no-key note. Every sentence earns its place with no redundancy.
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?
For a zero-parameter, read-only health probe with no output schema, the description covers the essential information: what it checks, what it reports, what it does not do, and when to use it. The only minor gap is not describing the exact output format, but that is not critical for a simple health probe.
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?
The tool has zero parameters, so the schema is trivially complete. The description adds no parameter details because none are needed; the baseline of 4 for zero-parameter tools applies.
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?
The description clearly states the tool's function: it runs 6 internal checks and reports how many passed, confirming the server is up. It explicitly distinguishes itself from per-tool probing, which differentiates it from sibling tools like get_status or verify_company_record.
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 says to use it to verify connectivity before production use, which gives a clear context. It does not explicitly name alternative tools or state when not to use it, but the 'does NOT probe each tool individually' exclusion provides useful guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_company_recordARead-onlyIdempotentInspect
Free, live lookup of a company official registry record. Queries the GLEIF global LEI registry (primary, 2.6 million legal entities worldwide) and SEC EDGAR (US public companies) to return the official legal name, LEI, entity status, jurisdiction, registered address, and registry authority. Never fabricates: if the company is not found in these free registries, returns an honest not_found with the sources that were queried. [free in quota, then $0.02/call]
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Optional 20-character Legal Entity Identifier for a direct, precise lookup. | |
| name | Yes | Legal company name to look up, e.g. Apple Inc or Volkswagen AG. | |
| country | No | Optional ISO 3166-1 alpha-2 country filter (e.g. US, DE, GB). Narrows GLEIF… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds substantial behavioral detail beyond that: it names the two registries queried, highlights that it returns an honest not_found with sources when absent, and mentions the free quota and pricing. This goes well beyond the annotation hints and gives the agent a clear model of how the tool behaves under all outcomes.
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 but every sentence earns its place: purpose, registry sources, full return field list, non-fabrication guarantee, and cost model. It is front-loaded with the core action and immediately informs the agent of the most critical behavioral trait (honesty). No filler or redundancy.
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?
Given that there is no output schema, the description compensates by listing every return field. It also covers failure behavior (not_found), sources queried, and cost. For a read-only lookup with simple parameters and clear behavior, nothing critical is missing – an agent has everything needed to correctly invoke and interpret the tool.
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 schema already documents all three parameters. The description does not add any parameter-specific semantics beyond what the schema provides; it only implicitly references name and LEI in the context of the registry output. With full coverage, a baseline score 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?
The description states a specific verb ('lookup'), a precise resource (official company registry records via GLEIF and SEC EDGAR), and enumerates the returned fields (legal name, LEI, status, jurisdiction, etc.). It also explicitly declares what it will never do ('never fabricates'), which distinguishes it from other tools by setting clear expectations.
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?
It does not explicitly name alternative tools or conditions for choosing this one, but the sibling list contains no similar lookup tools, so the absence of explicit exclusion is acceptable. The description does provide strong contextual cues about when it is appropriate: it is a free/live lookup with honest not_found behavior, which helps the agent decide to use it for authoritative registry queries. However, it stops short of stating 'use X instead' or 'do not use when Y'.
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.
4 tool updates
- Changed
check_compliance4 fields changed- changed
Input schema / properties / channel / descriptionPrevious value: -"Delivery channel. Omit to auto-infer sms/email from recipient_id; set 'voice' explicitly."New value: +"Delivery channel. Omit to auto-infer sms/email from recipient_id; set 'voice'…" - changed
Input schema / properties / content / descriptionPrevious value: -"The actual message body you intend to send. The gate classifies the real text, so a meaningful preview needs the real content."New value: +"The actual message body you intend to send. The gate classifies the real text,…" - changed
Input schema / properties / country_code / descriptionPrevious value: -"ISO 3166-1 alpha-2 (e.g. 'US', 'DE', 'CA'). Auto-inferred from phone if omitted; drives which jurisdiction rules apply."New value: +"ISO 3166-1 alpha-2 (e.g. 'US', 'DE', 'CA'). Auto-inferred from phone if…" - changed
Input schema / properties / message_type / descriptionPrevious value: -"Intent tag: transactional, marketing, reminder, follow_up, notification. 'marketing' triggers the consent checks. Defaults to transactional."New value: +"Intent tag: transactional, marketing, reminder, follow_up, notification.…"
- Changed
map_trade_restriction5 fields changed- changed
Input schema / properties / destination_country / descriptionPrevious value: -"ISO 3166-1 alpha-2 code for the importing country (e.g. 'IR', 'CA', 'DE'). Required. Checked against the OFAC comprehensive-embargo map and sectoral-sanctions advisory list."New value: +"ISO 3166-1 alpha-2 code for the importing country (e.g. 'IR', 'CA', 'DE').…" - changed
Input schema / properties / hs_code / descriptionPrevious value: -"Optional Harmonized System code (e.g. '8471.30' for laptops). If provided, echoed back and included in tariff guidance. Not derived -- caller must supply the official HS code."New value: +"Optional Harmonized System code (e.g. '8471.30' for laptops). If provided,…" - changed
Input schema / properties / origin_country / descriptionPrevious value: -"Optional ISO 3166-1 alpha-2 code for the exporting country (e.g. 'US', 'DE'). Used in the tariff guidance note."New value: +"Optional ISO 3166-1 alpha-2 code for the exporting country (e.g. 'US', 'DE').…" - changed
Input schema / properties / parties / descriptionPrevious value: -"Optional list of party names to screen (exporter, importer, freight forwarder, end-user, etc.). Each name is screened against OFAC SDN (US Treasury), the EU Consolidated list (European Commission) and the UK Sanctions List (FCDO). At most 20 parties per call - a longer list is refused outright (bad_input) rather than partially screened; split it across calls."New value: +"Optional list of party names to screen (exporter, importer, freight forwarder,…" - changed
Input schema / properties / product / descriptionPrevious value: -"Product name or description, e.g. 'laptop computers', 'crude oil', 'medical devices'. Used in the tariff guidance note."New value: +"Product name or description, e.g. 'laptop computers', 'crude oil', 'medical…"
- Changed
screen_sanctions3 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"Optional ISO 3166-1 alpha-2 country code or country name (e.g. 'IR', 'Iran'). It ANNOTATES AND RANKS results; it never removes any. Each EU/UK match carries country_match: true, false, or null when the listing records no country. Nothing is dropped on a mismatch, because the country we hold is the address/nationality on the listing rather than everywhere a party operates - excluding on it would return a clean screen for someone who IS listed."New value: +"Optional ISO 3166-1 alpha-2 country code or country name (e.g. 'IR', 'Iran').…" - changed
Input schema / properties / name / descriptionPrevious value: -"Full name of the person or entity to screen, e.g. 'Kim Jong-un' or 'ACME Trading LLC'. Use the most complete name available for best accuracy."New value: +"Full name of the person or entity to screen, e.g. 'Kim Jong-un' or 'ACME…" - changed
Input schema / properties / type / descriptionPrevious value: -"Optional entity type hint. 'person' for individuals, 'entity' for organizations/companies. Omit to screen both."New value: +"Optional entity type hint. 'person' for individuals, 'entity' for…"
- Changed
verify_company_record1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"Optional ISO 3166-1 alpha-2 country filter (e.g. US, DE, GB). Narrows GLEIF results to one jurisdiction."New value: +"Optional ISO 3166-1 alpha-2 country filter (e.g. US, DE, GB). Narrows GLEIF…"
1 tool update
- Changed
map_trade_restriction2 fields changed- changed
Input schema / properties / parties / descriptionPrevious value: -"Optional list of party names to screen (exporter, importer, freight forwarder, end-user, etc.). Each name is screened against OFAC SDN (US Treasury), the EU Consolidated list (European Commission) and the UK Sanctions List (FCDO)."New value: +"Optional list of party names to screen (exporter, importer, freight forwarder, end-user, etc.). Each name is screened against OFAC SDN (US Treasury), the EU Consolidated list (European Commission) and the UK Sanctions List (FCDO). At most 20 parties per call - a longer list is refused outright (bad_input) rather than partially screened; split it across calls." - added
Input schema / properties / parties / maxItemsAdded value: +20
8 tool updates
- First observed
check_compliance - First observed
get_outcome - First observed
get_status - First observed
map_trade_restriction - First observed
preview_cost - First observed
screen_sanctions - First observed
self_test - First observed
verify_company_record
Related MCP Connectors
Is this number safe to call or text right now? Live carrier, CNAM, spam and SMS checks for agents.
Read-only phone intelligence for AI voice agents — line type, risk, DNC, signed receipts.
Verify phone numbers, emails and IPs, and check remaining plan credits.
Check whether an email address can receive mail — one address or a list — without sending to it.
Related MCP Servers
- AlicenseAqualityCmaintenanceA deterministic preflight checker for outbound SMS/iMessage that catches silent filtering, segment blowups, and dropped iMessage features before sending.126 npm1MIT
- AlicenseNot gradedqualityCmaintenanceValidates SMS-capable phone numbers via x402 pay-per-call, detecting mobile vs landline, carrier type, and E.164 format.MIT
- AlicenseAqualityDmaintenanceValidates whether phone numbers are registered on WhatsApp, supporting single and bulk (up to 10) number checks.2MIT
- AlicenseNot gradedqualityCmaintenanceEnriches a contact from phone and email, returning associated registration data. Read-only MCP server with prepaid credits and no credentials.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.