Build a Voice Astrology Agent with Vapi and Remote MCP

12 min read
Brett Calloway
astrologyAI AgentsVoice AIVapiMCPRemote MCP

Wire a Vapi voice assistant to a Remote MCP astrology server in under 30 minutes. Step-by-step setup, web SDK embed, cost breakdown by RoxyAPI.

TL;DR

  • Vapi supports Remote MCP servers natively from the dashboard. No wrapper code, no local server, no ngrok.
  • Point a Vapi assistant at https://roxyapi.com/mcp/astrology and it gains 23 astrology tools at once.
  • A web-embeddable voice astrologer lands in five steps and roughly thirty minutes.
  • Same recipe ports to tarot, numerology, dreams, and seven other domains by swapping one URL.

About the author: Brett Calloway has 12 years of experience building APIs and developer tooling, including three years focused on AI-native infrastructure for spiritual and wellness applications. He writes on building context-rich AI agents using Model Context Protocol, drawing on a developer relations background. His coverage spans API integration patterns, AI agent architecture, and rapid prototyping with astrology, tarot, and numerology data.

Intro

Voice is the next interface for spiritual apps. Users want to ask "what does my chart say today" out loud and hear a warm voice answer with their actual transits, not a canned daily blurb. Building that used to mean three weeks of glue code: a telephony provider, a transcription pipeline, an LLM, a TTS voice, and a custom function bridge to whatever astrology API you picked. Vapi collapses the first four. A Remote MCP server collapses the fifth. This guide is the full path from a fresh Vapi account to a voice astrology agent your users can talk to from any web page, with real horoscope data flowing through Streamable HTTP. Total build time is around thirty minutes for someone who can paste HTML.

Why Remote MCP beats a custom voice integration

A Remote MCP server is a single HTTPS URL that exposes every endpoint of an API as agent-callable tools. Vapi connects to it over Streamable HTTP, the dominant 2026 transport, and the assistant model picks which tool to call at runtime based on what the user said. There is nothing to install, nothing to self-host, and no restart loop to manage. Compare this to the older pattern: define each function in your assistant config, write a webhook endpoint, parse arguments, call the underlying API, format the response, ship it back inside the Vapi seven-and-a-half second tool budget. With a Remote MCP server you delete all of that. RoxyAPI exposes 10 domains under one key and every endpoint becomes an MCP tool the moment you paste the URL.

Get a free RoxyAPI key to follow along. Signup takes 60 seconds and the Starter tier covers 25,000 monthly calls.

What you need before you start

Three accounts, no local toolchain. First, a Vapi account at vapi.ai. The free tier ships ten voice minutes per month plus ten dollars in starter credit, which is more than enough to test. Second, a RoxyAPI account at roxyapi.com. Copy the API key from the dashboard the moment it loads. Third, any web page where you can paste an HTML script tag. That can be a plain index.html, a Webflow page, a Stan Store link, a WordPress post, a Linktree custom block, or a React app. There is no CLI, no local server, no ngrok tunnel, no Docker, and no environment variable juggling. If you can paste eight lines into an HTML file you have everything you need. Total setup time before Step 1 is under five minutes.

Step 1: Get your API key and find your MCP URL

Sign in to roxyapi.com and copy the API key from the dashboard. The key looks like 1978c678-9c7b-490a-8229-bc27613d3b77.a965fb53df2b49d8.0JYe... and you will paste it into Vapi in Step 3. The Remote MCP server for Western astrology is at https://roxyapi.com/mcp/astrology. There is one server per domain (/mcp/tarot, /mcp/numerology, /mcp/dreams, and so on) and each one exposes its full endpoint catalog as agent-callable tools. Confirm the key works with a quick curl against the daily horoscope endpoint:

curl -H "X-API-Key: YOUR_KEY" \
  https://roxyapi.com/api/v2/astrology/horoscope/aries/daily

That returns the same JSON your voice agent will receive through MCP, including overview, love, career, health, finance, advice, lucky number, lucky color, active transits, Moon sign, Moon phase, and an energy rating. The full schema is at GET /astrology/horoscope/{sign}/daily.

Step 2: Create a Vapi assistant in the dashboard

Sign in to Vapi, open the Assistants page, and click Create Assistant. Give it a name (Rosie the Astrologer works), then configure the three voice components. For the model, pick GPT-4o or Claude Sonnet 4. Both handle MCP tool calls cleanly and stay inside the Vapi seven-and-a-half second tool budget for natural turn-taking. For transcription, pick Deepgram nova-2 in your target language. It is fast, cheap, and accurate enough that an agent can catch the phrase "I am a Virgo" without retries. For voice, pick ElevenLabs or Cartesia. Both give a warm conversational tone that suits spiritual content. ElevenLabs has more persona variety. Cartesia is cheaper and lower latency. Save the assistant. You now have a voice brain with no skills. Step 3 gives it skills.

Step 3: Register the Remote MCP server as a tool

Open the Tools page in the Vapi dashboard and click Create Tool. Pick MCP from the tool type list. In the Server URL field paste https://roxyapi.com/mcp/astrology. Open the Headers section and add one entry: header name X-API-Key, value the key you copied in Step 1. Leave the transport on the default (Streamable HTTP). Click Publish. Now go back to your assistant, open its Tools tab, and select the MCP tool you just created from the dropdown. Click Publish. Behind the scenes Vapi calls tools/list against the MCP server and pulls in 23 astrology tools at once. The assistant model now sees get_astrology_horoscope_sign_daily, get_astrology_natal_chart, get_astrology_synastry, and twenty more. See Remote MCP server documentation for the full tool catalog and authentication options.

Step 4: Write a system prompt that sounds human

The default Vapi system prompt is generic. Replace it with something that gives the agent a persona, a flow, and a fallback. A working starter is roughly this shape:

You are Rosie, a warm and patient astrologer with a calm voice.
When a user asks for guidance, ask for their zodiac sign first
if you do not already know it. Then call the daily horoscope tool
and read the overview, love, and advice sections aloud in a natural
speaking rhythm. Keep individual responses under 30 seconds of
spoken time. If the tool call fails, apologize once and offer a
general reflection. Never invent transit data. Always end by asking
if they want career or finance details next.

This prompt does four things: locks the persona, structures the flow so the model asks for the sign before calling a tool, caps response length to keep voice latency natural, and forbids hallucinated astrology data. The "never invent transit data" line matters because language models will happily fabricate a Saturn transit if the tool errors. Vapi has a roughly seven-and-a-half second budget per tool round-trip before turn-taking degrades. RoxyAPI horoscope responses land in well under that.

Step 5: Embed the agent on any web page

Vapi ships a Web SDK that turns any HTML page into a voice client. Install with npm install @vapi-ai/web for a bundled app, or skip the build step and use the script tag form below. Eight lines:

<script type="module">
  import Vapi from 'https://esm.sh/@vapi-ai/web';
  const vapi = new Vapi('YOUR_VAPI_PUBLIC_KEY');
  document.getElementById('talk').addEventListener('click', async () => {
    await vapi.start('YOUR_ASSISTANT_ID');
  });
</script>
<button id="talk">Talk to Rosie</button>

Copy the public key from the Vapi dashboard (not the secret key) and the assistant ID from the URL bar when viewing your assistant. Open the page in a browser, click the button, grant microphone access once, and start talking. The same eight lines work on Webflow, WordPress (custom HTML block), Stan Store, the Linktree HTML embed, and a plain index.html opened from disk. No backend.

What it costs to run a voice astrology agent

Voice is the expensive part of the stack. The astrology data is cheap. Vapi charges a small platform fee per minute and you pay third-party services for transcription, the LLM, and TTS on top. Round numbers for May 2026:

StackMonthly minimumCost per 1,000 voice minutesDomainsSetup time
Vapi + RoxyAPI$0 to start (free tiers)About $70 voice + $39 RoxyAPI = $1091030 minutes
Subscription-gated voice astrology platforms$120 base + per-query fees$120 subscription + about $70 voice = $1901Days of vendor onboarding

The wedge is structural, not promotional. Pay-as-you-go for voice infrastructure beats a forced monthly subscription floor. Ten spiritual domains under one key beats single-domain output with no escape hatch. A Remote MCP URL you can swap in seconds beats proprietary endpoints baked into a vendor SDK. Verified accuracy against NASA JPL Horizons beats undisclosed methodology. The Starter tier covers 25,000 RoxyAPI calls per month, enough for thousands of voice sessions.

What else you can build on the same stack

The same Vapi assistant becomes a voice tarot reader by swapping the MCP URL for https://roxyapi.com/mcp/tarot. A voice numerology coach with https://roxyapi.com/mcp/numerology. A voice dream interpreter with https://roxyapi.com/mcp/dreams. A voice I-Ching guide with https://roxyapi.com/mcp/iching. A multi-domain voice oracle by attaching three MCP tools to one assistant and letting the model route based on what the user asks. The same recipe extends to the Vedic astrology API for kundli readings, dasha predictions, and panchang lookups in a voice agent for Indian users. One key, one billing line, ten domains. Add a phone number from the Vapi dashboard later and the same agent answers inbound calls.

FAQ

What is a Remote MCP server and why does Vapi need one?

Remote MCP is the 2026 industry standard for exposing an API as agent-callable tools over a single HTTPS URL. Vapi supports it natively from the dashboard. The advantage over a custom function tool is that the agent gets every endpoint at once, the schema stays in sync as the API evolves, and there is no webhook code to maintain. Streamable HTTP is the transport. RoxyAPI ships one Remote MCP server per domain.

Can I use this without writing any code?

Almost. Steps 1 through 4 happen entirely in dashboards. Step 5 requires pasting eight lines of HTML into a web page. Webflow, WordPress, Stan Store, Linktree, and Squarespace all have HTML embed blocks that accept the snippet directly. If you want a phone number instead of a web button, you can buy one from the Vapi dashboard and skip the HTML entirely.

How fast does the voice agent respond?

End-to-end voice latency is dominated by the LLM and TTS, not the API call. A typical voice round-trip with GPT-4o, Deepgram nova-2, and ElevenLabs lands in roughly two to four seconds from end of user speech to start of agent reply. The RoxyAPI tool call inside that round-trip completes in well under 200 milliseconds, so it is never the bottleneck. Vapi enforces a roughly seven-and-a-half second tool budget for natural turn-taking.

Does Vapi support multiple MCP servers on one assistant?

Yes. Create a separate MCP tool in the Vapi dashboard for each Remote MCP URL, then attach all of them to the same assistant. The assistant model decides which tool to call based on the user request. This is how you build a voice oracle that handles astrology, tarot, and numerology in a single conversation without forcing the user to pick a mode upfront.

Do I need a phone number to use Vapi?

No. The Vapi Web SDK turns any HTML page into a voice client without provisioning a phone number, which is the path this guide follows. Phone numbers are optional and live alongside the web interface. You can add a free Vapi-issued US number from the dashboard later and the same assistant answers inbound calls without any code change.

Which LLM should I pick for the Vapi assistant?

GPT-4o and Claude Sonnet 4 are the two production-ready picks for MCP tool use in 2026. Both follow tool schemas reliably and stay inside the seven-and-a-half second tool budget. GPT-4o is slightly cheaper per token. Claude Sonnet 4 tends to write warmer prose, which suits voice astrology. Avoid older 3.5 generation models for tool use, the success rate drops noticeably.

Can the agent give birth chart readings, not just daily horoscopes?

Yes. The Western astrology Remote MCP server exposes 23 tools, including natal birth charts, synastry compatibility, transit aspects, solar returns, and moon phases. The assistant model picks the right tool based on what the user asks. Adding the Vedic astrology MCP server alongside it unlocks kundli, dasha, and panchang lookups in the same conversation.

How do I make the voice agent speak Hindi or Spanish?

RoxyAPI ships interpretations in eight languages: English, Turkish, German, Spanish, Hindi, Portuguese, French, and Russian. Pass lang in the tool arguments and the response comes back translated. Then pair the assistant with a Deepgram transcription model and an ElevenLabs voice in the matching language. Vapi handles the rest.

Conclusion

Voice agents for spiritual content used to be a multi-week build. Vapi plus a Remote MCP server brings it down to a 30-minute paste job with no backend code. The same stack ports to tarot, numerology, and seven other domains by swapping one URL. Start with the Starter plan and ship a voice astrologer this weekend.