Every developer has the same fantasy: wake up, get a voice briefing of everything that matters, and move on with your day. No inbox doom-scrolling, no tab-switching between GitHub and Slack and Gmail. Just a clean summary, delivered to your phone, in audio. Like Tony Stark — minus the suit budget.

I finally built it. It took 15 minutes, one new tool, and zero traditional code. Here’s how.

The Itch

When Anthropic announced Claude Routines — scheduled, recurring agent tasks — something clicked. I’ve been building tools at Arcade.dev for a while, and we already had connectors for Gmail, GitHub, Slack, and more. What if I just… wired them together into a personal briefing agent?

The idea was simple: every hour, an agent reads my email, checks my GitHub PRs, scans what matters, and sends me a short summary. No dashboards. No apps. Just a message on my phone.

Attempt One: Slack Notifications

First pass used our Slack tool to send me summaries. It worked — technically. But Slack is noisy. My briefing got buried between threads, emoji reactions, and someone asking if the office fridge is communal (it is, Gary).

Slack wasn’t the right channel for this. I needed something quieter. Something that felt more like an alert and less like another chat window.

Going Telegram

I switched to Telegram. Problem: we didn’t have a Telegram tool yet.

So I had Claude build one. I gave it a single prompt, pointed it at our existing project structure, and ten minutes later I had a working Telegram tool — send message, get messages, and text-to-speech via OpenAI’s TTS API all baked in. Claude already knew how our toolkits are structured, so it basically wrote itself.

With the Telegram tool live, my agent could now push summaries directly to a private Telegram chat — as voice messages. Clean, quiet, mine.

Wiring It All Together With an MCP Gateway

Here’s where Arcade.dev’s MCP Gateway made everything click. Instead of configuring each tool connection individually, I created a single gateway that federates all my tools — Gmail, GitHub, Slack, and my new custom Telegram tool — behind one URL.

The setup took about two minutes in the Arcade.dev dashboard. You create a gateway, give it a slug, pick which tools to include from the catalog, and optionally add LLM instructions that tell the model how to use your specific tool combination. I added instructions like “summarize new emails and open PRs, then send a voice briefing via Telegram.”

The gateway gives you a single endpoint:

https://api.arcade.dev/mcp/your-gateway-slug

I added that URL as a connector in Claude, and that was it. Claude now had access to every tool in my gateway — authenticated, scoped, and ready to go. No juggling multiple server configs. No managing separate connections for each service. One URL, all my tools.

This is the part that makes the 15-minute build time possible. Without the gateway, I’d be wiring up individual MCP server connections for Gmail, GitHub, and Telegram separately. With it, adding a new tool to my Jarvis setup is just a checkbox in the dashboard.

Audio Briefings Hit Different

Text summaries would’ve been fine. But hearing them? Way better. Three to five sentences, max. The kind of thing you listen to while pouring coffee.

Since the Telegram tool already had OpenAI TTS built in, the agent generates a short summary, converts it to audio, and sends it as a voice message — all in one step.

The result: a 10-to-30-second audio clip, every hour, covering everything I need to know. Emails, PRs, action items. No screen required.

Telegram Morning Digest — the hourly voice briefing my Arcade.dev agent pushes to Telegram

It worked on the first try. That’s when I knew this setup was ridiculous — in the best way.

The Duplicate Problem

One thing bugged me: the agent kept telling me about the same emails and PRs. Every hour it’d resurface stuff I’d already handled. Annoying.

The fix was dumb-simple. I created a small JSON file in a git repo — basically a key-value store tracking what’s already been reported. Every time the routine runs, Claude reads the file, compares it against new data, sends only the delta, and writes the updated state back.

No database. No Redis. No infrastructure. Just a JSON file and git commits. Ugly? Maybe. Works perfectly? Absolutely.

The Stack

Here’s what powers my personal Jarvis:

  • Claude Routines — scheduled hourly agent runs
  • Arcade.dev MCP Gateway — federates all tools behind a single URL, connected to Claude as one connector
  • Arcade.dev Gmail tool — reads and filters my inbox
  • Arcade.dev GitHub tool — pulls PR status and review requests
  • Arcade.dev Telegram tool — delivers voice messages with built-in OpenAI TTS (built by Claude in ~10 minutes)
  • A JSON file in git — state management for deduplication

No backend. No deployment pipeline. No frontend. The entire thing is prompt + tools.

Why This Matters

Look, I’m not going to pretend this is production infrastructure. It’s a personal hack. But that’s exactly the point.

A year ago, building something like this would’ve meant writing a Node service, managing OAuth tokens for Gmail and GitHub, deploying a cron job somewhere, handling Telegram’s bot API, integrating a TTS service, and figuring out state persistence. That’s a weekend project that turns into a week-long slog and then dies in a half-finished repo.

I did it in 15 minutes. The tools handle auth. Claude handles orchestration. I just described what I wanted and iterated on the prompt a few times until the output was right.

The gap between “I want an AI that does X” and “I have an AI that does X” is shrinking fast. Authenticated tool access is what closes it. Your agent can’t send a Telegram message or read your Gmail if it can’t authenticate as you. That’s the hard part — and it’s the part Arcade.dev handles so you don’t have to.

Build Your Own

If you want to try this yourself:

  1. Set up Claude Routines with a recurring schedule
  2. Pick your tools — Gmail, GitHub, Slack, Calendar, whatever matters to your workflow
  3. Create an MCP Gatewayfederate your tools into a single endpoint via the Arcade.dev dashboard, add LLM instructions for your use case, and connect the gateway URL to Claude as a connector
  4. Add a notification channel — Telegram, Slack, email, whatever you actually check
  5. Iterate on the prompt — this is where the magic happens. Be specific about what you want summarized and how
  6. Solve for state — a JSON file in git works. So does a simple database tool. Keep it minimal

The whole thing took me 15 minutes. The Telegram tool was the only “code” involved, and Claude wrote that from a single prompt in ten minutes flat.

The Closest Thing to Jarvis — No Code Required

I’ve been chasing the personal AI assistant dream for years. Every attempt before this involved too much glue code, too many OAuth headaches, and too much maintenance.

This one just works. Every hour, my phone buzzes with a voice message. Fifteen seconds of audio that tells me exactly what’s happened since the last update. It’s not Jarvis. But it’s the closest I’ve gotten — and the whole thing took 15 minutes with zero application code.

That’s what happens when your tools can actually authenticate and act. The agent stops being a chatbot and starts being useful.


Want to build agents that actually do things? Check out Arcade.dev’s tool catalog and start connecting your agent to the real world.