Forget the movie version. A working "Jarvis" is three unglamorous, powerful pieces bolted together:
The magic isn't a personality, it's the plumbing. Let's wire it, one piece at a time, testing each before you add the next.
What MCP is: the Model Context Protocol is an open standard that lets Claude build a secure, two-way connection to your data and apps, so it can both read from them and act inside them. Anthropic introduced it in November 2024 and it's now what powers Claude's connectors (Anthropic's MCP announcement).
The exact setup, in order:
claude.ai/customize/connectors). You can also click the + in the chat box and toggle connectors from there once they are added.What each one can actually do (worth knowing before you rely on it):
I rebuilt my own Jarvis for the latest reel and the prompt got a lot better, so here it is in full. Three pieces: a short file that tells Claude who you are, the build manual you paste once, and the connector step that most people skip. Do these three and the rest of this guide gets easier, because Claude is reading your real calendar, inbox and notes instead of guessing.
This single file is the difference between your Jarvis and a generic bot. It's why yours knows a slipped deadline on project two matters more than a full inbox. In your project folder, ask Claude Code to create a CLAUDE.md, then make it specific. Make a priorities note while you're here, even five ranked bullets, because the brief ranks your day from it and can't invent one.
# Who I am
I'm [name], I [what you do]. I care most about [your #1 goal right now].
# What I'm working on this month
- [project 1], [project 2], [project 3]
# My priorities, ranked
1. [top priority] 2. [next] 3. [next]
# My tone
[e.g. warm, direct, no corporate filler]
# Hard rules
- Always draft, never send. Never take irreversible actions without asking.
- Only use the apps I've connected.
Don't read this one, just copy the whole block. It's the architecture behind my Jarvis, and it saves itself as a skill you can trigger by phrase.
You are my personal assistant, my own Jarvis. First, read my CLAUDE.md so you know who I am, my projects, my priorities and my tone. From now on, act as a proactive chief of staff for me, not a generic chatbot.
Keep this skill fully self-contained: list every source to pull and exactly how to format the brief, because when it runs on a schedule it has no memory of our chats.
Build me a "morning brief" routine, and save it as a reusable skill I can trigger by phrase (like "run my morning brief", "brief me", or "what's on my plate"). When I trigger it, do this:
1. CALENDAR: read today's events from my Google Calendar. Flag anything that needs prep, and any conflicts or gaps.
2. INBOX: scan my Gmail from the last 24 hours. Group it into needs-a-reply / FYI / ignore. For the needs-a-reply group, draft short replies in my tone and leave them in Drafts. Never send.
3. PRIORITIES + TASKS: read my priorities and task list (from my Notion or my priorities note), and pick the 3 things that actually matter most today, ranked, with a one-line why for each.
4. ONE THING TO KNOW: surface a single important signal, a deadline, a number that moved, a follow-up I'm forgetting.
Then write it as 6 to 8 short spoken lines, in my voice, warm and direct, no filler. END with the single most important question: "What should I handle first?"
Write the brief in [your language]. Save it to brief.txt and to a Notion page. Then rewrite jarvis_data.js so the dashboard shows today's real numbers and a one-line activity log per source you read, and mark each connector online or offline based on whether the call actually succeeded. Then read the brief out loud through my Fish Audio voice.
If a source is empty or a connector is down, say so plainly in the brief and mark it offline on the dashboard. Never fill a gap with a plausible guess.
Rules, always: you draft, I approve. Never send email, post, delete, or take any irreversible action on your own. Only pull from the apps I've connected.
So you're not pasting blind, this is the shape of what comes back:
The skill saves itself to ~/.claude/skills/<name>/SKILL.md. Ask Claude Code for more the same way, and it reaches for them automatically when a request matches:
A connector is an authorised link between the brain and a service you already use. It's the difference between Claude talking about your calendar and Claude reading it. Nobody can do this step for you. The prompt above is portable; your authorisations are yours, and until you grant them your beautiful dashboard is a screensaver.
/mcp to see them. Ones you've never used hide behind a "Show unused connectors" row.claude mcp add will fail with "is Anthropic-hosted and doesn't support local OAuth". Connect those on the web and let the CLI inherit them. claude mcp add --transport http NAME https://the-mcp-url/mcp then claude mcp login NAME is for third-party servers that publish their own MCP URL.ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN or apiKeyHelper is active, when a third-party provider like Bedrock is in play, or when CLAUDE_CODE_OAUTH_TOKEN holds a long-lived token. Run /status to see which auth is actually live. An ANTHROPIC_API_KEY left in your shell profile from an old experiment will hide every connector you own, with no error.What each one can and cannot do. Worth knowing before you design a routine around it:
~/.claude/mcp-needs-auth-cache.json, keyed by connector display name, and a successful web re-login doesn't always clear the entry. Back the file up, remove that connector's key (or delete the file, it rebuilds), then fully quit and reopen Claude Code, Cmd+Q rather than closing the window. This is internal client state, not a documented API, so re-check the filename if it moves. The durable lesson is the symptom: when the web says connected and the client says needs auth, suspect a stale cache before you suspect your account.With the connectors on, keep the prompts plain and specific. The pattern that works: name which apps to look at, say how you want the answer grouped, and tell it what to do with what it finds.
1. The one from the reel. This is the "what's on my plate today, and reply to the top email" moment, written out properly:
Look at my Google Calendar, Gmail and Notion and tell me what my day actually looks like. Start with my calendar for today and tomorrow, including anything I need to prepare for rather than only turn up to. Then scan my unread and recent email and tell me who is waiting on a reply from me, sorted by how long they have been waiting. Group everything into "urgent today" and "can wait", and keep each item to one line so I can read it in ten seconds. For the single most important email that needs a response, draft a short reply in my voice for me to review. Do not send anything. If something in my Notion tasks is overdue and connected to any of the above, say so at the end.
2. The week ahead. Run this on a Sunday or Monday morning:
Read my Google Calendar for the next seven days and give me an honest read on the shape of my week. Tell me which days are overbooked, where I have no unbroken focus time longer than 90 minutes, and which meetings look like they could have been a message. Cross-check it against my Notion tasks and tell me which deadlines are unrealistic given the meetings already booked, naming the specific clash rather than being vague about it. Finish with three concrete suggestions to fix the worst day, such as which meeting to move and where to move it to. Do not change anything in my calendar, only propose it.
3. Inbox triage with drafts. The one that saves the most time day to day:
Read my unread Gmail from the last three days and sort every thread into three buckets: reply now, reply later this week, and no reply needed. For each thread in the first bucket, tell me in one line what it is actually asking for, because subject lines lie. Then draft a reply for every thread in the reply now bucket. Keep them short, warm and direct, in my voice, and never invent a commitment, a price or a date I have not already given. Where you need a detail I have not provided, leave a clearly marked gap rather than guessing. Save them as drafts and give me a numbered list of what you drafted so I can review them in order.
4. The catch-up. For the Monday after a week away:
I have been away since [date]. Pull together what I missed across Gmail, Google Calendar and Notion, and tell me what genuinely needs me rather than everything that happened. Give me: anything with a deadline that has passed or is within three days, anyone who has followed up more than once and is still waiting, meetings that were booked or moved while I was out, and any Notion page or task assigned to me since I left. Rank the whole list by consequence of ignoring it, highest first, and tell me the three things to do before lunch today.
Those four already make it feel like an assistant. Next, make it something you can talk to.
This is the bit that makes people say Jarvis, and it needs no setup at all. Voice mode is built into Claude on every plan, Free through Enterprise, on iOS, Android, desktop and the web, though it is built to work best from your phone (Claude help centre, use voice mode).
A skill is a small reusable playbook you save once and trigger by name, instead of retyping the same instructions. It is one folder with a SKILL.md file that tells Claude what to do when you call it (use skills in Claude).
The trick most people miss: you don't have to write the skill by hand. Ask Claude to write it for you, then save what it gives you.
Write me a Claude skill called "morning brief" that turns my daily check-in into one command. When I trigger it, it should read my Google Calendar, Gmail and Notion and output four things in this order: what is overdue, who is waiting on a reply from me, my three priorities for today, and anything on the calendar I need to prepare for rather than only attend. Give it back to me as a complete SKILL.md file I can save, with a short lowercase-hyphenated name (do not put "claude" or "anthropic" in the name, or the upload gets rejected) and a description that says both what it does and when to use it, so it triggers on its own when I say "run my morning brief". In the instructions, tell yourself to never invent an item that is not in one of the three sources, to keep every line to one sentence, and to end with a single sentence naming what to do first. Then tell me how to save it as a zipped folder I can upload.
Then save it:
morning-brief.Now trigger it: in any new chat say run my morning brief, and Claude pulls calendar, inbox and pipeline into one summary without you re-explaining a thing.
Once the morning brief works, the same pattern (ask Claude to write the skill, save it, trigger by name) unlocks a lot more:
Write me a Claude skill called "deck from idea". When I give it a topic, it should outline a short slide deck of five to seven slides, one clear point per slide, written in my voice and ready for me to drop straight into slides. The instructions should tell you to open with the single claim the deck is making, give every slide a headline that says something rather than naming a category, and put the supporting detail in speaker notes instead of on the slide. If I have not told you who the audience is, ask before writing. Return it as a complete SKILL.md with a name and a description that says when to use it.
Write me a Claude skill called "inbox triage" that uses my Gmail connector. When triggered, it should read my unread email and sort every thread into "reply now", "reply later" and "no reply needed", with a one-line summary of what each thread in the first group is actually asking for. It should then draft short replies for the "reply now" group in my voice, never inventing a commitment, price or date I have not already given, and leaving a clearly marked gap where it needs a detail from me. Drafts only, never send. Return it as a complete SKILL.md, including the rule that it always tells me how many threads it read so I know nothing was skipped.
Write me a Claude skill called "week ahead" that uses my Google Calendar connector. When triggered, it should read the next seven days and tell me where I am overbooked, where I have no unbroken focus block longer than 90 minutes, and which meetings look like they could have been a message. The instructions should have it name the specific meeting in each case rather than describing the problem in general terms, and finish with three concrete fixes for the worst day, including where to move something to. It must never edit my calendar, only propose changes. Return it as a complete SKILL.md.
Everything above answers when you ask. If you want the brief waiting for you instead, that is a routine: a saved prompt plus connectors that runs on Anthropic's cloud infrastructure, so it keeps working with your laptop closed. Routines are available on Pro, Max, Team and Enterprise plans with Claude Code on the web enabled, and you create them at claude.ai/code/routines or with /schedule in the CLI (routines documentation).