# YaniFend MCP Server Manage your YaniFend feedback questionary and read collected answers directly from Claude, ChatGPT or Grok via the Model Context Protocol. YaniFend is a drop-in feedback widget that lets visitors leave structured feedback on **any** website — a single script tag, no framework required (custom sites, SPAs, WordPress, and more). This MCP server lets an LLM client work with the YaniFend backoffice on behalf of a logged-in site owner — list personages, manage questions, and pull in collected answers — without leaving the chat. [![skippedaga/yanifend-mcp MCP server](https://glama.ai/mcp/servers/skippedaga/yanifend-mcp/badges/score.svg)](https://glama.ai/mcp/servers/skippedaga/yanifend-mcp) ## Recommended: hosted endpoint ``` https://app.yanifend.com/mcp ``` Streamable HTTP transport, OAuth 2.1 (PKCE + RFC 7591 Dynamic Client Registration). No pre-registration — Claude, ChatGPT and Grok register themselves on first connect, then prompt you to log in to YaniFend (Google / GitHub / Facebook / LinkedIn / email). > **Supported clients:** connecting to the hosted endpoint directly works from **Claude** (claude.ai and the Claude apps), **ChatGPT** and **Grok**. Other MCP clients connecting directly — Claude Code, Cursor and any client whose sign-in returns to a localhost address — are refused at sign-in and are not supported yet. ### Claude (claude.ai and the Claude apps) Add a custom connector: - **Name:** YaniFend - **URL:** `https://app.yanifend.com/mcp` ### ChatGPT Works on the free personal plan. 1. In ChatGPT, open **Settings → Security and login** and turn **Developer mode** on. 2. Open **Plugins**, click **+**, then **Create app → Create MCP App**. 3. Name it **YaniFend**, set **Server URL** to `https://app.yanifend.com/mcp`, and choose **OAuth** for authentication. ChatGPT finds the sign-in settings itself, so leave the advanced settings as they are. 4. Tick **I understand and want to continue**, then click **Create**. 5. Click **Sign in with YaniFend**, sign in the way you normally do, and approve the request. 6. Back in **Plugins**, open **YaniFend** and click **Refresh** to load its tools. ### Grok 1. In Grok, open **Plugins → New Connector → Custom**. 2. Name it **YaniFend**, set **Server URL** to `https://app.yanifend.com/mcp`, and click **Add Connector**. There is nothing else to type: Grok registers itself. 3. A YaniFend sign-in page opens in your browser. Sign in the way you normally do and approve the request. 4. Start a new chat and ask about your forms. ### Claude Code and other MCP clients Direct connections from Claude Code, Cursor and other clients whose sign-in returns to a localhost address aren't supported yet: their sign-in callbacks are refused, so the connection can't complete. Other assistants haven't been tested. Use Claude, ChatGPT or Grok for now. ## Alternative: desktop extension / local stdio proxy (this repo) This repository ships a stdio MCP server that proxies to the hosted endpoint. Configure it with your YaniFend account email + password (via the desktop-extension settings, or the `YANIFEND_EMAIL` / `YANIFEND_PASSWORD` env vars) and it signs in over HTTPS and forwards every tool call to `https://app.yanifend.com/mcp` — same 33 tools, same schemas and annotations, strictly scoped to your own account. Without credentials it still serves the tool catalog for registry introspection and returns a configuration hint on any call. This is a separate sign-in path from the hosted connector above: it uses your YaniFend email and password, not the connector's OAuth sign-in, so the supported-clients note above doesn't describe it. ```sh npx -y yanifend-mcp # or docker build -t yanifend-mcp . && docker run --rm -i yanifend-mcp ``` As a **Claude Desktop extension**: install the `.mcpb` bundle (built with `npx @anthropic-ai/mcpb pack`), then enter your YaniFend email and password in the extension settings. The password is stored by Claude Desktop's OS keychain and is only ever sent to `app.yanifend.com`. ## Tools **Personages & integration** | Tool | What it does | |---|---| | `list_personages` | List the feedback personages on the connected YaniFend site | | `create_personage` | Create a new personage = a new questionary + character + embeddable API key (plan-limited) | | `get_company_profile` | Read company profile + plan limits (personages used / allowed) | | `get_allowed_domains` | Read the widget's allowed domains (CORS) + how to add one | | `list_integration_keys` | API key + ready-to-paste embed snippet for every personage | | `get_embed_snippet` | Embed snippet (key + `