Skip to main content

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. πŸ˜‰

Mark Whitby

Looks great.... do you have an install/setup video we can follow?

D@vid

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

Jen McFarland

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)

D@vid

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.

Jen McFarland

D@vidΒ Amazing, thank you!

Vibe Code

hold on... you charge for mcp server that is just a fluentcommunity api wrapper?

D@vid

Vibe Code
Don’t hesitate to comment again once you’ve understood. ;)

Vibe Code

D@vidΒ let me comment again... do you charge for mcp server that is just using fluentcommunity api (free) or you made something nice extension

D@vid

Vibe CodeΒ 
let me comment again...Β 
Don’t hesitate to comment again once you’ve understood. ;)

Vibe Code

D@vidΒ alright... looks like you trying to fool community members... however, it's capitalism... you can sell whatever you want just need to find consumers... paying for mcp will be dumb consumers

D@vid

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/list AND tools/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 πŸ˜‰

Vibe Code

D@vidΒ I talk to person or Claude?

D@vid

Vibe Code

Don’t hesitate to comment again once you’ve understood. ;)
Have a good dayΒ Vibe CodeΒ πŸ˜‰

Vibe Code

D@vidΒ good luck with sales. hopefully it will cover your ai bill

D@vid

Vibe CodeΒ 
Thx ! And if you want to learn even more about the MCP protocol and computer security, don't hesitate to contact me again.... Vibe Code πŸ˜„

Vibe Code

D@vidΒ I'm always happy to learn as I do many modelcontextprotocol contributions... share what you have. feel free to share tips for community developers... it's always nice to learn something which is not documented anywhere

D@vid

Vibe CodeΒ 
Tip: Work on security issues. You'll learn a lot of really useful things, especially in Vibe Coding.

Vibe Code

Cointacter

what about codex, or chatgpt?

D@vid

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?

Cointacter

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...

D@vid

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

Cointacter

D@vidΒ cool keep grinding!

Nicolas D

Looks great, nice job !

D@vid

Nicolas DΒ 

Thx !

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?

D@vid

Screenplay UnlimitedΒ There is a LearnDash MCP that can retrieve the data.

https://learndash.com/support/kb/learndash-mcp-server/getting-started-with-learndash-mcp-server/mcp-setup/

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.

D@vid

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.

D@vid

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?”

D@vid

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!