voygr-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@voygr-mcp Check if The Blue Bottle Coffee is open and call to ask about hours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
voygr-mcp
MCP server for VOYGR place verification and outbound venue calls. Proper stdio MCP: tools, resources, prompts, progress notifications, and elicitation.
Install
cd voygr-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Requires a VOYGR API key at process start:
export VOYGR_API_KEY=your_key
# or: voygr login your_keyRelated MCP server: vonage-mcp-server-api-bindings
Dry-run (default)
VOYGR_DRY_RUN defaults to 1. Calls only are mocked (magic numbers, scripted
events, canned transcripts). verify_place / verify_places / check_credits
always hit the live VOYGR API via the official voygr Python client.
Magic number | Outcome |
|
|
|
|
| mid-call |
|
|
|
|
|
|
Live dialing:
export VOYGR_DRY_RUN=0
docker compose up -d redis # call state / event cursors
export VOYGR_REDIS_URL=redis://localhost:6379/0
voygr-mcpClaude Desktop (stdio)
Put
VOYGR_API_KEY=...in the project.env(loaded automatically; Claude’s cwd does not matter).Edit
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) and merge:
{
"mcpServers": {
"voygr": {
"command": "/Users/vaarunsinha/voygr-mcp/scripts/claude-desktop-mcp.sh",
"env": {
"VOYGR_DRY_RUN": "1"
}
}
}
}Fully quit and reopen Claude Desktop. Confirm under + → Connectors (or Developer settings) that
voygris connected and tools likeverify_placeappear.
Or point command at .venv/bin/voygr-mcp directly — the server also loads
the package-root .env on start.
Tools
Tool | Role |
| Single POI → agent-safe verdict (not raw open/closed) |
| Batch + normalized cache |
| Structured call ( |
| Resume by call handle |
| Usage / credits |
Consent is never a tool parameter — it is always an elicitation to the human.
Resources / prompt
voygr://call/{id}/transcript— 7-day retention noted in metadatavoygr://call/{id}/eventsPrompt:
verify_before_recommending
Honesty (demo / video)
When recording the 60s demo:
Refusal arm (
verify_placesdropping closed/not_found) should be live API.Mid-call handoff segment should be dry-run (
+1-555-0102) and labeled on screen.List which segments used dry-run in any public write-up.
Tests
pytestTests use ScriptedElicitationProvider (no human). No skip-consent env var ships
in the server.
Stack
Python, official mcp SDK (stdio), voygr PyPI client, httpx (calls API), Redis
(live call state), Docker Compose, pytest. No FastAPI in v1.
Reference checkout of upstream CLI (not vendored): ../voygr-dev-tools.
Available Tools
7 toolsanswer_mid_callA
Relay the human's answer to a mid-call venue question. When call_place/approve_call returns status=awaiting_mid_call_answer, show question to the human in chat, then call this with answer_token + their answer. This is the mid-call handoff — do not invent the answer or the token.
Inputs: answer (required), answer_token (required). Returns: object
approve_callA
Approve a pending call after the human said yes in chat. Pass the consent_token returned by call_place when error=consent_required. Only works with a server-issued token — do not invent one.
Inputs: consent_token (required). Returns: object
call_placeA
Place a structured outbound VOYGR call to a venue phone. Intents: inquiry | info_gathering. Language: en only. For inquiry, slots MUST include question (a free-text ask for the venue). party_size/date/time alone are not enough. Consent is elicited when the client supports it; otherwise the tool returns consent_required + consent_token — ask the human in chat, then call approve_call. If the venue asks something mid-call, the tool may return awaiting_mid_call_answer — ask the human that question in chat, then answer_mid_call. No confirm boolean. In dry-run, inquiry calls simulate a live venue including mid-call questions.
Inputs: phone (required), intent (required), kind, slots, +2 more. Returns: object
check_creditsA
Report VOYGR usage/credits so the agent can explain spend and holds.
Inputs: no named parameters. Returns: object
get_callA
Get status/outcome for a call handle returned by call_place (async recovery path).
Inputs: call_id (required). Returns: object
verify_placeA
Verify whether a named place at an address exists and is operating. Returns verdict/recommend — never trust raw open_closed alone. Costs 1 credit.
Inputs: name (required), address (required). Returns: object
verify_placesA
Verify multiple places. Input a list of {name, address}. Deduped/cached on normalized name+address. Use before recommending options.
Inputs: places (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a distinct role: verification, credit check, call placement, consent, mid-call answer, and status retrieval. The only potential overlap is verify_place vs verify_places, but the singular/plural distinction is clearly explained in the descriptions.
All tools follow a consistent verb_noun pattern in snake_case (verify_place, check_credits, call_place, approve_call, answer_mid_call, get_call), with no naming style mixing.
Seven tools is well-scoped for a place-verification and calling service. Each tool covers a distinct step in the workflow with no redundancy.
The surface covers the full workflow: verify places, place calls, handle consent, relay mid-call answers, and retrieve status. Minor gaps like canceling a call or listing history are not critical for the core purpose.
Maintenance
Related MCP Connectors
Lets Claude, Cursor or any MCP client build voice agents and place real phone calls.
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
MCP server for Vonage API documentation, code snippets, tutorials, and troubleshooting.
MCP server for SuperPhone — contacts, conversations, tags and consent-based text messages.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceMCP server that lists applications and phone numbers, and initiates outbound calls via Fonoster.1,817 npm8,163MIT- AlicenseNot gradedqualityBmaintenanceMCP Server that integrates various Vonage APIs as MCP tools, to make it easier for developers to work with and create Vonage applications.48 npm3Apache 2.0

Smallest MCP Serverofficial
AlicenseAqualityBmaintenanceMCP server for the Smallest AI platform that enables managing AI voice agents, debugging calls, and viewing analytics directly from your IDE.8441 npm1MIT- FlicenseCqualityDmaintenanceMCP server enabling interaction with Telnyx telephony, messaging, and AI assistant APIs through natural language.46-