Overview
How VS Code and Courier fit together
VS Code is Microsoft's code editor; its chat panel runs an agent with MCP support built in. Add Courier Skills and it builds notifications the way an experienced Courier engineer would. Courier delivers them and shows you what happened.
The skill handles the building. When you want to test against your own account without leaving the editor, add the hosted MCP server. VS Code's .vscode/mcp.json prompts for the key and keeps it out of the repo; prefix a prompt with # to call a Courier tool directly.
You'll need a Courier account. For the MCP server, grab an API key; the test environment is the natural place to start.
What you can build
What you get with VS Code + Courier
Courier's playbook, built in
One install. VS Code pulls in only the guide a task needs and writes code that follows that channel's rules: OTP expiry, fallback order, idempotency keys, rate limits.
Templates with fallback routing
Ask for a password-reset flow, SMS first with email fallback, and you get the template and the routing in your repo from one prompt.
An in-app inbox in your app
Drop the Inbox component into a React or Next.js app, with the user's JWT issued server-side. The skill covers the auth and rendering details so you don't have to look them up.
Journeys with delays and branches
Build a multi-step onboarding journey with a two-day delay between steps, then publish it and run it for a test user.
Let users choose what they get
Create preference topics, publish them, and wire your templates to honor what each user picked.
Test and prototype over MCP
Add the hosted server and VS Code can publish to your test workspace, send you a test, and read back the delivery events. 144 tools, one config block.
Sample prompts
Ask VS Code to build any of these
Install Courier Skills first.
npx skills add trycourier/courier-skills
Then ask VS Code to run any of these prompts.
Add password-reset notifications to this Express app with Courier. Send a 6-digit code by SMS first and fall back to email if SMS fails, expire it after 10 minutes, and make sure a retried request never sends a second code.
Add an in-app notification inbox to this Next.js app with Courier. Put it in the header, wire up the auth, and send a test notification so I can see it show up.
Build a three-step onboarding journey in Courier: a welcome email on signup, a setup-checklist email two days later, and a final nudge a week in that is skipped if the user has already finished setup.
Add a Product updates preference topic that users can opt out of, wire it into our existing settings page, and make sure every onboarding template respects it.
Create a reusable Courier routing strategy that tries push first and falls back to email, then apply it to our order-shipped and delivery-delayed templates so they share one policy.
Stop sending one email per comment. Batch comment notifications into a single daily digest per user with Courier, with each comment listed and a link back to the thread.
A customer says they never got their order confirmation. Pull the delivery history for their last three Courier sends, tell me which channel failed and why, and resend the confirmation if the provider error was transient.
Pull the last 30 days of Courier metrics for our onboarding templates: sends, delivery rate, opens, and clicks per template, per channel. Flag any template whose delivery rate is under 95% and tell me what changed.
Setup
Set up VS Code with Courier
Two steps to start building. Two more if you want to test against your account without leaving the editor.
npx skills add trycourier/courier-skills
Add password-reset notifications to this app with Courier: SMS first, email fallback
{
"inputs": [
{
"type": "promptString",
"id": "courier-api-key",
"description": "API key for Courier service",
"password": true
}
],
"servers": {
"courier": {
"url": "https://mcp.courier.com",
"type": "http",
"headers": { "api_key": "${input:courier-api-key}" }
}
}
}Publish the password-reset template and send me a test
FAQ
Frequently asked questions
What's in Courier Skills?
About 40 short guides, plus a routing file that points VS Code at the one or two that matter for the task at hand. They cover seven channels, transactional and growth patterns, routing, reliability, and Inbox. It's plain Markdown on the open agent-skills convention, so the same skill works in any tool that reads a SKILL.md.
Do I need the MCP server?
Not for building. The skill is enough for VS Code to write templates, routing, journeys, and Inbox code in your repo. Add the MCP server when you want to test against your Courier account from the editor: publish to your test workspace, send yourself a test, read the delivery events.
What can VS Code do through the Courier MCP server?
Everything the API does: 144 tools to create and publish templates, define routing strategies, build and run journeys, set up preference topics and brands, manage users and lists, send test messages, and read message logs. It's hosted and authenticates with your API key in a header, so there's nothing to run locally.
How do I target a Courier tool in VS Code chat?
Prefix the prompt with #. For example, #get_user_profile_by_id example_user_id calls that tool directly. The inputs block in mcp.json means VS Code asks for your API key the first time and never writes it into the repo.
Every Courier tool call returns 403. What's wrong?
Almost always the API key: it's wrong, or the header isn't named api_key. The MCP handshake is anonymous, so the server looks connected even with a bad key; the first tool call is where it fails, with 403 Invalid or missing authentication credentials. Re-copy the test-environment key from app.courier.com/settings/api-keys and check the header name.
The server is configured but no Courier tools show up in VS Code
Start the server: open the chat window, click the gear icon, choose MCP Servers, and start courier. The inputs block prompts for your API key the first time. Then prefix a prompt with # to call a Courier tool directly.
Is it safe to let it work against my account?
Yes. Every Courier workspace has separate test and production environments, each with its own API key. Build and experiment with the test key, then switch to the production key when you're ready to ship. The agent works the same way in both environments.
How is this different from the Claude and ChatGPT integrations?
Those pages are about AI assistants: Claude the model inside Courier (the AI agent node and AI Translation) and connecting a ChatGPT agent to Courier. This one is about VS Code, the coding tool, building your notification system in your codebase with Courier Skills.
More