Bring your work into VS Code.
VS Code can search your email, read a thread, check your calendar, and draft, send and book through alfred_. As you, you sign in once, and nothing is sent until you say yes.
Connect
You need an alfred_ account with at least one email or calendar connected. Then pick where you use VS Code.
{
"servers": {
"alfred": {
"type": "http",
"url": "https://get-alfred.ai/api/mcp"
}
}
}- Save this as .vscode/mcp.json in the workspace root. Note the key is servers, not mcpServers — VS Code differs from most clients here.
- Open the Chat view, switch to Agent mode, and press the tools icon. alfred_ appears with a sign-in prompt; your browser opens on get-alfred.ai. Sign in if you need to and press Allow.
- Run MCP: Open User Configuration from the command palette and put the same block there instead.
Things to ask
- What is on my calendar tomorrow, and is anything back to back?
- Find the thread where we agreed the API shape and quote the part that settled it.
- Did the client ever reply about the staging deadline?
- Draft a reply saying the fix is deployed and put it in my drafts.
What VS Code can do
Reading is the default. Writing and sending are separate permissions you grant on purpose.
Searches every account you have connected to alfred_ (Gmail, Outlook, Microsoft 365, IMAP) in one query, then opens a thread in full: every message, who said what, and whether you already replied. Reads a PDF or an image attachment as text. Never fetches an attachment you did not point at.
Saves a message into your real Drafts folder for you to send yourself, or sends and replies from the account you choose. Anything that leaves your mailbox shows you the message first and waits for a yes, and that check runs inside alfred_ rather than in the assistant.
alfred_ drafts replies on its own in the background. These read that queue and clear a draft you do not want. They never send one.
Archives, labels, moves and marks read. A single message acts on the one you pointed at. A bulk sweep always counts the matches, shows you the number, and waits for your yes before touching anything.
Creates and edits the standing rules alfred_ applies to new mail, like archiving a newsletter or flagging a client. You see what a rule would and would not have caught before it is saved.
Reads events from your connected calendars for a day or a range, in your timezone, with attendees and locations. Finds genuinely open slots, so a proposed time is one you are actually free for.
Creates and updates events on the calendar you choose, adds a Google Meet or Teams link, and invites people. You see exactly what will be sent, and to whom, before any invitation goes out.
Reads your task lists and adds tasks, due dates and reminders, using the same timing and quiet-hours rules as the rest of alfred_. Your own lists only, never a team workspace.
Resolves a name to the address you actually use for them, with the company and history alfred_ already holds. This is what stops a reply going to last year's address.
Searches and reads Google Drive, OneDrive and SharePoint, extracting text only and never raw file bytes. A separate permission from email: connecting alfred_ for your inbox does not grant this.
Reads the working notes alfred_ keeps about your work, and records a new one when you tell it something worth keeping. Yours alone, and visible to you in alfred_.
Shows which email and calendar accounts you have connected (up to 6) and whether each is healthy, and hands you a one-tap link to connect another or reconnect one that lost access. It cannot connect or remove an account itself; that stays a signed-in click in alfred_.
- Nothing is sent, and no invitation goes out, until you have seen it and said yes.
- Cannot delete anything: not an email, not an event, not a to-do.
- Tidying (archive, move, mark read) acts on messages you pointed at; a bulk sweep always shows you a count first and waits for your yes.
- Cannot disconnect an account. Connecting and removing accounts stays a signed-in click in alfred_ itself.
- Cannot touch a team workspace. Your own lists and accounts only.
- You choose what to allow when you sign in. Reading is the default; writing, and sending, are separate permissions you grant on purpose.
- Never sees your provider passwords or OAuth tokens. Every call runs through alfred_, as you.
- Only the accounts you connected to alfred_. Nothing else on your machine.
Access tokens expire after an hour and are refreshed quietly. Revoke the connection at any time in alfred_ under Settings, Privacy and Security. We record which tool was called and how long it took, never the query or the contents. More in Security.
If something is off
VS Code does not see the server.
The most common cause is the wrong top-level key. VS Code uses servers, where Claude and Cursor use mcpServers. Check the file, then run MCP: List Servers from the command palette.
The tools do not appear in chat.
MCP tools are available in Agent mode only. Switch the chat mode to Agent, then open the tools picker and enable alfred_.
Which email account does it search?
All of them. search_work fans out across every account connected to alfred_ and tells Copilot which account each thread came from.
Can it send email without asking me?
No. Sending and inviting always show you the message or the invitation first and wait for you to say yes, and that check is in alfred_ itself rather than something the assistant can talk its way past. If you would rather it never send at all, leave the sending permission unchecked when you sign in and it can still write drafts for you to send yourself.
Can it delete my email or cancel a meeting?
No. Nothing on this connection can delete an email, cancel an event, or remove a to-do. Those are deliberately not available, whatever you allow at sign-in. Tidying is different: if you allow it, Copilot can archive, move and label messages, and a bulk sweep always shows you a count first and waits for your yes.
How do I disconnect?
In alfred_, open Settings, then Privacy and Security, and revoke the entry under Connect AI assistants. VS Code loses access immediately. You can also delete the entry from mcp.json.