What MCP is
The Model Context Protocol is an open standard that lets an AI assistant call tools on another service. When you connect Flowmind Social to Claude or ChatGPT, the assistant receives a list of tools — list the comments waiting on this page, search the knowledge base, send this reply — and decides which to call to do what you asked. Nothing is copied to the AI company; each tool call fetches only what that step needs, and every call is authenticated with your key and recorded in your activity log.
1. Create a key
- In your workspace open Workspace → API keys & MCP (you need the apikeys.manage permission; owners and Admins have it).
- Give the key a name you will recognise in the activity log, e.g. “Claude desktop — Tanvir”.
- Choose the scope: read lets the client look — pages, calendar, comments, chats, people, knowledge — and try a reply without posting it; act also lets it do what the buttons do: create and schedule posts, send replies and messages, approve drafts, answer questions, add knowledge.
- Choose the pages the key may see: every page in the workspace, or a list. A key never reaches other pages, your team, billing or settings.
- Copy the key. It starts with
fms_and is shown once; we keep only a hash. Lose it and you make a new one.
Starter includes 1 key, Pro 5, Agency 25. Make one key per person or per tool so you can revoke them separately.
2. The endpoint
| URL | https://smm.flowmind.digital/mcp |
|---|---|
| Transport | Streamable HTTP — JSON-RPC 2.0 over POST, plain JSON responses (no event stream; GET returns 405) |
| Authentication | Authorization: Bearer fms_… on every request. No cookies, no OAuth. |
| Protocol versions | 2025-06-18, 2025-03-26, 2024-11-05 |
| Rate limits | Per key, per minute; reads are allowed far more often than actions. Over the limit the tool returns a short “wait a little” error, not a failure. |
A raw call, if you want to see it work before touching a client:
curl -s https://smm.flowmind.digital/mcp \
-H "Authorization: Bearer fms_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'And a tool call — most tools take a page — the page id or its exact name from list_pages (optional when the key reaches only one page):
curl -s https://smm.flowmind.digital/mcp \
-H "Authorization: Bearer fms_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"list_comments","arguments":{"page":"Bagerhatian","filter":"needs_you","limit":20}}}'3. Claude Desktop
Claude Desktop talks to local MCP servers, so it reaches a remote one through the small mcp-remote bridge (needs Node.js 18 or newer). Open Settings → Developer → Edit Config and add the server to claude_desktop_config.json:
{
"mcpServers": {
"flowmind-social": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://smm.flowmind.digital/mcp",
"--header", "Authorization: Bearer fms_your_key_here"
]
}
}
}On Windows, spaces inside an argument are mangled by the launcher; pass the header through an environment variable instead:
{
"mcpServers": {
"flowmind-social": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://smm.flowmind.digital/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer fms_your_key_here" }
}
}
}Restart Claude Desktop. The tools appear under the hammer icon; ask “What’s waiting in my inbox?” to try it.
4. Claude.ai and ChatGPT connectors
Both web apps can connect to a remote MCP server directly — no bridge needed.
- Claude.ai (Pro, Max, Team and Enterprise): Settings → Connectors → Add custom connector. Name it, paste
https://smm.flowmind.digital/mcpas the URL, and enter the key as the bearer token / API key where the connector asks for authentication. Enable it in a chat from the connectors menu. - ChatGPT (with Developer mode or connectors enabled on your plan): Settings → Connectors → Create. Paste the URL and the key as the bearer token / API key in the authentication settings, then turn the connector on in a conversation.
If the client has no place for an Authorization header (some connector screens offer only “none” or OAuth), use the keyed URL instead: https://smm.flowmind.digital/mcp/fms_your_key_here. Treat that URL exactly like the key itself — anyone who has it has the key.
5. Cursor, Claude Code and other clients
Any client that supports Streamable HTTP with a custom header works. Two common ones:
{
"mcpServers": {
"flowmind-social": {
"url": "https://smm.flowmind.digital/mcp",
"headers": { "Authorization": "Bearer fms_your_key_here" }
}
}
}claude mcp add --transport http flowmind-social https://smm.flowmind.digital/mcp \
--header "Authorization: Bearer fms_your_key_here"For a client that only speaks stdio, use the mcp-remote bridge exactly as in the Claude Desktop example. For n8n, Make or your own code, call the endpoint as shown in section 2.
6. The tools
Tools marked act exist only for act keys; a read key does not see them. Every tool is limited to the pages its key allows, and most take a page (id or name) from list_pages. On connecting, the server also sends the client short instructions: start with list_pages and get_overview, use search_knowledge before stating a fact, and never put private details in a reply.
Planner
| Tool | What it does |
|---|---|
list_pages | The pages this key can see — platform, connection status, time zone and counts of what is scheduled and waiting. |
list_content | Content items on a page (drafts, scheduled, published, failed), newest first, with filters and a limit. |
get_content | One item in full: text, title, media, and each platform post with its status, scheduled time and link. |
create_content act | Make a new item — text, title, media from the page’s files, the platforms it goes to, and an optional publish time (leave it empty for a draft). |
update_content act | Change an item’s text, title, media or schedule before it is published. |
delete_content act | Delete a draft or an unpublished item (published posts stay on the platform). |
list_files | The media files uploaded to a page, so create_content can reference them by name. |
post_action act | Act on one platform post: publish now, reschedule, cancel or retry a failed one. |
get_calendar | What is planned and what went out, day by day, for a date range across the key’s pages. |
Comments desk
| Tool | What it does |
|---|---|
get_overview | Totals for a page: comments waiting, answered in the last 24 h, the catch-up queue, open questions, name requests, open feedback, knowledge items, the mode (asks first / sends by itself), the pace and the last problem. |
list_comments | Comments newest first with a filter: waiting, needs_you (held for a person), answered, not_answered, by voice, notable, or all. |
get_comment | One comment with everything around it: the post, the thread, the draft or sent reply, its timeline (seen → kind → voice → knowledge → draft → check → sent), the person’s history and the knowledge passages that matched. |
try_reply | Run the real engine on a comment text without posting anything: the kind, the voice, the reply it would write and whether it would go out by itself. Costs one small AI call. |
send_reply act | Post a reply under a comment as the page. Refused if it contains a link, phone number, email, device, tool or the names of the people behind the page. |
redraft act | Throw away the current draft and let the engine think again; the new draft waits for approval. |
skip_comment act | No reply needed — takes the comment off the waiting list. |
like_comment act | Like a Facebook comment as the page. |
list_questions | Questions nobody could answer (open, answered or all) — the ones the assistant promised to find out about. |
answer_question act | Answer a queued question: save it to the knowledge base so the next person gets it at once, and/or reply under the comment. |
list_feedback | Suggestions, complaints, corrections and “make a video about…” requests, to plan content from. |
mark_feedback_noted act | Tick a piece of feedback as noted (or open it again). |
list_people | Who comments most: comments, replied, waiting, first and last seen; search by name. |
get_person | One person’s comments on the page, newest first, each with its reply and status. |
list_name_requests | People who asked for their name or comment to be read out in a show or live, with what they wrote. |
mark_name_request act | Mark a name request as used, new again or dismissed. |
Knowledge
| Tool | What it does |
|---|---|
search_knowledge | What the knowledge base says about a question, as people write it — the same passages the engine gives the AI. Empty means nothing is known, so don’t state facts. |
list_knowledge | The knowledge sets, or the items of one set with a preview and whether each is on. |
get_knowledge_item | The full text of one knowledge item. |
add_knowledge act | Add an item to a set; the engine uses it from the next reply on. Checked facts only. |
update_knowledge act | Change an item’s title or text, or switch it off. |
Messenger
| Tool | What it does |
|---|---|
list_chats | Conversations on a page with their state: unread, needs attention, a draft waiting, done. |
get_chat | One conversation in full: the messages, the assistant’s draft and its fact-check note, notes from the team, and whether the 24-hour reply window is still open. |
send_message act | Send a message in a chat as the page — only inside Facebook’s 24-hour window; the same private-detail guard applies. |
approve_draft act | Send the assistant’s waiting draft as it is (or with your edits). |
discard_draft act | Throw the draft away without sending. |
redraft_chat act | Ask the assistant for a new draft for this chat. |
mark_chat_done act | Mark the conversation handled (optionally pausing the assistant on it for a while). |
add_chat_note act | Leave a private note on the chat for your team; the person never sees it. |
7. Example prompts
- “What needs me across all my pages this morning? Group it by page and tell me which comments are complaints.”
- “Draft replies for the open questions on Sunrise Bakery using the knowledge base. Show me each draft before sending.”
- “The ferry now leaves at 7:30 on Fridays, not 8. Fix the knowledge item and answer anyone who asked this week.”
- “Schedule a post on Northwind Daily for Friday 9 am: ‘Live at 8 tonight — bring your questions’, with the studio photo from the library.”
- “Show me the ten people who comment most on Trek the North and what they usually ask about.”
- “Which Messenger chats have a draft waiting? Approve the ones about opening hours, leave the rest for me.”
- “Summarise last week’s feedback on Mira’s Kitchen into three content ideas, then mark it as noted.”
8. Safety notes
- Act keys can post. A client with an act key can publish to your pages and send messages to your audience. Give act scope only to tools you supervise, limit them to the pages that need it, and prefer read keys for analysis and reporting.
- The private-detail guard applies to every reply sent through MCP, just as to the assistant’s own: a reply that mentions a link, an email address, a phone number, a device, a tool or the names of the people behind the page is refused. Knowledge items are checked facts; agents are told not to invent.
- Everything is in the activity log as “MCP · key name”, and on the comment’s or chat’s own timeline, so you can always see what an agent did and undo it where possible.
- Scopes are enforced server-side. A read key cannot call act tools even if the client asks; a key cannot see a page it was not given.
- Revoke any time from Workspace → API keys & MCP. The key stops working immediately, and revoking does not undo anything already posted.
- Keys are secrets. Do not paste them into shared documents, chat logs or public repositories. If one leaks, revoke it and make a new one.
- Calls made through a key count toward the plan’s AI allowance only when they generate a reply (
try_reply,redraft,redraft_chat); listing, reading and sending text you wrote do not.
9. Troubleshooting
- 401 “Missing or unknown key”
- The header is missing, the key was mistyped or it has been revoked. Check it starts with
fms_and that the header readsAuthorization: Bearer fms_…with one space. Make a fresh key if in doubt. - “Unknown tool … (this key can only read)”
- The client called an act tool with a read key. Make an act key, or ask the client only to look and draft.
- “No comment 123 on <page>” or a page is missing from
list_pages - The key is limited to other pages. Edit the key’s page list or make a new key for that page.
- “Too many calls this minute”
- The per-key rate limit. Clients usually retry on their own; if it happens often, ask the client to work page by page rather than fanning out.
- “Refused — the reply mentions …”
- The private-detail guard caught a link, number, email or name. Rephrase without it; replies never carry private details.
- 405 on GET, or the client says “no event stream”
- The server answers POST with plain JSON and does not open a server-sent-events stream. Clients following the current spec handle this; older SSE-only clients need the
mcp-remotebridge. - Claude Desktop shows nothing after a restart
- Check that
node --versionis 18 or newer, that the JSON has no trailing comma, and look at the MCP log under Settings → Developer. On Windows use the environment-variable form from section 3. - The assistant answers from memory instead of calling tools
- Ask it explicitly: “Use the Flowmind Social tools to check.” Most clients let you require a connector for a conversation.
- “This month’s AI replies are used up”
- The plan’s allowance is finished. Reading and sending still work; drafting resumes next month, on upgrade, or at once with your own AI key on Pro and Agency.
Still stuck? Write to [email protected] with the client you use and the error text.