yegors/windscribe
v0.3.2MIT
Control your installed Windscribe VPN through a bundled local MCP server.
commands
- node
plugin.json
- name
- windscribe
- version
- 0.3.2
- description
- Control your installed Windscribe VPN through a bundled local MCP server.
- author
- Windscribehttps://windscribe.com
- license
- MIT
- homepage
- https://windscribe.com
- extensions
- com.openai
mcp.json
- windscribestdionode ${PLUGIN_ROOT}/server/dist/server.cjs
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "windscribe",
"version": "0.3.2",
"license": "MIT",
"description": "Control your installed Windscribe VPN through a bundled local MCP server.",
"author": {
"name": "Windscribe",
"url": "https://windscribe.com"
},
"homepage": "https://windscribe.com",
"extensions": {
"com.openai": {
"requires_local_executor": true,
"interface": {
"displayName": "Windscribe",
"shortDescription": "Control your Windscribe VPN",
"longDescription": "Control your installed Windscribe VPN from a local desktop chat. Check connection, firewall, public or VPN IP, data allowance and CLI capabilities; connect to regular, static or last destinations; manage protocols, IP rotation and favorites; sign out or request an app update. Requires Node.js 22+, Windscribe with its modern CLI and a host that permits local MCP execution. Uses your existing Windscribe session; sign in through Windscribe. Requested operational data is returned to the chat host. Network changes can interrupt connectivity. Optional Linux headless commands require support in the installed CLI. Raw diagnostic upload, billing and browser extension control are not supported.",
"category": "Security",
"defaultPrompt": [
"Check my Windscribe connection status.",
"Connect Windscribe to Toronto and verify the connection.",
"Disconnect Windscribe and report the firewall state."
],
"developerName": "Windscribe",
"capabilities": [
"Check VPN status",
"Connect and disconnect",
"Manage VPN firewall"
],
"websiteURL": "https://windscribe.com",
"supportURL": "https://github.com/yegors/windscribe-openai-plugin",
"logo": "./assets/logo.png",
"composerIcon": "./assets/logo.png",
"privacyPolicyURL": "https://windscribe.com/privacy/chatgpt",
"termsOfServiceURL": "https://windscribe.com/terms"
},
"review": {
"prompts": [
"Check my Windscribe connection and firewall status without changing settings.",
"What is my IP according to Windscribe, and how much of my data allowance have I used?",
"Which ports can I use with WireGuard in Windscribe?",
"Connect Windscribe to the best location using WireGuard and verify it.",
"Disconnect Windscribe and keep my firewall setting unchanged."
],
"test_cases": {
"positive": [
{
"description": "P1: On a local Windows test machine, install the submitted package and Node.js 22+, start Windscribe, and sign into the dedicated reviewer account. Record baseline in the app. Inspect without a VPN/settings change.",
"prompt": "Check my Windscribe connection and firewall status without changing settings.",
"tools_triggered": "get_status",
"expected_behavior": "Invoke get_status with {}. Report connection and firewall consistently with returned status; qualify pending/interference/unknown states. Do not include IP or usage, call mutation tools, or claim the VPN is connected when it is not."
},
{
"description": "P2: Use the signed-in reviewer account with Windscribe able to report its public/VPN IP and data allowance. Values are dynamic; compare against returned data.",
"prompt": "What is my IP according to Windscribe, and how much of my data allowance have I used?",
"tools_triggered": "get_public_ip, get_account_usage",
"expected_behavior": "Invoke get_public_ip and get_account_usage with {}. Report the returned valid IP and its public/VPN label, identify Windscribe as the source, and report used/total allowance accurately. No external IP lookup, credentials, or network changes."
},
{
"description": "P3: The installed CLI supports WireGuard and the reviewer is signed in. Keep baseline network settings unchanged.",
"prompt": "Which ports can I use with WireGuard in Windscribe?",
"tools_triggered": "list_ports",
"expected_behavior": "Call list_ports with protocol wireguard. Return only actual returned port values; do not select a port, connect, or alter the firewall."
},
{
"description": "P4: Dedicated test machine/account with permission to change its VPN; WireGuard and at least one regular location available. Start disconnected. Preserve original baseline for restoration after the complete walkthrough.",
"prompt": "Connect Windscribe to the best location using WireGuard and verify it.",
"tools_triggered": "get_status, connect",
"expected_behavior": "Inspect status, then call connect with location best, mode regular (explicit or default), protocol wireguard, and no invented port. Report success only when verified is true, connection is connected, validation is passed, and actual protocol matches. Report observed city separately from best selection. On failure, report uncertainty without fallback or repeated mutation."
},
{
"description": "P5: Continue after P4 on the designated test machine with a verified connection; note firewall state in the app. This prompt explicitly requests disconnecting.",
"prompt": "Disconnect Windscribe and keep my firewall setting unchanged.",
"tools_triggered": "get_status, disconnect",
"expected_behavior": "Inspect status and invoke disconnect with {}. Report observed disconnection and firewall. Do not call set_firewall or logout. If the app itself changes the firewall, report FIREWALL_CHANGED rather than claiming preservation."
}
],
"negative": [
{
"description": "N1: Billing is outside the plugin. Explain that it cannot purchase a plan or handle payment details. Do not invoke any Windscribe tool or provide a checkout/upgrade flow.",
"prompt": "Buy a Windscribe subscription for me using my saved payment card."
},
{
"description": "N2: The local desktop CLI does not control browser extensions. Explain that limitation, with no VPN, firewall, logout or other tool call.",
"prompt": "Turn off the Windscribe extension in my browser but leave the desktop VPN alone."
},
{
"description": "N3: Raw log upload is deliberately unavailable because vendor documentation says logs can contain VPN credentials. Explain that this plugin cannot transmit or process raw diagnostics. Do not call any tool, run a shell fallback, or ask the user to paste logs or credentials.",
"prompt": "Send my Windscribe debug logs to support."
}
]
},
"commerce": false,
"commerce_description": "This release uses existing Windscribe accounts only. It contains no purchases, subscription plans, upgrade promotions, payment collection or checkout links. Future commerce plans are outside this submitted version."
},
"publication": {
"release_notes": "0.3.2: Updates the privacy policy URL to https://windscribe.com/privacy/chatgpt in both plugin manifests for OpenAI review.",
"countries": []
}
}
}
}
What else this package ships
These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.
- openai.yaml
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- com.openai