Negotiated 2025-06-18. The bar is 2025-06-18 or newer.
Pass
HTTPS
The endpoint URL is https.
Performance
Not measured
Fast (p50)
Median latency 430 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.
Not measured
Consistent (p95)
95th percentile 451 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.
Not measured
Reliable (uptime)
2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.
Pass
Stable tool list
No tool was removed and no required parameter was added in the last 30 days.
Access
Pass
Open access
tools/list succeeded with no credential, and the record declares none.
Not measured
Standard auth
Auth is not required, so the OAuth metadata check does not apply.
Not measured
Free tier cited
No publisher quote has been checked.
Tools
Pass
Tools described
Every tool description is at least 20 characters.
Pass
Valid input schemas
Every inputSchema is a JSON Schema object.
Fail
Parameters documented
33 of 93 parameters have a description (35%). The bar is 80%.
Pass
Safety hints
Every tool sets readOnlyHint or destructiveHint.
Publisher
Pass
Verified namespace
Listed in the Official MCP Registry.
Pass
Website matches publisher
The website host matches the reverse-domain namespace.
Pass
Source repo linked
A repository URL is on file.
Not measured
Repo owner matches
This namespace is not an io.github login, so the owner comparison does not apply.
Pass
Recently updated
Updated 2026-09-11T15:07:20.968903Z, within 180 days.
Not measured
Open-source licence
The GitHub licence lookup has not returned an OSI result yet.
Start using CosVoice
Connect to this server
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http cosvoice https://cosvoice.com/mcp
Capabilities
Tools 27
ack_instructions
Mark owner instructions (texts the owner sent to the line) as handled so they stop being attached to tool results. Pass the ids from the OWNER INSTRUCTIONS notice, or all: true.
Discovered add_contact
Teach the line a number. Roles: approved (reaches the owner), vip (interrupts), blocked (polite wall).
Discovered annotate_call
Attach a note to a call (what you did about it, a decision, context for the owner). Shows in the dashboard next to the debrief.
Discovered book_reservation
Reserve a table by phone: the line calls the venue, negotiates the time, answers the host's questions (name, callback, email), records policies, and never pays. Give the venue's phone number, party size, date/time, and the acceptable window or fallbacks. Returns reservation_id and call_id; read the outcome with get_call or list_reservations before telling the owner anything is confirmed. Statuses: confirmed, alternative_confirmed, waitlisted, hold, requires_online, needs_owner, callback_later, no_availability, declined_by_venue, voicemail, not_reached.
Discovered create_line
Set up the phone line: claim a number (pick one from search_numbers or just give an area code), name the persona, and register the owner's mobile. An account can own several lines; each needs its own paid plan (if none is waiting, this returns a checkout link). Ask the owner before opting them in to texts.
Discovered forward_email
Forward one received email to one of the line's own inboxes: its forwarding, notification or Bot inbox, or the owner's sign-in address (defaults to the forwarding inbox). It cannot forward to any other address, and a new inbox must be confirmed by its owner first.
Discovered get_account
Who this key belongs to and whether a line exists yet.
Discovered get_call
Status, structured notes, outcome, transcript, and annotations for one call.
Discovered get_email
Full text of one email the line received.
Discovered get_line
Number, email identity, persona, owner, and minutes remaining this period.
Email received at and sent from the line's address, newest first (direction inbound|outbound), with forwarding status.
Discovered list_history
Unified history of calls, texts, and email with optional search. The same table as the dashboard.
Discovered list_integrations
Partner integrations available through this line (groceries, food, reservations, travel…), with status and connect links. Partner tools appear as <partner>__<tool>.
Discovered list_messages
Recent texts to and from the line.
Discovered list_reservations
Recent reservation requests with their status and the venue's stated policies.
Discovered place_call
Have the line call a real number and hold a live voice conversation on the owner's behalf. Brief it like a human assistant: who to ask for, what you want, acceptable fallbacks, what to do on voicemail. Set connect_owner when the owner wants to be put through once a human is reached (the line waits on hold, then rings the owner). Asynchronous: poll get_call or wait for the call.completed webhook.
Discovered recent_activity
Everything since a timestamp: calls, texts, emails. Catch-up when webhooks were missed.
Discovered remove_contact
Remove a number from the contacts list (not the owner).
Discovered search_numbers
Find available phone numbers in a US area code for a new line.
Discovered send_email
Send an email from the line's own address (handle@cosvoice.com). Reply to a message the line received by passing reply_to_email_id (recipient and subject fill in, threading is kept), or write to the owner. The line may only email people who have emailed it first, its owner, or its Bot inbox. Plain text; keep it short and sign as the line.
Discovered send_text
Send an SMS from the line's number. Respects STOP opt-outs. Read the delivery field in the result: while CosVoice's carrier registration (10DLC) is in progress, texts from the line may be filtered by US carriers and not arrive; texts to the line and calls always work.
Discovered set_bot_push
Have CosVoice start YOU the moment something arrives, instead of you polling. Give it the webhook URL and key of a routine of yours that has a Webhook trigger (Grok Bot: Routines → New → trigger Webhook; the URL and a crsr_ key appear). CosVoice POSTs a JSON body with what_to_do plus the ids when the owner texts an instruction, an email arrives, or a call finishes; that body becomes the routine's input. Pass an empty url to turn it off. events limits which moments wake you (default instruction, email, call); add "message" to also be started when anyone other than the owner texts the line. When you pass a key, CosVoice sends a test push at once and returns the result in test: read it, a saved key is not a working key until the routine has accepted one.
Discovered set_webhook
Set (or clear with an empty url) the HTTPS webhook that receives call.completed, message.received, and email.received. Returns the signing secret once.
Discovered update_settings
Change any of: name, voice, greeting, instructions, owner_name, owner_phone, timezone, notify_email, agent_email, morning_brief (daily digest on/off), morning_brief_hour (0–23 local), forward_email, forward_mode (relay|raw|off), sms_opt_in, answer_rings (0|1|2). Only the fields you pass change.