connect_phone_number
API reference — one of the tools an AI assistant can call on an Avrosh account.
What it does
Point a number the business ALREADY OWNS at this assistant. It does not buy a number and does not talk to a carrier: it records the number here and hands back the webhook URL, which somebody still has to paste into the carrier's own settings before the line rings. Give it in full international form (+12015551234). Refused if that number is already live on another business, because an incoming call must resolve to exactly one.
This is the exact text the model reads before deciding to call.
Parameters
business_idstringrequired
The id returned by list_businesses.
e164stringrequired
Full international form, e.g. +12015551234.
greeting_languagestringoptional
Optional two-letter code the greeting opens in, e.g. 'id'. Defaults to the business language.
Request
curl -X POST https://us.avrosh.com/mcp \
-H "Authorization: Bearer $AVROSH_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"connect_phone_number","arguments":{"business_id":"926135ac-487d-4367-8bad-25397d0d4b87","e164":"+12015551234"}}}'Response
The result arrives as an MCP content block; the JSON below is what the text field parses to.
{
"id": "pn_2…",
"webhookUrl": "https://us.avrosh.com/telephony/incoming"
}Connecting
Paste the URL into your assistant and log in. Avrosh implements OAuth 2.1, so an MCP client discovers the authorisation server, registers itself, and opens a browser asking you to sign in here. That is the whole setup: nothing to copy, no key to keep, and nothing to rotate later.
https://us.avrosh.com/mcpFor something with no browser to log in with — a cron job, a script, an automation platform — there is a second door: a bearer key made in the dashboard under Docs, shown once because only its hash is stored, and revocable at any time.
curl https://us.avrosh.com/mcp \
-H "Authorization: Bearer $AVROSH_KEY"Either way the boundary is the same one: an assistant reaches every business on the account it signed in to, and no others. There are no scopes to configure and nothing to switch on — what bounds it is whose account it is, enforced in the database rather than by a permission anybody sets.
All tools
list_businesses · get_business · list_calls · get_transcript · create_business · update_business · list_knowledge · add_knowledge_chapter · update_knowledge_chapter · delete_knowledge_chapter · restore_knowledge_chapter · list_menu_items · create_menu_item · update_menu_item · set_menu_item_availability · delete_menu_item · restore_menu_item · remove_menu_item_photo · set_menu_item_thumbnail · list_bookable_types · create_bookable_type · update_bookable_type · set_bookable_type_schedule · delete_bookable_type · restore_bookable_type · list_bookings · get_booking · confirm_booking · cancel_booking · list_open_slots · check_in_booking · mark_no_show · finish_booking · set_appointment_end · list_phone_numbers · connect_phone_number · release_phone_number · get_call_stats · list_voice_options · list_callbacks · schedule_callback · cancel_callback · list_do_not_call · add_do_not_call · list_call_lists · create_call_list · list_call_targets · import_call_targets · delete_call_targets · restore_call_targets · update_call_list · delete_call_list · get_voice_settings · update_voice_settings · set_callback_window · list_work_queue · accept_order · finish_order · accept_request · finish_request · assign_request · list_customers · get_customer · export_customer_data · erase_customer