Connect Claude or ChatGPT to your reviews
Plug Claude, ChatGPT, Le Chat or Claude Code into your reviews, statistics and private feedback via the API's MCP server: one address to paste, no key to copy.
API documentationNo-code recipes · AI assistant (MCP)
What you get
“What are my customers saying about my desserts this month?” Your AI assistant looks for the answer in your reviews, with no export and no copy-paste: it lists the reviews of the period, reads them and sums them up for you.
The link goes through the API's MCP server, at https://api.mabellenote.com/v1/mcp. MCP (Model Context Protocol) is an open protocol that lets an AI assistant call tools. The AI assistant page presents the use cases; this guide details the connection.
Two ways to connect:
- With OAuth, recommended: you paste the server address in the assistant, a Ma Belle Note window opens, you choose the account and the permissions, and you are done. No key to copy. This is how claude.ai, ChatGPT, Le Chat, Claude Code, Cursor and any MCP client that supports OAuth connect.
- With an API key, advanced mode: for a server, an automation or an MCP client without OAuth, an
mbn_live_key is sent in theAuthorizationheader. See connecting with an API key.
What you need
- A Ma Belle Note account on the Pro plan, or in free trial: the API is included.
- Owner or admin access (permission to manage the API), to authorize the connection.
- An assistant that accepts custom MCP connectors. Depending on the provider, this option may depend on your plan.
1. Add the server to your assistant
The address to paste is the same everywhere:
https://api.mabellenote.com/v1/mcp
Claude (claude.ai and apps)
On claude.ai, open Settings › Connectors, then Add custom connector. Name it Ma Belle Note, paste the server address and confirm, then click Connect. The connector then shows up in the Claude desktop and mobile apps. In an organization, adding one may be reserved for its admin.
ChatGPT
ChatGPT only accepts a connector added by its address in developer mode. In ChatGPT settings, in the apps and connectors section, open the advanced settings and turn on developer mode. Then create a connector, name it Ma Belle Note, paste the server address and choose OAuth authentication. In a conversation, turn the connector on from the tools menu.
Le Chat, Grok, Perplexity
Open the assistant's connector settings (in Le Chat: Intelligence › Connectors), add a custom MCP connector and paste the server address. If the option does not show up, your plan or app does not offer it.
Claude Code
One command is enough, with no header and no key:
claude mcp add --transport http ma-belle-note https://api.mabellenote.com/v1/mcp
On first use, type /mcp in Claude Code, pick ma-belle-note then authenticate: your browser opens the Ma Belle Note window. By default, the server is only available in the project where you ran the command: add --scope user to use it in all your projects.
Cursor
Add the server to .cursor/mcp.json (project) or ~/.cursor/mcp.json (all your projects):
{
"mcpServers": {
"ma-belle-note": {
"url": "https://api.mabellenote.com/v1/mcp"
}
}
}
Then start the server's connection from Cursor's MCP settings.
Other MCP clients
Any client that speaks MCP's HTTP transport and supports the OAuth 2.1 authorization of the MCP specification can connect with the address alone. The server answers 401 with a WWW-Authenticate header pointing to its metadata (RFC 9728); the client discovers the authorization server there (RFC 8414), registers (client ID metadata document, or RFC 7591 dynamic registration), then opens the sign-in window with PKCE S256 and the resource parameter.
2. Authorize the connection
A Ma Belle Note window opens in your browser:
- Sign in with your usual account, if you are not already signed in.
- Choose the account to link. Only accounts where you are owner or admin, and whose plan includes the API, are listed.
- Choose the permissions, with the same templates as when creating a key. Read only is offered by default: it grants reading of locations, reviews, statistics and private feedback, with no access to your customer base. For the assistant to prepare replies too, also tick Write replies with AI (
ai:generate). - Click Authorize. You are back in the assistant, connected.
The window flags an unverified client, and stops with a clear message if no account is eligible or if the account already has its 10 keys.
A connection is an API key of the account, with an OAuth origin: it shows up in Settings › Integration, API & webhooks with the AI assistant badge, the assistant's name and its last use. It counts toward the account's 10 keys, and an email reports its creation. There is no secret to display and no rotation to plan: the assistant renews its connection on its own.
3. Ask your questions
Talk to the assistant as you would to a colleague with access to your reviews. It picks the tools and their filters on its own:
- “What are my customers saying about my desserts this month?”
- “Which negative reviews are still unanswered this month?”
- “Sum up this week's private feedback.”
- “Compare the average rating of my locations over the last three months.”
- “Draft a reply to this review.”
For the second question, for instance, it may call list_reviews for 1 and 2 star ratings, with no published reply, since the first of the month. The last one needs the ai:generate scope: the draft then shows up in the app, where you review it before publishing.
The assistant's tools
The server exposes 19 tools, but the assistant only sees the ones allowed by the connection's scopes: a tool outside them does not appear in its list.
| Tool | What it does | Required scope | Type |
|---|---|---|---|
get_account | Identifies the connection: the account, its plan, the scopes and the rate limit. | account:read (always granted) | Read |
list_establishments | Lists your locations, with their Google connection and review counters. | establishments:read | Read |
get_establishment | Reads a location of the account. | establishments:read | Read |
get_review_stats | Gives, day by day or month by month, the review count, the average rating and the response rate. | stats:read | Read |
list_reviews | Lists your reviews, filtered by location, rating, period, with or without a published reply. | reviews:read | Read |
get_review | Reads a review, with its published reply and its analysis. | reviews:read | Read |
list_feedbacks | Lists the private feedback left from your QR codes, by location and period. | feedbacks:read | Read |
get_feedback | Reads private feedback. | feedbacks:read | Read |
list_contacts | Lists the contacts of your customer base, or finds a contact by email or phone. | contacts:read | Read |
get_contact | Reads a contact of your customer base. | contacts:read | Read |
list_events | Lists the account's events in their publication order, to follow what changed. | events:read | Read |
get_event | Reads an event of the account. | events:read | Read |
draft_reply | Asks the Ma Belle Note AI for a reply draft to a review, in the location's tone. | ai:generate | Write |
save_reply_draft | Writes the text of a reply draft, which replaces the existing draft. | replies:write | Write |
publish_reply | Publishes a reply to a review on Google. | replies:publish | Write, to Google |
create_contact | Adds a contact to a location's customer base, or completes the existing contact. | contacts:write | Write |
update_contact | Updates the fields of a contact. | contacts:write | Write |
record_visit | Records a customer visit. | visits:write | Write |
redeem_promo_code | Redeems a promo code for a location, as at the counter. | promo_codes:redeem | Write |
The reading tools change nothing. With the replies:write or ai:generate scope, get_review and list_reviews also show the draft in progress (draft): the assistant can read back and adjust the draft it has just prepared. Every writing tool is flagged as such to the assistant, which asks for your approval before using it. Writes stay in Ma Belle Note, except publish_reply, which publishes the reply on Google, and only for a location that has authorized publishing through the API (see publishing to Google). draft_reply and save_reply_draft create a draft in the app, without publishing anything on Google: the reply waits for your approval, like any draft. draft_reply uses one unit of the account's monthly AI credit. The writing and event tools rely on operations still in beta, described in the writes guide and the webhooks guide.
Disconnect the assistant
The connection can be cut from both sides, with immediate effect:
- In the assistant: remove the connector from its settings, or run
claude mcp remove ma-belle-notein Claude Code. When the assistant reports the disconnection to the server (RFC 7009 revocation), the key is revoked at once; to be sure, revoke it in Ma Belle Note too. - In Ma Belle Note: revoke the AI assistant key in Settings › Integration, API & webhooks. The assistant's next call fails, and you need to authorize it again to plug it back in.
Connecting with an API key (advanced mode)
For a server, an automation or an MCP client that does not accept OAuth, the server also accepts an API key in the Authorization header, like the rest of the API.
Create a dedicated key in Settings › Integration, API & webhooks, with the Read only template, and name it after its use. The key starts with mbn_live_ and is shown only once. In the examples, replace mbn_live_... with your key. The lang parameter picks the language of the tool descriptions: fr for French, en for English, which also applies with no parameter.
With Claude Code:
claude mcp add --transport http ma-belle-note "https://api.mabellenote.com/v1/mcp?lang=en" \
--header "Authorization: Bearer mbn_live_..."
With a client that can only launch local servers, the mcp-remote relay (launched with npx, it needs Node.js) forwards the header:
{
"mcpServers": {
"ma-belle-note": {
"command": "npx",
"args": ["mcp-remote", "https://api.mabellenote.com/v1/mcp?lang=en", "--header", "Authorization:${AUTH}"],
"env": {
"AUTH": "Bearer mbn_live_..."
}
}
}
}
The header is written with no space after the colon and the key goes through the AUTH variable: some systems split arguments that contain a space.
The server refuses calls sent from a web page: the key stays on your computer or your server. A key stored in a computer's configuration can be revoked in the app if the computer is lost or shared.
Limits
- Rate: the assistant shares its key's limit, 120 calls per minute. Every exchange with the server counts as one call, including the tool list, and
draft_replycounts as 5. A broad question may take several calls, to walk through several pages of reviews. Beyond the limit, the tool answers429 rate_limited: the limits guide explains how it works. - AI credit: every draft requested through
draft_replyuses one unit of the monthly AI credit, as in the app. Once the credit is used up, the tool answers402 ai_credits_exhausted. On a read-only account, for instance after the trial ends, it answers403 tenant_read_only. - Call log: every call made by the assistant appears for 14 days in Settings › Integration, API & webhooks, Usage tab, with the key, the operation, the status and the duration. A tool call carries the name of the operation it uses, such as
v1 · reviews.list, and the other exchangesv1 · mcp.protocol.
Good to know
- Your data goes through the assistant: the reviews, their authors' names and the private feedback the assistant reads are sent to the assistant's provider, which handles them under its own terms. Only give the connection the scopes it needs, for instance without
feedbacks:readif your private feedback must stay in the app. - All your locations: a connection covers every location of the account, current and future.
- The assistant can be wrong: it summarizes and interprets. The reference figures remain those of the app.
- Nothing is published without the publishing scope: without
replies:publish, no tool publishes on Google, and publishing a reply happens in the app. With this scope,publish_replyonly publishes for the locations that have authorized publishing through the API, and the assistant asks for your approval before each publication.
Updated on October 25, 2026

