Fcom AI Connect: Pilot FluentCommunity with Claude AI
Hello everyone,
I built a WordPress plugin to connect Claude Desktop directly to FluentCommunity, over the MCP protocol.
What it does
Once installed and configured, Claude sees your FC installation as a set of tools. The plugin exposes 28 capabilities, each of which can be toggled on or off individually from the settings page.
Examples:
Type to Claude:
- "Connect to FluentCommunity, look at course XXX and tell me if it needs updating."
- "Connect to FluentCommunity, create a course about building the Eiffel Tower. No more than 3 or 4 lessons, no technical jargon, high-school level, and remember to mark the spots where an illustration should be inserted."
You get the idea. Claude becomes the assistant that saves you a lot, a lot, a lot of time.
In detail, Fcom AI Connect lets Claude:
Courses
- List courses
- Get a course's details
- Get a course by its slug
- Create a new course
- Update a course
- Duplicate a course
Sections
- List the sections of a course
- Get a section's details
- Create a new section
- Update a section
- Copy a section into another course
- Reorder sections
Lessons
- List the lessons of a course or section
- Get a lesson's details
- Create a new lesson
- Update a lesson
- Move a lesson into another section
- Reorder lessons
Quizzes
- Create a quiz on a lesson
- Update a quiz's questions and answers
- Update a quiz's settings
- List student submissions for a quiz
- Get the details of a submission
- Manually update a submission
- Export quiz results as CSV
Students
- List a course's enrolled students
- Enroll a student in a course
- Unenroll a student
Ready for international use
The plugin is fully internationalized. It ships with five built-in locales in addition to English: French, Spanish, German, Italian, and Portuguese (Brazil). Further languages can be added via .po files.
What Fcom AI Connect does not do (on purpose)
A few limits, chosen rather than suffered.
No deletion.
Deletion, for example of a course, is not possible. Only the admin retains that power.
No access to WordPress itself.
No managing posts, pages, media, plugins or themes. The AI stays inside the FluentCommunity perimeter.
No destructive actions by default.
Anything that is hard to reverse is blocked unless explicitly enabled in the settings. One switch per operation, that you flip on if you need it.
No access to human identity.
Claude runs under a dedicated bot account (fcom-aic-bot), created at install time, with only the capabilities it needs. It cannot log in interactively, and its account cannot be used to reach the WordPress admin.
Tech stack (for those who care)
- Protocol: MCP Streamable HTTP (Anthropic's official spec)
- Authentication: Bearer token, one per configured AI provider
- Key encryption: libsodium (XSalsa20-Poly1305), key derived from your
AUTH_KEY/AUTH_SALT - Audit log: dedicated table, every line signed with HMAC
- Updates: Ed25519 signature verified before install
1-year license: β¬59 instead of β¬89
Lifetime license: β¬159 (limited-time offer)
Shop πhttps://comprendre.ai/item/fcom-ai-connect/
Questions welcome. π
Looks great.... do you have an install/setup video we can follow?
Mark WhitbyΒ hi,
Just 3 clicks and 1 copy-paste.
Itβs super simple and designed for non-technical users.
Go to AI Connect > Settings >Turn on Course piloting.
- Open the Claude tab, click Generate new API key and copy it
- In Claude Desktop >Settings > Developer, then on Edit Config.
- Paste what you just copied from the Fcom AI Connect plugin.
Save the file.
- Completely close Claude Desktop
Restart Claude Desktop.
VidΓ©o : https://youtu.be/MoaS5-w3gdA
OK, I think I'm in love with this. So I can connect this to Claude Desktop alongside my other MCP and make surgical changes to courses, etc. Can I also use it to query the community to find patterns, comments, etc., to improve the content we deliver? (This isn't a dealbreaker for me, just a question)
Thanks! Happy it clicks.
On stacking with other MCPs, yes, no problem. Claude Desktop runs several connectors at once. Fcom AI Connect sits alongside your other MCPs and Claude picks the right tool per task.*
-
On querying the community side, not in this release, and that was a deliberate call. The 28 capabilities here are all course-side: courses, sections, lessons, quizzes, students.
Reading the social layer (spaces, feed posts, comments, replies) means letting Claude ingest content written by community members, and that opens the door toΒ prompt injection: a malicious or even just careless comment can contain instructions that try to hijack what Claude does next. On a platform where your students write freely, that risk has to be handled seriously, not waved away.
-
It can absolutely be added in a future update, but it will ship with the right safeguards: explicit admin warning when the feature is enabled, two-factor activation (opt-in toggle + confirmation) so it cannot be turned on by accident, and capability isolation so social reads and destructive writes cannot be chained in the same session.
D@vidΒ Amazing, thank you!
hold on... you charge for mcp server that is just a fluentcommunity api wrapper?
Vibe CodeΒ
Just a wrapper" is what a naive MCP integration looks like. This isn't one.
A wrapper exposes API calls 1:1, hardcodes a token, and ships. Here's what actually sits between Claude and FluentCommunity in this plugin:
- Dedicated scoped bot account created at activation. Cannot log in interactively, cannot reach wp-admin. Claude impersonates this account, never a real admin.
- Bearer token stored in the OS secret store (DPAPI on Windows, Keychain on macOS, libsecret on Linux). Not plaintext in
wp_options. - 28 abilities, each individually toggleable from the admin UI. Not "all or nothing."
- Permission callback gate on every single call, filtering tools out of both
tools/listANDtools/call, so a client that cached a tool name from an earlier session still gets 403 when access is revoked. - No hard delete, anywhere. Not courses, not sections, not lessons, not quizzes. Removals stay human.
- Destructive operations gated behind a separate admin toggle, off by default.
- HMAC-signed tamper-evident audit log, every line anchored to a per-install epoch derived via HKDF from
AUTH_SALT. A "Verify audit integrity" button detects any post-facto edit, including direct database edits. - Ed25519 signed releases. The public key is embedded in the plugin. Your WordPress refuses to install any update whose signature does not verify.
- SHA-256 vendor manifest. At every boot, bundled vendored files are hashed against a baked-in manifest. One altered byte, the plugin refuses to start rather than run modified code.
- ZIP structural checks β traversal, symlinks, absolute paths rejected before extraction, even when signature verification is disabled.
- DNS pinning on outbound HTTP via
CURLOPT_RESOLVE. Fails closed when cURL is unavailable. Prevents DNS rebinding. - IPv6 SSRF guard that extracts embedded IPv4 from 6to4 (
2002::/16) and NAT64 (64:ff9b::/96) addresses before CIDR filtering. - CORS preflight lockdown on the MCP route. Cross-origin preflight rejected, CORS headers scrubbed.
- Untrusted content wrapping to reduce prompt injection surface.
- PII allowlist on export abilities, multilingual (covers email field synonyms in FR, DE, ES, IT, PT).
- Rate limiting, IP allowlist, path-free error messages, throttled logs, signed option values.
- 130 regression tests backing all of the above.
- 5 locales bundled (English source, French curated, Spanish, German, Italian, Portuguese).
Now, to be direct: your comment makes it clear you're conflating three different things that are not the same.
MCP is not an API. MCP is a protocol where the caller is an LLM, not a human. That single fact rewrites the threat model. A REST API assumes an intentional, rational caller. An MCP server has to assume a caller that can be prompt-injected by any text it reads, hallucinated into making calls the user never asked for, or fed malicious instructions by another MCP server running in the same Claude Desktop session. If your server doesn't defend against that, you've shipped a footgun with a bow on it. This is MCP 101 and it's clearly been skipped.
Mirroring the full FluentCommunity REST surface to an LLM is a bad idea. FC's API has DELETE endpoints, admin settings writes, bulk operations, auth configuration. Plug all of it into Claude and a single prompt injection or hallucinated call can wipe a course, drop every enrolled student, or rewrite the email configuration of the site. The question is never "can I reach the FC API from Claude" β any weekend hack does that. The real work is "which subset do I expose, under which permission gate, with what audit trail, and with what hard stops when things go sideways." That distinction is exactly what you missed.
The product is not the wrapper. The product is everything layered above the wrapper. The scoped bot account. The per-ability toggles. The HMAC audit log. The signed release pipeline. The SSRF and DNS rebinding defenses. The 130 regression tests that keep breaking every time someone tries to re-open a hole. Strip those layers out and yes, you have a free PHP proxy with a hardcoded token. Run that in production and the cleanup after the first breach costs more than the license. That's the capitalism math you were pitching, by the way.
I warned you: Understand and master before attacking.
Have a good day Vibe Code π
what about codex, or chatgpt?
CointacterΒ
Codex via CLI: Can be done fairly quicklyChatGPT Plus/Pro/Business/Enterprise/Edu
Requires a fair amount of development
I can start with Codex CLI. Interested?
D@vidΒ its interesting but i dont think i will buy, i believe i have plans to do it myself for my infra. My question was about your product in general whether you plan to build a proper product for wp and many other plugins along with other agents, or fcom and claude only...
CointacterΒ
Official connectors (WordPress) do exist: AI Provider for Anthropic, AI Provider for Google, and AI Provider for OpenAI.
However, they are very limited and include no security safeguards. This may explain why they are rarely used: 300 installations for OpenAI, 400 for Google, and 800 for Anthropic.
https://profiles.wordpress.org/wordpressdotorg/#content-plugins
As for my own creations, I have several, but only two are currently available: Fcom AI Connect (here) and Fcom Certificates: https://community.wpmanageninja.com/portal/space/community-meta/post/fcom-certificates-automated-training-c
D@vidΒ cool keep grinding!
This looks great, but in order for it to be useful to me, it would need to be able to look at a Learndash course and recreate its structure in FluentCommunity (ideally with as much of the content as possible). Can your plugin do this, or could this be implemented?
Screenplay UnlimitedΒ There is a LearnDash MCP that can retrieve the data.
I've never used LeanDash. Can't the administrator save their courses locally?
D@vidΒ I'm using the version of Learndash that is hosted in my own site, not the Learndash version in the cloud, that comes with its own hosting. So yes, I have all my courses saved locally, in the same Wordpress install where FluentCommunity is installed. But moving my existing courses to FluentCommunity would be a bear, as I have very complex courses (8-15 hours of content, many modules and topics, lots of videos, transcripts and PDFs for each topic... Doing this by hand would take me days, so if your tool was able to recreate the course structures in FluentCommunity and copy most of the content over, that would be a huge timesaver that would justify investing in your tool (I don't plan to use AI to create new courses, at least not for now). Not sure if the MCP works with the non-cloud version of Learndash, and if it needs a certain license level, I'd have to ask them if you think your tool might help with this.
Screenplay UnlimitedΒ
Perfect and more economical if they're stored locally. You don't even
1 - Claude Desktop can work locally to extract course content. (Always work from a copy)
2 - Claude connects to your FluentCart installation to recreate the courses.
Screenplay UnlimitedΒ
Here's an example of what you can do with the help of AI. You can ask the AI ββto create a custom CSS stylesheet to format your courses and give them a completely unique look without using Elemontor or anything else. Everything will be done in HTML in one step.
I give the AI ββtwo different text files:
1 - the course content
2 - the content of my custom CSS (the one from FluentCommunity)
And I ask the AI ββto format the course by applying the custom CSS.
Here's an example of what it looks like:
https://comprendre.ai/formation-ia-intelligence-artificielle/course/analyses-et-alertes-publiques-en-rapport-avec-lintelligence-artificielle/lessons/agents-ia-et-automatisations-ia-responsabilites-et-obligations-quand-tu-crees-integres-ou-vends/view
D@vidΒ Sorry for the late reply, multi-tasking at the moment...
Styling looks good!
I've started looking into setting up an MCP server for Learndash using Cursor to create a connection with Claude. That looks possible. Regarding your plugin side, Cursor is asking me to ask you:
- βCan it importΒ LearnDash course β lesson β topicΒ hierarchy, or do we need custom mapping prompts/scripts?β
- βCan it ingest existing HTML/course text in bulk and preserve formatting/media?β
- βDoes it support idempotent migration (safe re-run without duplicates)?β
- βCan it return stable IDs for mapping table (
learndash_idΒ toΒfluent_id)?β - βAny hard limits on batch size/rate/API timeout?β
- βDo you provide migration support for first pilot run?β
Screenplay UnlimitedΒ If your courses are hosted locally, you donβt need MCP for LearnDash.
D@vidΒ I need more details. My courses are hosted on Wordpress, so on a server (Rocket.net). They are not hosted locally as on my own PC/server. I said locally because Learndash has two options 1) a Wordpress plugin (what I use) and 2) a cloud subscription service that comes with hosting, so not your own Wordpress hosted site. What about the other questions, and I'll add another one, what happens if you decide to stop your business, does the plugin still work or does it need your server to work? Thanks!
