From c8433304ee972ad0d69bd4894cce5b2899326d50 Mon Sep 17 00:00:00 2001 From: Silverstar187 <133575310+Silverstar187@users.noreply.github.com> Date: Wed, 21 Oct 2026 23:38:05 +0000 Subject: [PATCH] feat(third_party): add voicehook plugin Remote MCP server https://voicehook.ai/mcp (Streamable HTTP, no key) for voice calls with coding agents. Manifest, mcp.json, logo, README, CHANGELOG, MIT license, marketplace entry and README row. Co-Authored-By: Claude Opus 5.5 --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../voicehook/.cursor-plugin/plugin.json | 33 +++++++++ third_party/voicehook/CHANGELOG.md | 8 +++ third_party/voicehook/LICENSE | 21 ++++++ third_party/voicehook/README.md | 64 ++++++++++++++++++ third_party/voicehook/assets/logo.png | Bin 0 -> 24045 bytes third_party/voicehook/mcp.json | 8 +++ 8 files changed, 140 insertions(+) create mode 100644 third_party/voicehook/.cursor-plugin/plugin.json create mode 100644 third_party/voicehook/CHANGELOG.md create mode 100644 third_party/voicehook/LICENSE create mode 100644 third_party/voicehook/README.md create mode 100644 third_party/voicehook/assets/logo.png create mode 100644 third_party/voicehook/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 13efbe20c..a6729900c 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -602,6 +602,11 @@ "name": "databricks-genie-one", "source": "third_party/databricks-genie-one", "description": "Ask Databricks Genie questions about your workspace's data in plain language." + }, + { + "name": "voicehook", + "source": "third_party/voicehook", + "description": "Talk with your coding agents by voice from your phone while they keep working." } ] } diff --git a/README.md b/README.md index 22823d7b9..49c069bc8 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `gopuff` | [Gopuff](third_party/gopuff/) | Cursor | Integrations | Shop Gopuff from Grok Bot through Gopuff's official MCP server. Sign in with your Gopuff account; Gopuff handles the sign-in, and your searches, carts, and orders go to Gopuff under that account, so any order you place is charged and delivered like a normal Gopuff order. | | `jobber` | [Jobber](third_party/jobber/) | Cursor | Integrations | Work with clients, requests, quotes, jobs, visits, and invoices. | | `databricks-genie-one` | [Databricks Genie One](third_party/databricks-genie-one/) | Cursor | Integrations | Ask Databricks Genie questions about your workspace's data in plain language. | +| `voicehook` | [voicehook](third_party/voicehook/) | voicehook.ai | Integrations | Talk with your coding agents by voice from your phone while they keep working. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/voicehook/.cursor-plugin/plugin.json b/third_party/voicehook/.cursor-plugin/plugin.json new file mode 100644 index 000000000..5246e1ed3 --- /dev/null +++ b/third_party/voicehook/.cursor-plugin/plugin.json @@ -0,0 +1,33 @@ +{ + "name": "voicehook", + "displayName": "voicehook", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Talk with your agents. Voice for your agent fleet: talk to your coding agents from your phone while they keep working.", + "author": { + "name": "voicehook.ai", + "email": "support@voicehook.ai" + }, + "homepage": "https://voicehook.ai/?utm_source=cursor-plugins&utm_medium=plugin-directory", + "repository": "https://github.com/voicehook-ai/voicehook-agent", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "voicehook", + "voice", + "voice-call", + "agents", + "multi-agent", + "mcp" + ], + "category": "integrations", + "tags": [ + "voicehook", + "voice", + "agents", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/voicehook/CHANGELOG.md b/third_party/voicehook/CHANGELOG.md new file mode 100644 index 000000000..f673f1662 --- /dev/null +++ b/third_party/voicehook/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0: initial release + +- Remote MCP server `https://voicehook.ai/mcp` (Streamable HTTP, no key). +- Logo: the voicehook mark from the voicehook-join plugin, rendered at 192×192. diff --git a/third_party/voicehook/LICENSE b/third_party/voicehook/LICENSE new file mode 100644 index 000000000..367b33930 --- /dev/null +++ b/third_party/voicehook/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 voicehook.ai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/voicehook/README.md b/third_party/voicehook/README.md new file mode 100644 index 000000000..222bb5893 --- /dev/null +++ b/third_party/voicehook/README.md @@ -0,0 +1,64 @@ +# voicehook + +Talk with your agents. Cursor plugin that connects agents to [voicehook.ai](https://voicehook.ai/?utm_source=cursor-plugins&utm_medium=plugin-directory) through voicehook's remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Voice for your agent fleet: voicehook is a voice call in the browser, on your phone or your desktop. Your agent joins the call and keeps working while you talk to it. Delta, the voice in the call, answers from the status board, activity feed and FAQ the agent keeps up to date. Questions for you land on a Decision Board you answer with a tap or by voice. Agent-native: the agent drives the call through MCP tools, nothing to install. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **voicehook**. +3. Click **Install**. + +Or run `/add-plugin voicehook` in chat. + +Then ask the agent: "Start a voicehook call with me", and open the link it gives you in a normal browser (Chrome, Safari, Firefox). Or paste an invite link from a call page (`https://voicehook.ai/r/?invite=`) and the agent joins that call. + +## MCP + +```json +{ + "mcpServers": { + "voicehook": { + "type": "http", + "url": "https://voicehook.ai/mcp" + } + } +} +``` + +No API key and no sign-in for the agent: the invite link is the permission, and `join` returns a short-lived session handle that ends with the call. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Calls | `create_call` opens a call room and returns the link for you; `join` joins a call from an invite link; `leave` | +| Conversation | `next` listens for what you say, `say` speaks through the voicebot | +| Status | `status` board, `activity` feed lines, `show` cards (text, code, link, image) on the call page | +| Decisions | `decide` puts a yes/no or A/B question on the Decision Board; the answer comes back in `next` | + +The hosted runtime is the source of truth for tool names and schemas. Agent guide: https://voicehook.ai/agent/mcp/SKILL.md + +## Before you connect + +- The person in the call needs a browser with a microphone. A free daily allowance (about 10 minutes) needs no account; after that, calls use prepaid credit on voicehook.ai. The agent side pays nothing. +- One agent per call through MCP. Several agents or sessions on one machine in one call, with a shared board and decisions across sessions: the [voicehook-agent CLI](https://github.com/voicehook-ai/voicehook-agent). +- The full plugin with the `voicehook-join` skill (call rules for the agent) also ships as a Cursor plugin in [voicehook-ai/voicehook-agent](https://github.com/voicehook-ai/voicehook-agent) (`plugins/voicehook-join/.cursor-plugin/plugin.json`). + +## Data and privacy + +The plugin talks only to `https://voicehook.ai/mcp`. What the agent sends (spoken text, board, activity, cards, decisions) and the voices in the call are processed by voicehook.ai and its subprocessors (hosting in Germany, speech recognition, language model and speech output). voicehook does not store transcripts or call audio permanently; session data is deleted at most 5 minutes after a call ends. Details: https://voicehook.ai/privacy + +## Docs + +- Website: https://voicehook.ai/?utm_source=cursor-plugins&utm_medium=plugin-directory +- MCP guide: https://voicehook.ai/docs/mcp +- Source: https://github.com/voicehook-ai/voicehook-agent +- Support: support@voicehook.ai + +Logo is voicehook's own mark, from the voicehook-join plugin. + +## License + +MIT diff --git a/third_party/voicehook/assets/logo.png b/third_party/voicehook/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..88a1604d6be1b39e1071f3412fa8d412a0336601 GIT binary patch literal 24045 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 literal 0 HcmV?d00001 diff --git a/third_party/voicehook/mcp.json b/third_party/voicehook/mcp.json new file mode 100644 index 000000000..36f458725 --- /dev/null +++ b/third_party/voicehook/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "voicehook": { + "type": "http", + "url": "https://voicehook.ai/mcp" + } + } +}