From 41f537d8770e5a0e5d83a42000a2b260ca6e540f Mon Sep 17 00:00:00 2001 From: bekservice Date: Sun, 25 Oct 2026 08:22:59 +0100 Subject: [PATCH 1/3] feat(third_party): add Famulor remote MCP plugin --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../famulor/.cursor-plugin/plugin.json | 51 ++++++++++++ third_party/famulor/CHANGELOG.md | 9 ++ third_party/famulor/LICENSE | 21 +++++ third_party/famulor/README.md | 78 ++++++++++++++++++ third_party/famulor/assets/logo.png | Bin 0 -> 10505 bytes third_party/famulor/mcp.json | 11 +++ 8 files changed, 176 insertions(+) create mode 100644 third_party/famulor/.cursor-plugin/plugin.json create mode 100644 third_party/famulor/CHANGELOG.md create mode 100644 third_party/famulor/LICENSE create mode 100644 third_party/famulor/README.md create mode 100644 third_party/famulor/assets/logo.png create mode 100644 third_party/famulor/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 82b2063e0..0437ed198 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -637,6 +637,11 @@ "name": "vanta", "source": "third_party/vanta", "description": "Query and remediate compliance tests, controls, frameworks, risks, and vulnerabilities in Vanta." + }, + { + "name": "famulor", + "source": "third_party/famulor", + "description": "Build and run AI phone assistants, calls, campaigns, and WhatsApp agents." } ] } diff --git a/README.md b/README.md index 627b76c9f..1d928acbb 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `feishu` | [Feishu](third_party/feishu/) | Cursor | Integrations | Search, create, and update Feishu docs, and read Feishu messages and groups. | | `framer` | [Framer](third_party/framer/) | Cursor | Integrations | Design, build, and edit your Framer sites, pages, and CMS content. | | `vanta` | [Vanta](third_party/vanta/) | Cursor | Integrations | Query and remediate compliance tests, controls, frameworks, risks, and vulnerabilities in Vanta. | +| `famulor` | [Famulor](third_party/famulor/) | Cursor | Integrations | Build and run AI phone assistants, calls, campaigns, and WhatsApp agents. | 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/famulor/.cursor-plugin/plugin.json b/third_party/famulor/.cursor-plugin/plugin.json new file mode 100644 index 000000000..9b4585780 --- /dev/null +++ b/third_party/famulor/.cursor-plugin/plugin.json @@ -0,0 +1,51 @@ +{ + "name": "famulor", + "displayName": "Famulor", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Build and run AI phone assistants, calls, campaigns, and WhatsApp agents.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://www.famulor.io", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "famulor", + "voice ai", + "voice agent", + "phone assistant", + "ai receptionist", + "calls", + "campaigns", + "whatsapp", + "webchat", + "knowledge base", + "mcp" + ], + "category": "integrations", + "tags": [ + "famulor", + "voice-ai", + "calls", + "mcp" + ], + "variables": { + "type": "object", + "properties": { + "FAMULOR_API_KEY": { + "type": "string", + "title": "Famulor API key", + "description": "Workspace API key (starts with fam_) from app.famulor.io under Settings → API & MCP → Create a new API key." + } + }, + "required": [ + "FAMULOR_API_KEY" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/famulor/CHANGELOG.md b/third_party/famulor/CHANGELOG.md new file mode 100644 index 000000000..b5c8816aa --- /dev/null +++ b/third_party/famulor/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `famulor` MCP server pointing at Famulor's hosted Streamable HTTP endpoint (`https://app.famulor.io/mcp`). +- Auth uses a Famulor workspace API key supplied by the user as a Bearer token (`Authorization: Bearer ${FAMULOR_API_KEY}`). +- Logo: Famulor's official cyan toggle mark, from `https://www.famulor.io/images/famulor-fav.png`, resized to 192×192. diff --git a/third_party/famulor/LICENSE b/third_party/famulor/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/famulor/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +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/famulor/README.md b/third_party/famulor/README.md new file mode 100644 index 000000000..424f212b8 --- /dev/null +++ b/third_party/famulor/README.md @@ -0,0 +1,78 @@ +# Famulor + +Cursor plugin that connects agents to [Famulor](https://www.famulor.io) through Famulor's hosted [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Famulor builds AI assistants for phone calls, websites, and messaging. Build and review voice assistants, start and analyze calls, run outbound campaigns, manage knowledge bases, and work with WhatsApp and webchat conversations in a Famulor workspace. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Famulor**. +3. Click **Install**, then set your Famulor API key (below). + +Or run `/add-plugin famulor` in chat. + +## MCP + +```json +{ + "mcpServers": { + "famulor": { + "type": "http", + "url": "https://app.famulor.io/mcp", + "headers": { + "Authorization": "Bearer ${FAMULOR_API_KEY}" + } + } + } +} +``` + +Auth is a Famulor workspace **API key** sent as a Bearer token. Create one in [app.famulor.io](https://app.famulor.io) under **Settings → API & MCP → Create a new API key**, then set it in **Dashboard → Plugins → Configure**. Keys start with `fam_`. Do not commit the key. + +Famulor documents the same header for manual and server-to-server MCP connections: `Authorization: Bearer fam_...`. See https://docs.famulor.io/mcp/overview. + +## Before you connect + +You need a Famulor account on a plan that includes **Connect AI / MCP**. Tool calls run in the workspace the key belongs to, with that key's scopes and your workspace role. + +## What agents can do + +The server groups its tools into toolsets. The tools available depend on your plan, role, and the key's scopes. + +| Toolset | Capabilities | +| --- | --- | +| `assistants` | Assistants, versions, voices, reusable tools, bookings, and simulations | +| `calls` | Calls, conversation history, transcripts, and permitted call actions | +| `campaigns` | Campaigns, audiences, leads, suppression, and CRM sync | +| `messaging` | WhatsApp, webchat, and email connectors, templates, and conversations | +| `telephony` | Phone numbers, SIP trunks, and caller-ID verification | +| `knowledge` | Knowledge bases, documents, and website imports | +| `dashboards` | Analytics dashboards and widgets | +| `automations` | Automations, connections, and run history | +| `billing` | Balance, usage, and transactions | +| `settings` | Workspace settings, domains, and retention | +| `tasks` | Long-running exports, crawls, simulations, and campaign preparation | + +Call `list_mcp_toolsets` to see the groups available to your key. The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- The server can write as well as read, including starting outbound calls and campaigns that reach real phone numbers and use workspace balance. Use a key with the narrowest scopes you need, and test on a non-production workspace first. +- To expose fewer tools, add `?toolsets=assistants,calls` to the URL or send an `X-MCP-Toolsets` header. Filters narrow a key's access; they cannot add permissions. +- Requests are rate-limited to 120 per minute per credential and 600 per minute per workspace. +- White-label workspaces use their own domain: replace `app.famulor.io` with that domain. +- Do not commit `FAMULOR_API_KEY`. + +## Docs + +- Famulor: https://www.famulor.io +- Connect an AI client: https://docs.famulor.io/mcp/overview +- Tools and scopes: https://docs.famulor.io/mcp/tools-and-scopes +- Server URL: https://app.famulor.io/mcp + +Logo is Famulor's official cyan toggle mark, from `https://www.famulor.io/images/famulor-fav.png`. + +## License + +MIT diff --git a/third_party/famulor/assets/logo.png b/third_party/famulor/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..83f4f52d99d632baf55a8dd230b0fd9b49a99218 GIT binary patch literal 10505 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 LNkvXXu0mjfGe6ps literal 0 HcmV?d00001 diff --git a/third_party/famulor/mcp.json b/third_party/famulor/mcp.json new file mode 100644 index 000000000..36eabc32b --- /dev/null +++ b/third_party/famulor/mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "famulor": { + "type": "http", + "url": "https://app.famulor.io/mcp", + "headers": { + "Authorization": "Bearer ${FAMULOR_API_KEY}" + } + } + } +} From ff9571e42b497d3c68c165bbd69b9da1f9e72754 Mon Sep 17 00:00:00 2001 From: bekservice Date: Sun, 25 Oct 2026 13:15:32 +0100 Subject: [PATCH 2/3] chore(famulor): set plugin author to Famulor --- README.md | 2 +- third_party/famulor/.cursor-plugin/plugin.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1d928acbb..6962d4608 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `feishu` | [Feishu](third_party/feishu/) | Cursor | Integrations | Search, create, and update Feishu docs, and read Feishu messages and groups. | | `framer` | [Framer](third_party/framer/) | Cursor | Integrations | Design, build, and edit your Framer sites, pages, and CMS content. | | `vanta` | [Vanta](third_party/vanta/) | Cursor | Integrations | Query and remediate compliance tests, controls, frameworks, risks, and vulnerabilities in Vanta. | -| `famulor` | [Famulor](third_party/famulor/) | Cursor | Integrations | Build and run AI phone assistants, calls, campaigns, and WhatsApp agents. | +| `famulor` | [Famulor](third_party/famulor/) | Famulor | Integrations | Build and run AI phone assistants, calls, campaigns, and WhatsApp agents. | 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/famulor/.cursor-plugin/plugin.json b/third_party/famulor/.cursor-plugin/plugin.json index 9b4585780..8c1603eef 100644 --- a/third_party/famulor/.cursor-plugin/plugin.json +++ b/third_party/famulor/.cursor-plugin/plugin.json @@ -7,8 +7,8 @@ }, "description": "Build and run AI phone assistants, calls, campaigns, and WhatsApp agents.", "author": { - "name": "Cursor", - "email": "plugins@cursor.com" + "name": "Famulor", + "email": "sales@famulor.io" }, "homepage": "https://www.famulor.io", "repository": "https://github.com/cursor/plugins", From 0fb17882de68dc7ed2294327a93c2bd2f1bdcd21 Mon Sep 17 00:00:00 2001 From: bekservice Date: Thu, 29 Oct 2026 05:13:43 +0000 Subject: [PATCH 3/3] chore(famulor): match recent credential variable schema Close the variables object and mark the API key write-only, following recently merged credential plugins. Author stays Famulor. Co-authored-by: BEK Service GmbH --- third_party/famulor/.cursor-plugin/plugin.json | 13 ++++++++----- third_party/famulor/CHANGELOG.md | 4 +++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/third_party/famulor/.cursor-plugin/plugin.json b/third_party/famulor/.cursor-plugin/plugin.json index 8c1603eef..00165b0ee 100644 --- a/third_party/famulor/.cursor-plugin/plugin.json +++ b/third_party/famulor/.cursor-plugin/plugin.json @@ -36,16 +36,19 @@ ], "variables": { "type": "object", + "additionalProperties": false, + "required": [ + "FAMULOR_API_KEY" + ], "properties": { "FAMULOR_API_KEY": { "type": "string", "title": "Famulor API key", - "description": "Workspace API key (starts with fam_) from app.famulor.io under Settings → API & MCP → Create a new API key." + "description": "Workspace API key (starts with fam_) from app.famulor.io under Settings → API & MCP → Create a new API key.", + "writeOnly": true, + "format": "password" } - }, - "required": [ - "FAMULOR_API_KEY" - ] + } }, "mcpServers": "./mcp.json" } diff --git a/third_party/famulor/CHANGELOG.md b/third_party/famulor/CHANGELOG.md index b5c8816aa..c658d42ae 100644 --- a/third_party/famulor/CHANGELOG.md +++ b/third_party/famulor/CHANGELOG.md @@ -6,4 +6,6 @@ All notable changes to this plugin will be documented here. - Added the `famulor` MCP server pointing at Famulor's hosted Streamable HTTP endpoint (`https://app.famulor.io/mcp`). - Auth uses a Famulor workspace API key supplied by the user as a Bearer token (`Authorization: Bearer ${FAMULOR_API_KEY}`). -- Logo: Famulor's official cyan toggle mark, from `https://www.famulor.io/images/famulor-fav.png`, resized to 192×192. +- `FAMULOR_API_KEY` is required, write-only, and the only variable (`additionalProperties: false`). +- Listed in Cursor (`3.13.0`). +- Logo: Famulor's official cyan toggle mark, from `https://www.famulor.io/images/famulor-fav.png`, on a 192×192 tile.