---
title: MCP server
description: Connect Claude, Cursor, or another MCP client to the Feeblo Public API. Every API operation is one MCP tool, authenticated with the same workspace API key.
---

Feeblo serves the [Public API](/developers/public-api) over the Model Context Protocol (MCP), so an MCP client can read and manage a workspace through tools instead of HTTP calls.

| Setting | Value |
| --- | --- |
| Endpoint | `https://api.feeblo.com/mcp` |
| Transport | Streamable HTTP |
| Authentication | The Public API key, in the `x-api-key` header |
| Protocol revisions | `2026-07-28`, `2025-11-25`, `2025-06-18`, `2025-03-26`, `2024-11-05` |
| Server card | `https://api.feeblo.com/.well-known/mcp.json` |
| Agent authentication guide | [feeblo.com/auth.md](https://feeblo.com/auth.md) |

> **This is the Public API MCP server.** The documentation you are reading also has its own MCP server at `https://docs.feeblo.com/mcp`, which searches and reads these pages. It exposes no workspace data and needs no key.

## Tools

Every Public API operation is one tool, named after the operation: `listPosts`, `createPost`, `listChangelog`, `createEndUser`, and so on. A tool's input is the endpoint's input as JSON Schema, and its result carries the same DTO as the HTTP response.

Tool hints — read-only, destructive, idempotent, open world — come from the same annotations the HTTP endpoint declares. A client can use them to decide what needs approval.

## Authentication

Create a key in the dashboard under **Settings → Developers**, then send it on every request:

```json
{
  "mcpServers": {
    "feeblo": {
      "type": "http",
      "url": "https://api.feeblo.com/mcp",
      "headers": {
        "x-api-key": "fbk_..."
      }
    }
  }
}
```

Client configuration formats differ. For a client that asks for a name, URL, and headers, the values above are all it needs. For a client that only supports stdio, run a local streamable-HTTP bridge and give the bridge the same URL and header.

The key belongs to one workspace. No tool parameter can change that. The plan gate, rate limit, and scopes are the same as `/api/v1`:

- A key that lacks a scope still sees the tool. Calling it answers a tool error that names the missing scope, for example `This API key is missing the posts.create scope.`.
- A workspace plan without the Public API answers `PLAN_REQUIRES_UPGRADE`.
- The per-key budget is 300 requests per minute, shared with HTTP calls.

Requests carrying an `Origin` header are refused. This is deliberate: the transport does not enable cross-origin access, so a browser-based client must go through a same-origin proxy. Desktop and server integrations send no `Origin` and are unaffected.

## What to ask for

Reading is safe. Writing changes a real workspace, and publishing a changelog entry emails every subscriber. Show the person the exact tool call and the affected records, then wait for approval before a write.

Useful read tools:

| Job                             | Tool                           |
| ------------------------------- | ------------------------------ |
| Find a board to file a post on  | `listBoards`                   |
| See what customers ask for      | `listPosts`                    |
| Read one discussion             | `getPost`, then `listComments` |
| Check what shipped              | `listChangelog`                |
| Look up a customer record       | `listEndUsers`                 |
| See available statuses and tags | `listStatuses`, `listTags`     |

## Discovery

MCP clients and agents can find the endpoint without this page:

- `https://api.feeblo.com/.well-known/mcp.json` — server card
- `https://api.feeblo.com/.well-known/api-catalog` — RFC 9727 linkset for the HTTP API and MCP
- `https://feeblo.com/.well-known/api-catalog` — the same discovery from the marketing origin
- `https://feeblo.com/auth.md` and `https://api.feeblo.com/auth.md` — authentication instructions written for agents
- `https://docs.feeblo.com/developers/mcp.md` — this page as Markdown
