The MCP tool directory.
Each row is one tool from one provider. Tools sharing a name across providers (e.g. search) are listed separately because they aren't interchangeable.
[ 3624 tools indexed ]
[ all tools ]
30 / 3624
voice_get
[ remote ]Fetch one call by ID, at any point in its lifecycle. A call still ringing or connected carries no economics yet: `duration_ms`, `billable_ms`, `ended_at`, and `cost` are null until it ends, and the same ID then returns the settled record. Poll here to watch one known call; use `voice_list` to find calls in the first place. When a call was refused, `rejection_reason` names the gate that turned it away.
voice_list
[ remote ]List the workspace's calls, newest first. Filter to `ringing`/`in_progress` for the calls in progress right now, to final statuses for completed records, or to any mix of the two. Use `from`/`to` for one known party number in international form, and `number` to search either side by fragment. These are per-call records and do not include aggregate rates or totals. Use `voice_get` to follow one call to settlement.
voice_numbers_get
[ remote ]Fetch one phone number the workspace can use for voice by id: where its calls go, whether it may be presented on an outbound call, and where it came from. Use `voice_numbers_list` to find the id.
voice_numbers_list
[ remote ]List every phone number the workspace can use for voice, as a cursor page ordered by number. Each entry is one phone number, with where its calls go and whether it may be presented on an outbound call.
voice_numbers_update
[ remote ]Change what happens to calls arriving for one number, or the workspace's own label for it. Set the route to `reject` to stop it answering, to `trunk` with a trunk_id to deliver to one of your SIP trunks, or to `forward` with a forward_to and a forward_as to place a call to one of your verified caller IDs. The route replaces whatever was set before, because a number has exactly one answer at a time, and forward_as has no default so state it on every forward. Only a number whose calls arrive at Bird can carry a route.
voice_of_customer_report
[ remote ]Produce a voice-of-customer report combining outcome metrics and confirmed/uninterested conversation samples.
voice_session_credentials_create
[ remote ]Mint a short-lived SIP digest credential a calling client authenticates with. The password is returned once and cannot be retrieved again.
voice_stats_by_country
[ remote ]Voice stats grouped by destination country, ranked by `sort` (default `total_calls`) and capped at `limit` (default 50, max 200); the response's `total` tells a capped ranking from a complete one. Countries sharing a calling code remain separate rows, so a `+1` call to Canada appears under Canada. Calls whose destination cannot be determined collect under a null `country`. For failure causes use `voice_stats_by_response_code`.
voice_stats_by_response_code
[ remote ]Call counts grouped by final SIP response code, the "how are my calls ending" view. Successes are rows too (`200` is one), so the rows sum to the whole period rather than to failures, and each row's `share` is against `period_total_calls`. Calls that got no final response collect under a null code. Capped at `limit` (default 50, max 200). This reports SIP outcomes; a call Bird itself refused carries no SIP code that distinguishes the cause, so read `rejection_reason` on the call record with `voice_get`.
voice_stats_daily
[ remote ]Per-day voice stats series (total and answered legs, `asr`, `acd_ms`), gap-filled with zero rows so a chart never interpolates, max 365 days. Set `timezone` to bucket by local calendar day instead of UTC. For hour resolution use `voice_stats_hourly`; for one aggregate row use `voice_stats_summary`.
voice_stats_hourly
[ remote ]Per-hour voice stats series (total and answered legs, `asr`, `acd_ms`), gap-filled with zero rows, max 30 days (720 rows). A longer window returns 422, so use `voice_stats_daily` for those. `from`/`to` are instants, each rounded down to the enclosing hour and echoed back in `period`. For one aggregate row use `voice_stats_summary`.
voice_stats_summary
[ remote ]Get one aggregate row of call-quality and duration metrics. `total_duration_ms` covers every leg; `total_billable_ms` covers answered legs. Use matching day or RFC 3339 bounds, and set `compare=previous_period` for changes against the preceding window. Use `voice_stats_daily` or `voice_stats_hourly` for a series, and the country or response-code breakdowns to locate failures.
voice_trunks_create
[ remote ]Create a new SIP trunk for the workspace. Returns the Bird-assigned domain to configure in the customer's PBX or SIP client.
voice_trunks_delete
[ remote ]Permanently delete a SIP trunk by ID. In-flight calls are not affected; new calls cannot be placed on the trunk after deletion. The trunk's domain becomes available for reuse.
voice_trunks_get
[ remote ]Fetch one SIP trunk by ID: its `domain`, `ip_acls`, `allowed_api_key_ids`, and `routing_configured`. Use `voice_trunks_list` to find the ID.
voice_trunks_list
[ remote ]List the workspace's SIP trunks as a cursor page. Each carries the Bird-assigned `domain` the customer's equipment sends calls to. The `ip_acls` and `allowed_api_key_ids` fields control which calls are admitted; a trunk with both empty admits nothing. `routing_configured` is false until a carrier route is live for the workspace. Start here when diagnosing why calls are refused.
voice_trunks_update
[ remote ]Change a SIP trunk's directions, name, access control and Digest offer. A direction has to be enabled before its settings can be set, and one update can do both, so this is the operation that clears `VoiceTrunkOutboundNotEnabled` and `VoiceTrunkInboundNotEnabled`. The `ip_acls`, `allowed_api_key_ids` and `digest_algorithms` fields each REPLACE their whole list, so read `voice_trunks_get` first and send the list you want to end up with; an empty array clears one. Turning `inbound_enabled` off releases every number the trunk answers and turning it back on does not reclaim them, so confirm that one with the user first.
volume.forecast
[ remote ]Derived-only volume forecast expressed as a ratio to the trailing 20-session average, with a 10th-90th percentile interval. Never returns raw share counts. Pro tool.
volume_create
[ remote ][API] Create a new persistent volume for a service ⚡️ Best for: ✓ Setting up database storage ✓ Configuring persistent data ✓ Adding file storage ⚠️ Not for: × Temporary storage needs × Static file hosting × Memory caching → Prerequisites: service_list → Next steps: volume_list → Related: service_update, database_deploy
volume_delete
[ remote ][API] Delete a volume from a service ⚡️ Best for: ✓ Removing unused storage ✓ Storage cleanup ✓ Resource management ⚠️ Not for: × Temporary data removal × Data backup (use volume_backup first) → Prerequisites: volume_list → Related: service_update
volume_list
[ remote ][API] List all volumes in a project ⚡️ Best for: ✓ Viewing persistent storage configurations ✓ Managing data volumes ✓ Auditing storage usage → Prerequisites: project_list → Next steps: volume_create → Related: service_info, database_deploy
volume_update
[ remote ]Update a volume's properties
wait_for
[ remote ] Account requiredWaits up to 25 seconds for a research dossier or a background job to finish, then returns status. Research and generation take minutes — if still running, call again with the same id after waitMs. Does not spend a cluster. Pass jobId from generate_content_* / start_deep_research, and/or dossierId.
watch_table
[ remote ]Monitor a table's row count and latest record. Compares to previous snapshot to show changes. Built-in scheduler. [ARCHITECT tier]
web-analytics-browser-versions
[ remote ]Returns browser version statistics for a Web Analytics project, showing visitor counts, bounce rates, and session durations grouped by browser version. Use doc tool first to get the real input schema.
web-analytics-browser-versions-chart
[ remote ]Returns time-series chart data grouped by browser version for a Web Analytics project, showing visitor counts, bounce rates, and session durations over time. Use doc tool first to get the real input schema.
web-analytics-browsers
[ remote ]Returns browser statistics for a Web Analytics project, showing visitor counts, bounce rates, and session durations grouped by browser. Use doc tool first to get the real input schema.
web-analytics-browsers-chart
[ remote ]Returns time-series chart data grouped by browser for a Web Analytics project, showing visitor counts, bounce rates, and session durations over time. Use doc tool first to get the real input schema.
web-analytics-chart
[ remote ]Returns time-series chart data for aggregate statistics of a Web Analytics project, with metrics like pageviews, visitors, visits, bounce rate, and session duration at the specified granularity. Use doc tool first to get the real input schema.
web-analytics-cities
[ remote ]Returns visitor data grouped by city for a Web Analytics project, showing visitor counts for each location. Use doc tool first to get the real input schema.