Send SMS, MMS, manage contact lists, and configure webhooks using the Kudosity messaging platform — directly from GitHub Copilot in VS Code.
This repo turns GitHub Copilot in VS Code into a Kudosity messaging assistant. It ships:
- An MCP server registration (
.vscode/mcp.json) that gives Copilot access to the Kudosity API documentation via the hosted MCP server athttps://developers.kudosity.com/mcp. - A Copilot instructions file (
.github/copilot-instructions.md) that teaches Copilot the API routing rules, authentication model, and behavior guidelines. - Four skill references (
skills/) for the four supported operations: send SMS, send MMS, create lists, configure webhooks. - A kudosity-assistant agent prompt (
agents/kudosity-assistant.md) that coordinates multi-step messaging operations.
All API operations are executed locally on your machine by Copilot's Agent Mode using curl with your own API credentials. The MCP server is used for documentation lookup only — no message data or credentials are sent through it.
| Skill | Description |
|---|---|
send-sms |
Send SMS to individuals (V2 API) or contact lists / multiple numbers (V1 API) |
send-mms |
Send multimedia messages with images, GIFs, video, or audio (V2 API) |
create-list |
Create contact lists and add recipients (V1 API) |
setup-webhook |
Configure delivery status notifications, inbound messages, and more (V2 API) |
- Kudosity account — Sign up for your free account
- API credentials — Found in your account under Developers → API Settings
- VS Code with the GitHub Copilot extension
- Copilot Agent Mode enabled — required to execute
curlcommands. In VS Code: open Copilot Chat → switch the mode dropdown from "Ask" to "Agent". (Available on paid Copilot tiers that include Agent Mode.)
git clone https://github.com/kudosity/kudosity-copilot-extension.git
cd kudosity-copilot-extension
code .VS Code automatically picks up .vscode/mcp.json and .github/copilot-instructions.md for the workspace. Copilot is now connected to the Kudosity MCP server and knows the routing rules.
If you want @kudosity-style messaging help in every workspace (not just this repo), merge the contents of configs/vscode-user-settings.json into your VS Code user settings.json:
- Open the command palette (Cmd+Shift+P / Ctrl+Shift+P).
- Run "Preferences: Open User Settings (JSON)".
- Merge the
mcp.servers.kudosityblock from the snippet. - Reload VS Code.
You can also drop a copy of .github/copilot-instructions.md into any workspace you want Copilot to be Kudosity-aware in.
Set the credentials as environment variables in your shell profile (~/.zshrc or ~/.bashrc):
export KUDOSITY_API_KEY="your_api_key"
export KUDOSITY_API_SECRET="your_api_secret"Reload your shell (source ~/.zshrc) and restart VS Code so the new env vars are picked up by Copilot's terminal.
A template is provided at configs/env.example.
In Copilot Chat (Agent Mode), ask:
"Check that my Kudosity credentials are configured and show my account balance."
Copilot will run echo "${KUDOSITY_API_KEY:0:6}…" to confirm the key is set, then hit the V1 /get-balance.json endpoint to validate auth end-to-end.
All examples below assume Copilot Chat is open in Agent Mode.
"Create a contact list called 'March Campaign' with fields for email and postcode, then add John Doe (0491570156) and Jane Smith (0435795809)."
"Send an SMS to 0491570156 from 61481074185 saying 'Your order has shipped!'"
"Send an SMS to my 'March Campaign' list saying 'Sale starts tomorrow!'"
"Send an MMS to 0435795809 with the image at https://example.com/product.jpg, subject 'New Arrival'"
"Set up a webhook at https://myapp.com/sms-status to receive SMS delivery status and inbound messages."
| Operation | API Version | Auth Method |
|---|---|---|
| Create list | V1 | Basic Auth |
| Add contact to list | V1 | Basic Auth |
| Send SMS (single recipient) | V2 | x-api-key |
| Send SMS (to list / multiple) | V1 | Basic Auth |
| Send MMS | V2 | x-api-key |
| Create/manage webhooks | V2 | x-api-key |
The full API specifications are available as OpenAPI documents:
- V1:
api_documentation.yml— Lists, contacts, bulk SMS - V2:
public-openapi.yaml— Single SMS, MMS, webhooks
This extension has two distinct components with different trust boundaries.
The extension connects to the public Kudosity MCP server at developers.kudosity.com/mcp. This server provides API documentation and endpoint metadata only. It does not execute API operations, receive message content, or have access to your credentials.
MCP tools surfaced to Copilot:
list-specs,list-endpoints,get-endpoint,search-endpoints— browse and search API documentationroute-kudosity-operations— returns which API version to use for a given operation
The MCP server also exposes an
execute-requesttool. This extension deliberately does not use it — execution happens locally viacurlto keep credentials on your machine.
All actual API operations (sending messages, creating lists, configuring webhooks) are executed locally by Copilot's Agent Mode on your machine using curl commands. API calls go directly from your machine to the Kudosity API servers:
- V1 API (
api.transmitsms.com) — Basic Auth with-uflag - V2 API (
api.transmitmessage.com) —x-api-keyheader
Your credentials are never sent to the MCP server or to GitHub Copilot's backend. They are read by the local shell when Copilot's terminal tool runs curl.
- Credentials live as plain shell environment variables in your shell profile. They are not embedded in any extension file, sent to GitHub Copilot, or transmitted to any remote service other than the Kudosity API during authenticated requests. (VS Code has no keychain integration for arbitrary env vars — same precedent as the Claude Code plugin.)
- API calls are executed locally by Copilot Agent Mode using
curl. Requests go directly from your machine to the Kudosity API — they do not pass through the MCP server or any intermediary. - MCP server access is read-only — it serves API documentation and endpoint metadata only. No credentials, message content, or user data are sent to it.
- No telemetry or analytics are collected by this extension.
- Claude Code:
kudosity-claude-sms-plugin - Gemini CLI:
gemini-kudosity-sms-extension - GitHub Actions (SMS step for CI):
kudosity-sms-action
You're not in Agent Mode. Open Copilot Chat, look for the mode dropdown at the bottom of the chat input, and switch from Ask to Agent.
Check the MCP indicator in the Copilot Chat panel. If kudosity isn't listed:
- Reload VS Code (Cmd+Shift+P → "Developer: Reload Window").
- Confirm
.vscode/mcp.jsonexists at the workspace root (or that the user-level setting is merged correctly).
Your env vars aren't set in the shell that Copilot's terminal uses. After editing ~/.zshrc, restart VS Code so it picks up the new environment.
├── README.md # This file
├── LICENSE # MIT
├── CHANGELOG.md # Release notes
├── .vscode/mcp.json # Workspace MCP config for VS Code Copilot
├── .github/copilot-instructions.md # Persistent Copilot context
├── configs/
│ ├── vscode-user-settings.json # Snippet for user-level install
│ └── env.example # Credentials template
├── skills/
│ ├── create-list/SKILL.md # Contact list management
│ ├── send-sms/SKILL.md # SMS sending
│ ├── send-mms/SKILL.md # MMS sending
│ └── setup-webhook/SKILL.md # Webhook configuration
└── agents/
└── kudosity-assistant.md # Specialized messaging assistant prompt
- API Documentation: developers.kudosity.com
- MCP Server: developers.kudosity.com/mcp
- V1 API Spec (OpenAPI): api_documentation.yml
- V2 API Spec (OpenAPI): public-openapi.yaml
- Kudosity Support: kudosity.com
MIT — see LICENSE