Use Inkbox tools within the connected identity's permissions.
# Inkbox onboarding
Call `inkbox_identity_get` and follow its `onboarding` guidance. Prefer an event-driven task/routine; otherwise use an hourly schedule, then on-demand tools if neither is supported. Use its `event_types` and reusable `task_prompt` to handle incoming communication and reply when appropriate.
Ask once before enabling background replies unless already approved. Reuse existing automation instead of creating overlapping tasks. Confirm the host's task or schedule is active before claiming monitoring works.
If the host supports MCP Events, use identity-bound OAuth and the connected `identity_id`. Grok's optional `webhook_setup` supplies wiring for a webhook routine. Existing webhooks do not establish whether a client task exists.
## Channel readiness
- Check `inkbox_channel_status_get` before reporting a channel unavailable or retrying a failed send.
- Email needs an active mailbox. SMS and voice need an assigned active phone number. Use `inkbox_sms_onboarding_get` for START opt-in and `inkbox_sms_consent_get` before a first send.
- Shared iMessage is recipient-first: use `inkbox_imessage_onboarding_get` and check existing connection readiness.
- Review completed or missed calls for follow-up. Incoming-call notifications cannot answer live calls.
Use UI-backed tools only when their descriptors advertise UI; otherwise present structured results. For hourly checks, compare activity timestamps with the last run rather than relying only on unread status.
On `input_required`, resubmit the tool and arguments with its `requestState` and a new JSON-RPC ID. Reuse that state for retries of the same write; inspect uncertain results before starting another operation.
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
Return safe email, phone, SMS, iMessage, sending-domain, and calling readiness, including iMessage recipients who connected but have not sent their first message yet.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Browse or keyword-search emails visible to the selected Inkbox identity. Returns individual message metadata and snippets, not full bodies or grouped conversations. Browsing is newest-first; search is relevance-ranked and bounded.
The description explains the capability, when to use it, and what to expect.
Inputs79/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Opaque cursor returned by the preceding page.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum results to return in this page or search.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
unread_only
Only unread inbound emails; ignored when q is supplied.
Clear enough to supply this argument.
q
Plain keywords, with word normalization and common words ignored. No quoted-phrase, Boolean, or field-filter syntax. Selects a relevance-ranked search that ignores unread_only, direction, folder, and cursor and has no pagination. Omit for newest-first browsing.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
direction
Filter received or sent emails; ignored when q is supplied.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folder
Filter by the email thread's folder; ignored when q is supplied.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Browse conversation summaries across the selected identity's email, SMS, iMessage, and retained Slack history. Email conversations are mail threads. A merged read is a bounded recent-activity overview, not a complete inbox: it cannot be paged, and has_more only indicates additional activity.
The description explains the capability, when to use it, and what to expect.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
channel
Restrict to one channel. Omit to merge a bounded page from every channel, newest activity first.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
connection_id
Restrict Slack activity to one workspace connection; omit for all connected workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folder
Email thread folder filter; does not filter other channels.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
include_groups
Include iMessage group conversations as well as 1:1 conversations.
Clear enough to supply this argument.
include_assignments
Carry the iMessage assignment's identity and timestamps on each row. Costs an extra read.
Clear enough to supply this argument.
limit
Maximum conversations returned. Merged reads consider at most 25 per channel before applying this limit.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Rows to skip for SMS or iMessage. Email and Slack use cursor; merged reads cannot be paged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
next_cursor from a previous email or Slack page. Requires that channel; a merged read cannot be paged.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Read a page of messages in one email, SMS, iMessage, or Slack conversation visible to the selected identity. Email returns thread metadata and oldest-first message summaries; messages_has_more indicates later messages this read cannot page to. SMS and ordinary iMessage timelines are newest-first. Slack defaults to retained history and can read live history, metadata, and pins without changing membership.
The description explains the capability, when to use it, and what to expect.
Inputs71/100
14 of 18 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
channel
Which channel this conversation belongs to.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
conversation_id
Conversation ID from a conversation list: UUID for email/SMS/iMessage, native C/D/G ID for Slack.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
connection_id
Workspace connection ID from a Slack workspace or conversation list; required for Slack and omitted for other channels.
Clear enough to supply this argument.
source
Slack only: archive reads retained messages; live reads current history. Cursors belong to the selected source.
Clear enough to supply this argument.
thread_ts
Slack thread root timestamp from a message read; omit for the conversation timeline. Requires include_messages. Archive threads are oldest-first; live threads preserve Slack's paging order, so newer reply pages may precede older ones.
Clear enough to supply this argument.
include_messages
Slack only: include history with current metadata. False returns metadata and optional pins; thread_ts and cursor require true.
Clear enough to supply this argument.
include_pins
Slack only: include current pinned items with the conversation.
Clear enough to supply this argument.
limit
Maximum messages returned. Increasing limit expands email's oldest-first slice, without pagination. For live Slack threads, limit counts replies; the first page may also include the root.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Messages to skip in SMS or an ordinary iMessage conversation. Ignored for email; must be zero for Slack or iMessage reply threads.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
reply_thread_id
iMessage thread_id from a message in a conversation read. Returns oldest-first replies with next_cursor; mutually exclusive with reply_thread_message_id and requires offset=0.
Clear enough to supply this argument.
reply_thread_message_id
Any iMessage message ID from a conversation read to anchor its oldest-first reply thread. Mutually exclusive with reply_thread_id and requires offset=0.
Clear enough to supply this argument.
cursor
next_cursor from the same Slack history source/thread, or an iMessage reply-thread page. Offset must be zero.
Clear enough to supply this argument.
oneOf › 0 › channel
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 0 › conversation_id
Conversation UUID from a conversation list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
oneOf › 0 › limit
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 0 › cursor
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 1 › channel
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 1 › conversation_id
Conversation ID from a Slack conversation or message result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Find saved contacts by name or an email/phone criterion. Returns contact profiles, not correspondence or public agent-directory results. At most one email/phone lookup criterion is accepted; it replaces q, ordering, and pagination with a bounded lookup result.
The description explains the capability, when to use it, and what to expect.
Inputs72/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
q
Optional name or text search; ignored when an email or phone lookup criterion is supplied.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum contacts to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Zero-based result offset.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
order
Stable result ordering.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
email
Exact email address.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
email_contains
Email substring.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
email_domain
Exact email domain.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
phone
Exact phone number.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
phone_contains
Phone substring.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Review communication history with one saved contact across the selected identity's email, SMS, iMessage, calls, and retained Slack messages. Slack includes only messages authored by the contact, not the identity's replies. Returns a merged page of metadata or previews, with optional call transcript excerpts.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
contact_id
Contact id from a contact list or lookup.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
channels
Channels to include; omitted includes email, SMS, iMessage, calls, and retained Slack messages authored by the contact.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
after
Inclusive start timestamp in ISO 8601 format; earlier than before.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
before
Exclusive end timestamp in ISO 8601 format.
Explain what happens when this optional value is omitted.
limit_per_channel
Maximum items from each channel, not the total merged page size.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Opaque next_cursor from a previous page for this contact and the same filters/order.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Check recipient consent and outbound contact rules before texting someone; never changes consent. Works with no conversation yet, which is the case that matters for a first message. This is a recipient-side preflight, not full send readiness: a send can still be rejected for sender registration, self-send, rate limits, message content, or media. blocked_reason names the consent or rule code a send would return, or null when neither blocks it. With a conversation_id, rules come from that conversation's own sending number; otherwise they come from the connected identity's active number.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
recipient
Recipient phone number with country code, even when no conversation exists yet.
Clear enough to supply this argument.
conversation_id
Existing conversation with this recipient, by id from a conversation list. Omit it when no conversation exists yet.
Describe the returned fields so an agent can interpret the result.
View output schema
{
"type": "object",
"required": [
"conversation_id",
"recipient",
"status",
"ready_to_send",
"updated_at"
],
"properties": {
"status": {
"type": [
"string",
"null"
]
},
"recipient": {
"type": "string"
},
"updated_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"rule_allowed": {
"type": [
"boolean",
"null"
],
"description": "Null when no sending number was supplied, so no rules were evaluated."
},
"ready_to_send": {
"type": "boolean",
"description": "Whether consent and contact rules permit this recipient. Other send gates still apply."
},
"blocked_reason": {
"type": [
"string",
"null"
],
"description": "The consent or contact-rule code blocking this recipient, or null when neither does."
},
"conversation_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"matched_rule_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"consent_required": {
"type": "boolean"
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "inkbox_sms_consent_get",
"title": "Get SMS consent readiness",
"description": "Check recipient consent and outbound contact rules before texting someone; never changes consent. Works with no conversation yet, which is the case that matters for a first message. This is a recipient-side preflight, not full send readiness: a send can still be rejected for sender registration, self-send, rate limits, message content, or media. blocked_reason names the consent or rule code a send would return, or null when neither blocks it. With a conversation_id, rules come from that conversation's own sending number; otherwise they come from the connected identity's active number.",
"inputSchema": {
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Recipient phone number with country code, even when no conversation exists yet."
},
"conversation_id": {
"type": "string",
"format": "uuid",
"description": "Existing conversation with this recipient, by id from a conversation list. Omit it when no conversation exists yet."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"required": [
"conversation_id",
"recipient",
"status",
"ready_to_send",
"updated_at"
],
"properties": {
"status": {
"type": [
"string",
"null"
]
},
"recipient": {
"type": "string"
},
"updated_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"rule_allowed": {
"type": [
"boolean",
"null"
],
"description": "Null when no sending number was supplied, so no rules were evaluated."
},
"ready_to_send": {
"type": "boolean",
"description": "Whether consent and contact rules permit this recipient. Other send gates still apply."
},
"blocked_reason": {
"type": [
"string",
"null"
],
"description": "The consent or contact-rule code blocking this recipient, or null when neither does."
},
"conversation_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"matched_rule_id": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"consent_required": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get SMS consent readiness",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Discover visible channels and DMs, including public channels not joined. This is a directory, not an activity inbox. Reading requires membership where applicable. Name matching scans bounded pages; next_cursor indicates remaining results when search_complete is false.
The description explains the capability, when to use it, and what to expect.
Inputs65/100
4 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
connection_id
Workspace connection ID from a Slack workspace list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum entries per page; filtered directory scans may return fewer matches.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Not provided
Missing description. Explain what this value means and how to supply it.
q
Case-insensitive name/ID match. Scans up to five pages; next_cursor indicates remaining results when search_complete is false.
Clear enough to supply this argument.
joined_only
Only list current memberships; false also discovers public channels the agent has not joined.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description73/100
Browse or keyword-search retained messages across the selected identity's workspaces, with optional mention filtering, subject to current access.
The description explains the capability, when to use it, and what to expect.
Inputs53/100
5 of 9 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
q
Plain keywords in retained message text, not Slack search operators. Omit to browse messages with the other filters.
Clear enough to supply this argument.
mentions_only
Only retained messages with an explicit @mention of this identity; excludes plain DMs without an @mention and known system events. This is catch-up, not push notifications.
Clear enough to supply this argument.
connection_id
Connection ID from a Slack workspace list; omit to search all connected workspaces.
Clear enough to supply this argument.
conversation_id
Not provided
Missing description. Explain what this value means and how to supply it.
user_id
Not provided
Missing description. Explain what this value means and how to supply it.
after_ts
Not provided
Missing description. Explain what this value means and how to supply it.
before_ts
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Maximum matching messages per page.
Clear enough to supply this argument.
cursor
Opaque next_cursor from the previous retained-message page with the same filters.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description73/100
Read one message with optional reactions and context (preceding in channels, following in threads), or its exact send/change outcome.
Describe the returned information so the agent knows whether it will answer the request.
Inputs63/100
5 of 8 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
connection_id
Workspace connection ID from a Slack workspace list.
Clear enough to supply this argument.
conversation_id
Not provided
Missing description. Explain what this value means and how to supply it.
message_ts
Not provided
Missing description. Explain what this value means and how to supply it.
thread_ts
Not provided
Missing description. Explain what this value means and how to supply it.
reference
Reference returned by sending text or a file, editing/deleting a message, or changing a reaction. Resolves delayed file-share timestamps without resending. This lookup returns message metadata, not file contents.
Clear enough to supply this argument.
include_reactions
Include the message's current reactions.
Clear enough to supply this argument.
include_permalink
Include a link to the message in Slack when available.
Clear enough to supply this argument.
context_limit
Maximum context messages including the selected message: preceding in channels, following in threads.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Find people by name or available email with bounded directory scanning. Results identify workspace participants; next_cursor indicates remaining results when search_complete is false.
The description explains the capability, when to use it, and what to expect.
Inputs63/100
3 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
connection_id
Workspace connection ID from a Slack workspace list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum entries per page; filtered directory scans may return fewer matches.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Not provided
Missing description. Explain what this value means and how to supply it.
q
Case-insensitive name/ID match. Scans up to five pages; next_cursor indicates remaining results when search_complete is false.
Expand internal abbreviations and remove technical prefixes from the display title.
Description84/100
Send text, one file, or both to a conversation or person, optionally in a thread. Text with a file is its comment, not a second message. File sources: text (64 Ki characters), base64 (256 KiB), or public HTTPS URL (10 MiB). The returned reference identifies the exact send outcome for subsequent lookup. Missing share timestamps may resolve later. Unknown outcomes are not safely retryable.
Describe the returned information so the agent knows whether it will answer the request.
Inputs20/100
4 of 15 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
connection_id
Workspace connection ID from a Slack workspace list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
conversation_id
Conversation ID from a conversation or message result. Exactly one of conversation_id and user_id is required.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
user_id
User ID from a directory result for a direct message. Mutually exclusive with conversation_id and thread_ts.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
text
Message text, or the accompanying comment when file is supplied. At least one of text or file is required.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
file › anyOf › 0 › filename
Not provided
Missing description. Explain what this value means and how to supply it.
file › anyOf › 0 › source › oneOf › 0 › kind
Not provided
Missing description. Explain what this value means and how to supply it.
file › anyOf › 0 › source › oneOf › 0 › text
Not provided
Missing description. Explain what this value means and how to supply it.
file › anyOf › 0 › source › oneOf › 1 › kind
Not provided
Missing description. Explain what this value means and how to supply it.
file › anyOf › 0 › source › oneOf › 1 › data
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
Read file metadata or recover a file-upload reference, including a delayed share timestamp. include_content renders images natively and previews text; other files return an authenticated resource for the host reader. Resource reads are bounded to 512 KiB. A host without resource/document support cannot read those documents through this tool.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Resolve the mismatch between this description and its schema constraints.
connection_id
Workspace connection ID from a Slack workspace list.
Clear enough to supply this argument.
file_id
Native file ID from message or file metadata. Exactly one of file_id and reference is required.
Resolve the mismatch between this description and its schema constraints.
reference
Upload reference returned by sending a file. Resolves upload status and delayed share message_ts without sending again; not a normal message reference.
Clear enough to supply this argument.
include_content
Show supported images natively or a bounded text preview (up to 256 KiB). Other files use an authorized MCP resource (up to 512 KiB), requiring host resource/document support.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Get one call's status and result. Hosted calls include the task brief, the terminal outcome once the call has ended, and any post-call actions still open. Set include_transcript to also return a bounded page of transcript segments.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
call_id
Call to read, by id from a call list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
include_transcript
Include a page of transcript segments, selected by limit and offset.
Clear enough to supply this argument.
limit
Maximum calls or transcript segments per page; call detail uses this only with include_transcript=true.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Calls or transcript segments to skip; call detail uses this only with include_transcript=true.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Create one organization-wide contact or save a matching suggestion. Saving a suggestion replaces its name and supplied profile fields while keeping omitted non-name fields, existing identifiers, memories, and correspondence.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs3/100
1 of 28 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
contact › preferred_name
Not provided
Missing description. Explain what this value means and how to supply it.
contact › name_prefix
Not provided
Missing description. Explain what this value means and how to supply it.
contact › given_name
Not provided
Missing description. Explain what this value means and how to supply it.
contact › middle_name
Not provided
Missing description. Explain what this value means and how to supply it.
contact › family_name
Not provided
Missing description. Explain what this value means and how to supply it.
contact › name_suffix
Not provided
Missing description. Explain what this value means and how to supply it.
contact › company_name
Not provided
Missing description. Explain what this value means and how to supply it.
contact › job_title
Not provided
Missing description. Explain what this value means and how to supply it.
contact › birthday
Not provided
Missing description. Explain what this value means and how to supply it.
contact › notes
Not provided
Missing description. Explain what this value means and how to supply it.
contact › emails › items › value
Not provided
Missing description. Explain what this value means and how to supply it.
contact › emails › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › emails › items › is_primary
Not provided
Missing description. Explain what this value means and how to supply it.
contact › phones › items › value_e164
Phone number in E.164 format (e.g. '+15551234567').
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
contact › phones › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › phones › items › is_primary
Not provided
Missing description. Explain what this value means and how to supply it.
contact › websites › items › url
Not provided
Missing description. Explain what this value means and how to supply it.
contact › websites › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › dates › items › date
Not provided
Missing description. Explain what this value means and how to supply it.
contact › dates › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › street
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › city
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › region
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › postal
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › country
Not provided
Missing description. Explain what this value means and how to supply it.
contact › addresses › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › custom_fields › items › label
Not provided
Missing description. Explain what this value means and how to supply it.
contact › custom_fields › items › value
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Copy and validate one bounded attachment into immutable staging for a later send.
Describe the returned information so the agent knows whether it will answer the request.
Inputs56/100
5 of 8 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
filename
Attachment filename shown to recipients, including its extension.
Clear enough to supply this argument.
source › oneOf › 0 › kind
Not provided
Missing description. Explain what this value means and how to supply it.
source › oneOf › 0 › data
File bytes encoded as standard base64. The whole MCP request must stay under 1 MiB; use a url source for larger files (at most 25 MiB). CR/LF line wrapping and trailing CR/LF are accepted, but spaces, tabs, data URI prefixes, and URL-safe base64 are not. Required '=' padding must be present. Example encoding: base64.b64encode(file_bytes).decode('ascii').
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
source › oneOf › 0 › content_type
Media type of the decoded file bytes.
Clear enough to supply this argument.
source › oneOf › 1 › kind
Not provided
Missing description. Explain what this value means and how to supply it.
source › oneOf › 1 › url
Public HTTPS URL returning at most 25 MiB.
Clear enough to supply this argument.
source › oneOf › 2 › kind
Not provided
Missing description. Explain what this value means and how to supply it.
source › oneOf › 2 › handle
Opaque handle returned by an App attachment upload.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Validate and stage bounded immutable media without sending it. Accepts inline base64 or an HTTPS URL fetched server-side, as JPEG, PNG, GIF, WebP, MP3, WAV, MP4, PDF, or plain text. The purpose decides the size cap: 600,000 bytes for sms, 10 MiB for imessage. SMS/MMS API reference: https://inkbox.ai/docs/api/phone/texts iMessage API reference: https://inkbox.ai/docs/api/imessage
Describe the returned information so the agent knows whether it will answer the request.
Inputs45/100
5 of 10 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
source_type
Whether the media is supplied inline as base64 or fetched from a URL.
Clear enough to supply this argument.
data
Standard base64 of the media bytes. Required when source_type is base64. CR/LF line wrapping is accepted; spaces, data URI prefixes, and URL-safe base64 are not, and '=' padding must be present. Decodes to at most 600,000 bytes for sms and 10 MiB for imessage, and the whole MCP request must stay under 1 MiB; use source_type url for larger files.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
content_type
MIME type of the inline media, for example image/png. Required when source_type is base64.
Clear enough to supply this argument.
url
HTTPS URL the server fetches the media from. Must be publicly reachable without credentials and return an accepted media type within the size limit. Required when source_type is url.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
purpose
Channel this media is staged for. Decides the size cap.
Clear enough to supply this argument.
oneOf › 0 › source_type
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 0 › data
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 0 › content_type
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 1 › source_type
Not provided
Missing description. Explain what this value means and how to supply it.
oneOf › 1 › url
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Replace one block of call settings for the connected identity. section=incoming_call_action sets inbound behavior: auto_accept (requires client_websocket_url), auto_reject, webhook (requires incoming_call_webhook_url), hosted_agent, or forward (requires one complete phone or SIP destination). section=hosted_agent replaces the voice and instructions overrides; omitted nullable fields clear. A hosted agent answers automatically and does not connect the MCP model to the live call.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs54/100
9 of 14 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
section
Which block of call settings this call replaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
incoming_call_action
Inbound call behavior: auto_accept, auto_reject, webhook, hosted_agent, or forward.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
client_websocket_url
Required for auto_accept; ignored/cleared for auto_reject and hosted_agent.
Clear enough to supply this argument.
incoming_call_webhook_url
Required for webhook; ignored/cleared for auto_reject and hosted_agent.
Clear enough to supply this argument.
forwarding_target_type
Destination type for forward; null clears the saved target.
Clear enough to supply this argument.
forwarding_phone_number
Complete E.164 destination for phone forwarding.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
forwarding_sip_uri
Complete sip:user@host destination for SIP forwarding.
Clear enough to supply this argument.
voice
Voice ID available to your organization, or null to use the default.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
instructions
Hosted voice-agent instructions override. Omitted or null clears the override when replacing hosted_agent settings.
Clear enough to supply this argument.
allOf › 0 › if › section
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 1 › if › section
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 2 › if › incoming_call_action
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 3 › if › incoming_call_action
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 4 › if › incoming_call_action
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description66/100
Send a new email from the connected identity's mailbox to the given recipients, with immutable staged attachments.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs48/100
7 of 13 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
subject
Subject line for the new email.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
body_text
Plain-text body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
body_html
HTML body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
reply_to
Optional Reply-To address for recipients' responses; does not change the sender.
Clear enough to supply this argument.
track_opens
Embed an open-tracking pixel in the HTML body. Requires body_html; plain-text-only mail carries no pixel and is rejected. Opens surface as first_opened_at/open_count on the message. Tracking pixels can raise spam scores.
Clear enough to supply this argument.
attachments › items › media_handle
Staged attachment to bind, by handle from a media upload result.
Clear enough to supply this argument.
attachments › items › filename
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_hash
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_type
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_id
Mark this part as an inline image referenced from body_html as cid:<content_id> (e.g. <img src="cid:chart1">). Requires an image/* content_type. Omit for a normal attachment.
Clear enough to supply this argument.
recipients › to
Not provided
Missing description. Explain what this value means and how to supply it.
recipients › cc
Not provided
Missing description. Explain what this value means and how to supply it.
recipients › bcc
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description71/100
Reply to a visible email from the connected identity's mailbox. approved_recipients is the recipient set the caller has confirmed; reply_all answers every participant of the original instead of only its sender.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs60/100
9 of 15 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
subject
Subject override; omitted replies and forwards derive it from the original email.
Clear enough to supply this argument.
body_text
Plain-text body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Clear enough to supply this argument.
body_html
HTML body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Clear enough to supply this argument.
reply_to
Optional Reply-To address for recipients' responses; does not change the sender.
Clear enough to supply this argument.
track_opens
Embed an open-tracking pixel in the HTML body. Requires body_html; plain-text-only mail carries no pixel and is rejected. Opens surface as first_opened_at/open_count on the message. Tracking pixels can raise spam scores.
Clear enough to supply this argument.
attachments › items › media_handle
Staged attachment to bind, by handle from a media upload result.
Clear enough to supply this argument.
attachments › items › filename
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_hash
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_type
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_id
Mark this part as an inline image referenced from body_html as cid:<content_id> (e.g. <img src="cid:chart1">). Requires an image/* content_type. Omit for a normal attachment.
Clear enough to supply this argument.
message_id
Email being replied to, by id from an email list, a search, or a thread read.
Clear enough to supply this argument.
approved_recipients › to
Not provided
Missing description. Explain what this value means and how to supply it.
approved_recipients › cc
Not provided
Missing description. Explain what this value means and how to supply it.
approved_recipients › bcc
Not provided
Missing description. Explain what this value means and how to supply it.
reply_all
Answer every participant of the original instead of only its sender.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Forward a visible email from the connected identity's mailbox to the given recipients, quoted inline or wrapped as an attached message.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs61/100
10 of 16 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
subject
Subject override; omitted replies and forwards derive it from the original email.
Clear enough to supply this argument.
body_text
Plain-text body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Clear enough to supply this argument.
body_html
HTML body for a new email or the complete reply; replies do not quote the original automatically. On a forward, this is the accompanying note.
Clear enough to supply this argument.
reply_to
Optional Reply-To address for recipients' responses; does not change the sender.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
track_opens
Embed an open-tracking pixel in the forward's HTML body. The outgoing forward must have an HTML part: the caller note in wrapped mode, or the caller note or the original message's HTML in inline mode.
Clear enough to supply this argument.
attachments › items › media_handle
Staged attachment to bind, by handle from a media upload result.
Clear enough to supply this argument.
attachments › items › filename
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_hash
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_type
Not provided
Missing description. Explain what this value means and how to supply it.
attachments › items › content_id
Mark this part as an inline image referenced from body_html as cid:<content_id> (e.g. <img src="cid:chart1">). Requires an image/* content_type. Omit for a normal attachment.
Clear enough to supply this argument.
message_id
Email being forwarded, by id from an email list, a search, or a thread read.
Clear enough to supply this argument.
recipients › to
Not provided
Missing description. Explain what this value means and how to supply it.
recipients › cc
Not provided
Missing description. Explain what this value means and how to supply it.
recipients › bcc
Not provided
Missing description. Explain what this value means and how to supply it.
mode
inline quotes the original below the note; wrapped attaches it as a message. Forwarded attachments cannot specify content_id.
Clear enough to supply this argument.
include_original_attachments
Reattach the original attachments in inline mode. Ignored in wrapped mode, where they remain inside the attached original message.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Send an SMS or MMS from the selected identity's phone number, including group MMS and previously staged media. This sends the message rather than saving a draft.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs54/100
4 of 6 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
to
Recipient phone numbers with country codes. Multiple recipients send a group MMS.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
text
Plain message text. Nonblank text or at least one staged media item is required.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
media › items › handle
Opaque handle from a media staging result for this channel.
Clear enough to supply this argument.
media › items › content_hash
Matching content_hash from the same media staging result.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
not › text
Not provided
Missing description. Explain what this value means and how to supply it.
not › media
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Send a 1:1 or dedicated-line group iMessage as the selected identity, with optional staged media or a targeted reply. This sends the message rather than saving a draft. A targeted reply may fall back to an ordinary message according to plain_reply_fallback.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs54/100
8 of 12 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
recipient
One phone number for 1:1, or 2-8 recipients for a new group. Replies to an existing group include its complete expected current recipient list, which may exceed eight, and conversation_id. Numbers include country codes.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
conversation_id
Existing conversation with this recipient, by id from a conversation list. Omit it to let the recipient resolve the conversation.
Clear enough to supply this argument.
reply_to_message_id
Message ID from a conversation read to reply to within conversation_id.
Clear enough to supply this argument.
plain_reply_fallback
For a targeted reply, allow an ordinary message in the same conversation when the target's transport does not support native replies. False requires a native reply.
Clear enough to supply this argument.
text
Message text. Nonblank text or one staged media item is required.
Resolve the mismatch between this description and its schema constraints.
send_style
Optional iMessage visual effect; omitted sends without an effect.
Clear enough to supply this argument.
media › items › handle
Opaque handle from a media staging result for this channel.
Clear enough to supply this argument.
media › items › content_hash
Matching content_hash from the same media staging result.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
not › text
Not provided
Missing description. Explain what this value means and how to supply it.
not › media
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 0 › if › conversation_id
Not provided
Missing description. Explain what this value means and how to supply it.
allOf › 0 › else › recipient
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Queue one hosted outbound call as the connected identity and return immediately. This tool cannot answer incoming calls, and the MCP client will not resume automatically when the call ends. The outcome and any post-call actions are available from the call record after completion.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
origination
Line backing the call: dedicated_number | shared_imessage_number | dedicated_imessage_number. The dedicated iMessage line calls anyone (contact rules only) and surfaces its number as caller ID.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
to_number
Destination phone number to dial, in E.164 format.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
mode
Hosted voice agent places the call; the MCP client is not connected to live audio.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
on_voicemail
What to do when voicemail answers. Omit for leave_message: the agent waits for the beep, leaves a message, then ends the call. hang_up ends the call at the beep without a message. ignore turns detection off and treats whatever answers as a person.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
voicemail_message
What the agent should say on voicemail, up to 1000 characters. Only valid with on_voicemail=leave_message (or omitted); when absent the agent composes a short message from reason.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
voicemail_detection
Deprecated: use on_voicemail. enabled is on_voicemail=hang_up and disabled is on_voicemail=ignore.
Clear enough to supply this argument.
reason
Task brief for the hosted voice agent. This is spoken-call context, not merely an audit reason. Include what the agent should do or say.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "inkbox_call_place",
"title": "Place call",
"description": "Queue one hosted outbound call as the connected identity and return immediately. This tool cannot answer incoming calls, and the MCP client will not resume automatically when the call ends. The outcome and any post-call actions are available from the call record after completion.",
"inputSchema": {
"type": "object",
"title": "CallPlaceInput",
"required": [
"to_number",
"reason"
],
"properties": {
"mode": {
"const": "hosted_agent",
"default": "hosted_agent",
"description": "Hosted voice agent places the call; the MCP client is not connected to live audio."
},
"reason": {
"type": "string",
"title": "Reason",
"maxLength": 2000,
"minLength": 1,
"description": "Task brief for the hosted voice agent. This is spoken-call context, not merely an audit reason. Include what the agent should do or say."
},
"to_number": {
"type": "string",
"title": "To Number",
"examples": [
"+15551234567"
],
"description": "Destination phone number to dial, in E.164 format."
},
"origination": {
"enum": [
"dedicated_number",
"shared_imessage_number",
"dedicated_imessage_number"
],
"type": "string",
"title": "CallOrigin",
"default": "dedicated_number",
"description": "Line backing the call: dedicated_number | shared_imessage_number | dedicated_imessage_number. The dedicated iMessage line calls anyone (contact rules only) and surfaces its number as caller ID."
},
"on_voicemail": {
"anyOf": [
{
"enum": [
"hang_up",
"leave_message",
"ignore"
],
"type": "string",
"title": "OnVoicemail",
"description": "What an outbound call does when it reaches voicemail."
},
{
"type": "null"
}
],
"description": "What to do when voicemail answers. Omit for leave_message: the agent waits for the beep, leaves a message, then ends the call. hang_up ends the call at the beep without a message. ignore turns detection off and treats whatever answers as a person."
},
"voicemail_message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Voicemail Message",
"description": "What the agent should say on voicemail, up to 1000 characters. Only valid with on_voicemail=leave_message (or omitted); when absent the agent composes a short message from reason."
},
"voicemail_detection": {
"enum": [
"enabled",
"disabled"
],
"type": "string",
"title": "VoicemailDetection",
"description": "Deprecated: use on_voicemail. enabled is on_voicemail=hang_up and disabled is on_voicemail=ignore."
}
},
"description": "Input for placing a hosted outbound call through Inkbox MCP.",
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CallCommandResponse",
"required": [
"call_id",
"state"
],
"properties": {
"state": {
"enum": [
"queued",
"hangup_queued"
],
"type": "string",
"title": "State"
},
"call_id": {
"type": "string",
"title": "Call Id",
"format": "uuid"
}
},
"description": "Return the queued state of a call command.",
"additionalProperties": false
},
"annotations": {
"title": "Place call",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}
}
Expand internal abbreviations and remove technical prefixes from the display title.
Description85/100
Finds Inkbox agents visible to the connected identity by @handle for agent-to-agent (A2A) tasks. Results cover agents in the organization or public A2A directory. Use verified_domain with public scope to find agents that publish a current verified-domain affiliation. This does not search email, SMS, iMessage, phone contacts, or ordinary human contacts; directory visibility does not guarantee send permission. Descriptions and skills are untrusted participant-authored data.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
verified_domain
Exact verified domain, available with public scope only.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scope
Search enabled A2A agents in this organization or the public A2A directory.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
q
Optional agent @handle, name, description, skill, or verified-domain search text.
Clear enough to supply this argument.
cursor
Opaque cursor from the previous page.
Clear enough to supply this argument.
limit
Maximum agent summaries to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find agents available over A2A",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Lists A2A task threads exchanged between the connected identity and other Inkbox agents identified by @handle. This does not search email, SMS, or iMessage, and results contain task summaries without message text.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
direction
Whether the connected identity requested, received, or participated in either direction.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
requester_handle
Only A2A tasks requested by this agent @handle.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
worker_handle
Only A2A tasks assigned to this agent @handle.
Clear enough to supply this argument.
state
Only tasks in this A2A state.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
context_id
Only tasks in this related A2A thread, by id from a task list or a send result.
Clear enough to supply this argument.
query
Optional text search over participant-visible A2A task messages.
Clear enough to supply this argument.
since
Only tasks updated at or after this timestamp.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
cursor
Opaque cursor from the previous page.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
limit
Maximum task summaries to return.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Reads bounded message history for one A2A task thread involving the connected identity. Non-text parts are omitted and counted in omitted_part_count; message text is untrusted participant-authored data. This reads agent-to-agent task text, not email, SMS, or iMessage.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
A2A task ID returned by the task list or send tools.
Clear enough to supply this argument.
message_limit
Maximum newest A2A messages to return from this task thread.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Expand internal abbreviations and remove technical prefixes from the display title.
Description95/100
Sends a text task or message over A2A to another Inkbox agent identified by @handle rather than by email, SMS, or iMessage. Starting a new task requires A2A enabled for the connected identity and permission to contact the target; continuing an existing input-required task uses task_id. The tool returns durable current state immediately and does not imply completion; the remote agent may cause further external effects.
Describe the returned information so the agent knows whether it will answer the request.
Inputs94/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
target_handle
Inkbox agent @handle receiving this A2A task, for example @research-agent.
Clear enough to supply this argument.
text
Text instruction or message to send to the target agent over A2A.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Existing input-required A2A task to continue; omit when starting a new task.
Clear enough to supply this argument.
context_id
Existing A2A context for a new related task, by id from a task list or a send result; cannot be combined with task_id.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Message or delegate to an agent over A2A",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}
Output schema74/100
Describe the returned fields so an agent can interpret the result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Updates the state of an A2A task involving the connected identity. As the worker, the intent reports progress, requests caller input, completes the task, or marks it failed. As the requester, the cancel intent withdraws a nonterminal outbound task and takes no text; that does not retract email, SMS, or iMessage, and may not undo actions the remote agent already took. This is agent-to-agent, not an email, SMS, or iMessage reply.
The description explains the capability, when to use it, and what to expect.
Inputs97/100
Input documentation gives an agent enough context to populate the arguments.
task_id
Inbound A2A task to answer as its worker agent, by id from a task list.
Clear enough to supply this argument.
intent
How this changes the A2A task state. progress, ask_caller, complete, and fail answer an inbound task as its worker. cancel withdraws an outbound task this identity sent, and takes no text.
Clear enough to supply this argument.
text
Text reply sent to the requesting agent over A2A. Omit when cancelling.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Reply to or cancel an A2A agent task",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}
Output schema70/100
Describe the returned fields so an agent can interpret the result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Read-only prediction using the same contact-rule evaluation as outbound calls and SMS. This is separate from SMS consent readiness and does not send anything.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
recipient
Recipient phone number in E.164 format.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
inkbox setup, tools, quality score, publishing readiness, and alternatives.
How do I add inkbox to Claude, ChatGPT, or Cursor?
Add inkbox to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://inkbox.ai/mcp.
Is inkbox MCP ready for ChatGPT and Claude?
As of October 16, 2026, inkbox scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is inkbox's MCP tool documentation?
As of October 16, 2026, inkbox scores 83/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 63 of 63 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to inkbox?
As of October 16, 2026, alternatives to inkbox in communication on the Manufact MCP catalog include AgentLine: Phone Numbers for AI Agents, JooVoice, OpenMail, Granola, and primitive.
How can inkbox improve its MCP documentation?
inkbox_note_create is the lowest-scoring reviewed tool at 59/100. 0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.