Fluent WordPress MCP Server & CLI
A free, open source Fluent WordPress MCP server and CLI that lets Claude Code, Codex, Cursor and other AI agents work with FluentCRM, FluentCommunity and Fluent Forms on your site.
0.0(0 ratings)- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
claude mcp add fluent-wp \
-e FLUENT_WP_SITE_URL=https://example.com \
-e FLUENT_WP_USER=YOUR_USERNAME \
-e FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
In Claude Code, type /mcp. WordPress should show as connected.
/mcp
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
claude mcp add fluent-wp -e FLUENT_WP_SITE_URL="https://example.com" -e FLUENT_WP_USER="YOUR_USERNAME" -e FLUENT_WP_APP_PASSWORD="YOUR_APPLICATION_PASSWORD" -- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
In Claude Code, type /mcp. WordPress should show as connected.
/mcp
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
claude mcp add fluent-wp \
-e FLUENT_WP_SITE_URL=https://example.com \
-e FLUENT_WP_USER=YOUR_USERNAME \
-e FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
In Claude Code, type /mcp. WordPress should show as connected.
/mcp
- 1Download the extension
Download the Claude Desktop extension.
- 2
Double-click it, and Claude Desktop installs it.
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
codex mcp add fluent-wp \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
codex mcp add fluent-wp --env FLUENT_WP_SITE_URL="https://example.com" --env FLUENT_WP_USER="YOUR_USERNAME" --env FLUENT_WP_APP_PASSWORD="YOUR_APPLICATION_PASSWORD" -- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
codex mcp add fluent-wp \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Open Cursor's settings, go to the MCP tab, and click Add new global MCP server.
- 2
Add the server.
Put your own site address, username and application password in place of the examples.
{
"mcpServers": {
"fluent-wp": {
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Open the MCP tab again. It should show 54 tools.
- 1
Open the Command Palette and run MCP: Open User Configuration.
- 2
Add the server to that mcp.json.
If the file already has servers, add only this one inside servers. Put your own site address, username and application password in place of the examples.
{
"servers": {
"fluent-wp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
}
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
copilot mcp add fluent-wp \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get fluent-wp
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
copilot mcp add fluent-wp --env FLUENT_WP_SITE_URL="https://example.com" --env FLUENT_WP_USER="YOUR_USERNAME" --env FLUENT_WP_APP_PASSWORD="YOUR_APPLICATION_PASSWORD" -- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get fluent-wp
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
copilot mcp add fluent-wp \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD \
-- npx -y @thenavidm/fluent-wp-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get fluent-wp
- 1
Open your Gemini CLI settings.
~/.gemini/settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers. Put your own site address, username and application password in place of the examples.
{
"mcpServers": {
"fluent-wp": {
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your Gemini CLI settings.
%USERPROFILE%\.gemini\settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers. Put your own site address, username and application password in place of the examples.
{
"mcpServers": {
"fluent-wp": {
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your Gemini CLI settings.
~/.gemini/settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers. Put your own site address, username and application password in place of the examples.
{
"mcpServers": {
"fluent-wp": {
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your OpenCode config.
~/.config/opencode/opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp. Put your own site address, username and application password in place of the examples.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"fluent-wp": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"enabled": true,
"environment": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart OpenCode.
- 1
Open your OpenCode config.
%USERPROFILE%\.config\opencode\opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp. Put your own site address, username and application password in place of the examples.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"fluent-wp": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"enabled": true,
"environment": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart OpenCode.
- 1
Open your OpenCode config.
~/.config/opencode/opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp. Put your own site address, username and application password in place of the examples.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"fluent-wp": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"enabled": true,
"environment": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
} - 3
Restart OpenCode.
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
openclaw mcp add fluent-wp \
--command npx \
--arg -y \
--arg @thenavidm/fluent-wp-mcp-cli@latest \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD - 2
Check that it starts and lists its tools.
openclaw mcp doctor fluent-wp --probe
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
openclaw mcp add fluent-wp --command npx --arg -y --arg @thenavidm/fluent-wp-mcp-cli@latest --env FLUENT_WP_SITE_URL="https://example.com" --env FLUENT_WP_USER="YOUR_USERNAME" --env FLUENT_WP_APP_PASSWORD="YOUR_APPLICATION_PASSWORD" - 2
Check that it starts and lists its tools.
openclaw mcp doctor fluent-wp --probe
- 1
Add it with a single command in a terminal.
Put your own site address, username and application password in place of the examples.
openclaw mcp add fluent-wp \
--command npx \
--arg -y \
--arg @thenavidm/fluent-wp-mcp-cli@latest \
--env FLUENT_WP_SITE_URL=https://example.com \
--env FLUENT_WP_USER=YOUR_USERNAME \
--env FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD - 2
Check that it starts and lists its tools.
openclaw mcp doctor fluent-wp --probe
- 1
In the agent panel, click the … menu, then MCP Servers, Manage MCP Servers and View raw config.
- 2
Add the server to mcp_config.json.
If the file already has servers, add only this one inside mcpServers. Put your own site address, username and application password in place of the examples.
{
"mcpServers": {
"fluent-wp": {
"command": "npx",
"args": ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"],
"env": {
"FLUENT_WP_SITE_URL": "https://example.com",
"FLUENT_WP_USER": "YOUR_USERNAME",
"FLUENT_WP_APP_PASSWORD": "YOUR_APPLICATION_PASSWORD"
}
}
}
}
- 1
Open your Hermes config.
~/.hermes/config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it. Put your own site address, username and application password in place of the examples.
mcp_servers:
fluent-wp:
command: "npx"
args: ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"]
env:
FLUENT_WP_SITE_URL: "https://example.com"
FLUENT_WP_USER: "YOUR_USERNAME"
FLUENT_WP_APP_PASSWORD: "YOUR_APPLICATION_PASSWORD"
- 1
Open your Hermes config.
%USERPROFILE%\.hermes\config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it. Put your own site address, username and application password in place of the examples.
mcp_servers:
fluent-wp:
command: "npx"
args: ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"]
env:
FLUENT_WP_SITE_URL: "https://example.com"
FLUENT_WP_USER: "YOUR_USERNAME"
FLUENT_WP_APP_PASSWORD: "YOUR_APPLICATION_PASSWORD"
- 1
Open your Hermes config.
~/.hermes/config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it. Put your own site address, username and application password in place of the examples.
mcp_servers:
fluent-wp:
command: "npx"
args: ["-y", "@thenavidm/fluent-wp-mcp-cli@latest"]
env:
FLUENT_WP_SITE_URL: "https://example.com"
FLUENT_WP_USER: "YOUR_USERNAME"
FLUENT_WP_APP_PASSWORD: "YOUR_APPLICATION_PASSWORD"
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
mkdir -p ~/.claude/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.claude/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Claude Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.claude\skills\fluent-wp" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\fluent-wp-mcp-cli\SKILL.md" "$HOME\.claude\skills\fluent-wp\" - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Claude Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
mkdir -p ~/.claude/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.claude/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Claude Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
mkdir -p ~/.agents/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.agents/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Codex to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.agents\skills\fluent-wp" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\fluent-wp-mcp-cli\SKILL.md" "$HOME\.agents\skills\fluent-wp\" - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Codex to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
mkdir -p ~/.agents/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.agents/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Codex to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Cursor to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Cursor to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Cursor to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask VS Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask VS Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask VS Code to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
mkdir -p ~/.copilot/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.copilot/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Copilot CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.copilot\skills\fluent-wp" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\fluent-wp-mcp-cli\SKILL.md" "$HOME\.copilot\skills\fluent-wp\" - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Copilot CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
mkdir -p ~/.copilot/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.copilot/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask Copilot CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Gemini CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Gemini CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Gemini CLI to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
mkdir -p ~/.config/opencode/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.config/opencode/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenCode to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.config\opencode\skills\fluent-wp" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\fluent-wp-mcp-cli\SKILL.md" "$HOME\.config\opencode\skills\fluent-wp\" - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenCode to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
mkdir -p ~/.config/opencode/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.config/opencode/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenCode to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
mkdir -p ~/.openclaw/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.openclaw/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenClaw to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.openclaw\skills\fluent-wp" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\fluent-wp-mcp-cli\SKILL.md" "$HOME\.openclaw\skills\fluent-wp\" - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenClaw to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
mkdir -p ~/.openclaw/skills/fluent-wp
cp "$(npm root -g)/@thenavidm/fluent-wp-mcp-cli/SKILL.md" ~/.openclaw/skills/fluent-wp/ - 3
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 5
Ask OpenClaw to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Antigravity to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Antigravity to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Antigravity to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Hermes to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Hermes to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
Ask Hermes to use fluent-wp-cli.
Running fluent-wp-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.zshrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.zshrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
List every command, then try one.
fluent-wp-cli
fluent-wp-cli get-current-user
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
setx FLUENT_WP_SITE_URL "https://example.com"
setx FLUENT_WP_USER "YOUR_USERNAME"
setx FLUENT_WP_APP_PASSWORD "YOUR_APPLICATION_PASSWORD" - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
List every command, then try one.
fluent-wp-cli
fluent-wp-cli get-current-user
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/fluent-wp-mcp-cli@latest - 2
Save your WordPress details, so every new session has them.
Put your own site address, username and application password in place of the examples.
echo 'export FLUENT_WP_SITE_URL=https://example.com' >> ~/.bashrc
echo 'export FLUENT_WP_USER=YOUR_USERNAME' >> ~/.bashrc
echo 'export FLUENT_WP_APP_PASSWORD=YOUR_APPLICATION_PASSWORD' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
fluent-wp-cli doctor - 4
List every command, then try one.
fluent-wp-cli
fluent-wp-cli get-current-user
Needs Node 22 or newer, an HTTPS WordPress site and an application password. Make one in two minutes.
It's free and open source. If it saves you time, star it on GitHub, so more people find it.
This free Fluent WordPress MCP server and CLI gives your AI real access to the Fluent plugins on your WordPress site: FluentCRM, FluentCommunity and Fluent Forms. It reads and updates CRM contacts, campaigns and automations, posts and comments in your community, follows course progress, and reads form submissions and stats.
It's one install with two ways in. Claude, Codex, Cursor or any other MCP app calls its 54 tools for you, and the same tools work as a CLI that agents like Claude Code, Codex and OpenCode run, or that you type yourself.
In this guide, I'll show you:
- What the Fluent WordPress MCP server & CLI is, and what you can ask it
- How to install it and check that it works
- When to use the MCP server, and when the CLI
- Every tool, and how to keep your account safe
Every tool on this page comes from the server itself, and every cost was measured in Claude Code.
Key takeaways
What is the Fluent WordPress MCP server & CLI?
The Fluent WordPress MCP server & CLI is a free, open source program that lets AI agents work with FluentCRM, FluentCommunity and Fluent Forms on your WordPress site for you, in two ways. The MCP server is what an AI app like Claude, Codex or Cursor connects to, through MCP (Model Context Protocol), the open standard AI apps use to call outside tools.
You ask in plain language. Your AI picks the right tool, and the server makes the call to your own WordPress site.
The CLI is the same program as commands. fluent-wp-cli fcrm-list-contacts runs the same code your AI runs when you ask for your newest contacts, whether an agent like Claude Code runs it or you do.
In an AI OS, the layer that connects your AI to your context, your data and your tools, a server like this is how your AI reaches Fluent WordPress. I explain how the parts fit together in how to build an AI operating system, and here's how I use AI myself.
What can you ask it?
Once it's set up, you ask the way you'd ask an assistant. These are real prompts it handles:
Try askingWho joined my CRM this week, and which tags do they have?
Tag jane@example.com as a customer and add her to my newsletter list.
How did my last email campaign do?
Post a welcome message in my community's General space.
Which students are behind in my course?
Show me the latest submissions to my contact form.
The second one shows why this is useful. Your AI updates the contact in FluentCRM, and you approve it first, because a new tag can start an automation.
It works well next to my WordPress MCP server and Calendly MCP server, so your AI can edit the posts and pages on the same site and book calls with your contacts in the same chat. Every server I've made is on my MCP servers page.
For the emails themselves, my free email subject line generator and email subject line tester help too.
How to install the Fluent WordPress MCP server
Pick your app in the box at the top of this page. Each one is a single command or a pasted block, and they all run through npx, so there's nothing to install first.
Windsurf, Zed and Cline take the same server, though they don't have a tab in the box yet. Follow the box's Cursor tab, and put its block here instead:
| App | Where the block goes |
|---|---|
| Windsurf | In the Cascade panel, open the Actions menu (…) and choose Open MCP config file, then paste the block. |
| Cline | Click the MCP Servers icon in the Cline panel, open the Configure tab, click Configure MCP Servers, and paste the block. |
| Zed | Go to Settings, then AI, then MCP Servers, and choose Add Server, then Add Local Server. Enter the block's command, arguments and variables, and Zed saves them under context_servers. |
Watch out: Use an application password, never your main WordPress password. It's a separate password for one app, and you can revoke it any time without changing your login.
Set up your WordPress site
It takes two minutes.
FLUENT_WP_SITE_URL, your username into FLUENT_WP_USER and the password into FLUENT_WP_APP_PASSWORD, in the command for your app.Sign in as a WordPress user who's allowed to do what you'll ask for in each plugin, because the server can do only what that user can.
The site address is the root, like https://example.com, without /wp-json at the end. If you don't see Application Passwords, your site may not be on HTTPS, or a security plugin or your host may have turned them off.
To keep the password out of your app's config, save it alone in a file only you can read, and point FLUENT_WP_PASSWORD_FILE at that file's full path instead.
Check that it works
Run the doctor with --network. It checks your settings, then reads the WordPress user the password belongs to, which proves the password works. It doesn't change anything.
npx -y @thenavidm/fluent-wp-mcp-cli doctor --networkWhen every line has a check mark, restart your app and ask it for your newest contacts. If the user check passes but a Fluent tool fails, that plugin isn't active, or the user isn't allowed to use it.
In Claude Code, /mcp also shows whether the Fluent WordPress server is connected. It's one of the Claude Code commands worth knowing.
Use the Fluent WordPress CLI
The CLI is the same 54 tools as commands. AI agents that run commands, like Claude Code, Codex and OpenCode, use it on their own, and you can type the same commands in a terminal or a script.
Every tool name becomes a command with dashes, so fcrm_list_contacts runs as fluent-wp-cli fcrm-list-contacts.
npm install -g @thenavidm/fluent-wp-mcp-cli
fluent-wp-cli
fluent-wp-cli fcrm-list-contacts --per-page 5
fluent-wp-cli fcrm-list-tags --per-page 10
fluent-wp-cli fc-list-spaces
fluent-wp-cli ff-list-submissions --form-id 3 --per-page 5The bare fluent-wp-cli lists every command, fluent-wp-cli which <words> finds the command for a task, and fluent-wp-cli <command> --help shows what a command takes. Every change needs --confirm, the terminal's version of your approval.
fluent-wp-cli install <app> adds the server to Claude Code, Codex, Claude Desktop, Cursor, VS Code or Gemini CLI, in each app's own format.
These are the flags you'll use most:
| Flag | What it does |
|---|---|
--json | Prints JSON |
--compact | Prints the JSON on one line |
--select a,b.c | Keeps only those fields, and a dotted path goes deeper |
--agent | Machine mode: compact JSON, no prompts, and it never confirms anything |
--confirm | Lets a write that asks first go ahead |
--dry-run | Shows what a write would do, without doing it |
A script can branch on the exit code:
| Exit code | What it means |
|---|---|
| 0 | It worked |
| 1 | Something unexpected went wrong |
| 2 | The command was typed wrong, or a write needed --confirm |
| 3 | It wasn't found |
| 4 | Fluent WordPress rejected the credentials |
| 5 | Fluent WordPress failed or couldn't be reached |
| 7 | You hit a rate limit, so wait and try again |
| 10 | Nothing is set up yet |
MCP server or CLI: which one?
Both are the same program with the same 54 tools. The difference is when your AI pays for them, in the tokens it reads.
- MCP server
- 25,700 tokens
- CLI
- Nothing
- MCP server
- 1,300 tokens
- CLI
- Nothing
- MCP server
- Nothing more, or in Claude Code the tools it picks
- CLI
- 1,400 tokens, once
- MCP server
- 515,000 tokens
- CLI
- 1,400 tokens
- MCP server
- Yes
- CLI
- No, there's no terminal there
- MCP server
- No
- CLI
- Yes
An app that loads every tool up front sends the full list with every message, whether you mention Fluent WordPress or not. Claude Code doesn't by default: its tool search sends only the tool names and the server's instructions, and loads a tool's full definition when your AI reaches for it.
The CLI costs nothing until Fluent WordPress comes up. Then your agent reads its skill file once and runs the commands it needs. With the skill added, Claude Code also lists its one-line description with every message, about 60 tokens.
When the whole conversation is about Fluent WordPress, the gap closes. Then the MCP server is the better experience, because you ask in plain language and your AI never has to look up a command.
How to spend less
In Claude Code, leave tool search on, which it is unless you've set ENABLE_TOOL_SEARCH=false.
Turn the server off when you aren't working on your site. In Claude Code that's the /mcp panel, and every AI app has its own switch. FLUENT_WP_READ_ONLY=1 cuts it to the 41 reading tools.
Or install the CLI and connect the server later, on the days it earns its place. Every tool stays in reach, and the standing cost drops to nothing.
Every number here was measured on October 5, 2026 in Claude Code 2.1.286 with Claude Opus 5.5. It's the same one-line prompt with and without the server connected, once with tool search off so every tool loads, and once with Claude Code's default. The skill was measured the same way, and other apps and models count tokens a little differently.
What a change can set off
A change in one of these plugins can do more than it looks. Tagging a contact, adding them to a list or changing their status in FluentCRM can start an automation or an email, and a new contact with double opt-in gets a confirmation email.
In FluentCommunity, a new post, comment or reaction can notify real members, and an announcement can email them. Reading spaces, posts and courses never does.
Fluent Forms submissions are read a page at a time, and reading them doesn't mark them as read. ff_form_report is the one form tool that asks first, because building the report can update data Fluent Forms stores.
For several changes at once, preview_site_batch checks up to 20 CRM or community changes on your computer and gives the batch a fingerprint, and submit_site_batch runs them in order only with that same fingerprint. read_site_snapshot reads up to 20 lists or records in one go, and save_site_snapshot saves them to a new private file.
Watch out: The server sees only the plugins your site has. If FluentCommunity isn't installed, its tools still show up, and they fail when called. Email sequences need FluentCampaign Pro, and community analytics and scheduled posts need FluentCommunity Pro.
Every Fluent WordPress tool
The tables below list all 54 tools, grouped by plugin. Of these, 41 only read, and 13 change something on your WordPress site or your computer.
FluentCRM
fcrm_dashboard_stats- What it does
- Reads your CRM dashboard: active contacts, campaigns, emails sent and active automations.
- Kind
- Reads
fcrm_list_contacts- What it does
- Lists contacts, filtered by tags, lists, status or advanced filters.
- Kind
- Reads
fcrm_get_contact- What it does
- Reads one contact by ID or email, with their stats and custom fields.
- Kind
- Reads
fcrm_search_contacts- What it does
- Finds contacts by name or email.
- Kind
- Reads
fcrm_create_contact- What it does
- Adds a contact, with tags and lists.
- Kind
- Asks first
fcrm_update_contact- What it does
- Changes a contact's fields, status, tags and lists.
- Kind
- Asks first
fcrm_contact_notes- What it does
- Reads a contact's notes.
- Kind
- Reads
fcrm_add_contact_note- What it does
- Adds a note to a contact.
- Kind
- Asks first
fcrm_list_tags- What it does
- Lists your tags, with how many contacts have each one.
- Kind
- Reads
fcrm_list_lists- What it does
- Lists your lists, with how many contacts are on each one.
- Kind
- Reads
fcrm_list_campaigns- What it does
- Lists your email campaigns, filtered by status or search.
- Kind
- Reads
fcrm_get_campaign- What it does
- Reads one campaign.
- Kind
- Reads
fcrm_campaign_stats- What it does
- Shows a campaign's sends, opens and clicks.
- Kind
- Reads
fcrm_list_sequences- What it does
- Lists your email sequences, which need FluentCampaign Pro.
- Kind
- Reads
fcrm_list_automations- What it does
- Lists your automation funnels.
- Kind
- Reads
fcrm_automation_report- What it does
- Shows how one automation funnel is doing.
- Kind
- Reads
fcrm_contact_emails- What it does
- Lists the emails sent to a contact, and whether they opened or clicked.
- Kind
- Reads
FluentCommunity
fc_list_spaces- What it does
- Lists your community spaces.
- Kind
- Reads
fc_get_space- What it does
- Reads one space, with its settings and topics.
- Kind
- Reads
fc_list_feeds- What it does
- Lists the posts you can read, with each space's pinned post.
- Kind
- Reads
fc_get_feed- What it does
- Reads one post.
- Kind
- Reads
fc_create_feed- What it does
- Publishes a post in a space, with media and topics.
- Kind
- Asks first
fc_update_feed- What it does
- Changes a post, and keeps an edit history.
- Kind
- Asks first
fc_delete_feed- What it does
- Deletes a post.
- Kind
- Asks first
fc_list_comments- What it does
- Lists a post's comments, oldest first.
- Kind
- Reads
fc_create_comment- What it does
- Posts a comment or a reply.
- Kind
- Asks first
fc_update_comment- What it does
- Changes a comment.
- Kind
- Asks first
fc_delete_comment- What it does
- Deletes a comment.
- Kind
- Asks first
fc_react_to_feed- What it does
- Adds or removes your reaction on a post.
- Kind
- Asks first
fc_space_members- What it does
- Lists a space's members and their roles, with pending join requests.
- Kind
- Reads
fc_get_profile- What it does
- Reads one member's public profile.
- Kind
- Reads
fc_scheduled_posts- What it does
- Lists a member's scheduled posts, soonest first, which needs FluentCommunity Pro.
- Kind
- Reads
FluentCommunity courses
fc_list_courses- What it does
- Lists the courses you can manage, with their students, sections and lessons.
- Kind
- Reads
fc_get_course- What it does
- Reads one course, with its settings.
- Kind
- Reads
fc_course_students- What it does
- Lists a course's students and how far each one has got.
- Kind
- Reads
fc_course_lessons- What it does
- Lists a course's lessons in order.
- Kind
- Reads
FluentCommunity analytics
fc_analytics_top_members- What it does
- Lists the 10 members with the most points who joined in a date range.
- Kind
- Reads
fc_analytics_top_commenters- What it does
- Lists the 10 members who commented most in a date range.
- Kind
- Reads
fc_analytics_top_post_starters- What it does
- Lists the 10 members who posted most in a date range.
- Kind
- Reads
fc_analytics_member_activity- What it does
- Shows member signups over a date range.
- Kind
- Reads
fc_analytics_overview- What it does
- Picks one of four community reports, which need FluentCommunity Pro.
- Kind
- Reads
Fluent Forms
ff_list_forms- What it does
- Lists your forms.
- Kind
- Reads
ff_get_form- What it does
- Reads one form with its settings.
- Kind
- Reads
ff_form_fields- What it does
- Lists a form's fields.
- Kind
- Reads
ff_list_submissions- What it does
- Lists a form's submissions, without marking them as read.
- Kind
- Reads
ff_form_report- What it does
- Builds a form's report, which can update the report data Fluent Forms stores.
- Kind
- Asks first
ff_form_stats- What it does
- Shows a form's stats over a date range.
- Kind
- Reads
Your sites, batches and snapshots
get_current_user- What it does
- Reads the WordPress user the password belongs to.
- Kind
- Reads
list_accounts- What it does
- Lists the sites you've set up, without their passwords.
- Kind
- Reads
get_operation_schema- What it does
- Shows every field one of these requests takes.
- Kind
- Reads
preview_site_batch- What it does
- Checks up to 20 CRM or community changes on your computer and gives the batch a fingerprint.
- Kind
- Reads
submit_site_batch- What it does
- Runs a checked batch in order, only with the fingerprint from its preview.
- Kind
- Asks first
read_site_snapshot- What it does
- Reads up to 20 lists or records from one site in a single go.
- Kind
- Reads
save_site_snapshot- What it does
- Saves up to 20 reads to a new private JSON file.
- Kind
- Asks first
Is the Fluent WordPress MCP server safe?
A tag can start an automation, and a post can notify your whole community. So 13 tools ask first: every change to a contact, note, post, comment or reaction, the form report, and the batch and snapshot tools that write. They're the ones marked "Asks first" in the tool tables above.
Reading contacts, posts, courses and submissions never asks, because it changes nothing.
When your AI calls one of them, the call needs a yes first. Where you use it decides who gives it:
- Claude Code (2.1.246 and later) asks you before every call, in every one of its permission modes.
- An app that can show forms asks you in a form.
- Any other app takes your AI's
confirm: trueas the yes, so tell your AI to check with you first. - An agent with no person to ask needs
FLUENT_WP_CONFIRM=model, so itsconfirm: truecounts in every app. - In a terminal, you add
--confirmto the command.
If the answer is no, nothing reaches Fluent WordPress.
Make it read-only
Set FLUENT_WP_READ_ONLY=1 and every tool that asks first disappears from the tool list, leaving 41 reading tools.
Keep a log of every write
Set FLUENT_WP_AUDIT_LOG to a file path. The server writes one line per attempted write, allowed or blocked, with what it was about to do and who approved it.
Watch out: Contacts, community posts and form submissions are written by other people, and one can try to give your AI orders. Treat them as data, and use FLUENT_WP_READ_ONLY=1 for an agent working on its own.
Your data
Your requests go straight to your own WordPress site, with no server of ours in between and no tracking. Your application password stays in your app's config, your shell or your password file.
Contacts, members and form submissions are your people's personal data, so keep any snapshot file private and delete it when you're done.
To cut access, revoke the application password under Users, then Profile, and remove the server from your app's config.
Connect more than one WordPress site
Set FLUENT_WP_ACCOUNTS to a JSON list with a name, the site address, the username and a password or password file for each site, and FLUENT_WP_DEFAULT_ACCOUNT to the one that acts when a tool names none. Every tool takes an optional account.
A site never borrows another one's password. If the site you name has no password, the call stops instead of reaching a different site.
Fluent WordPress MCP server settings
Every setting is an environment variable, in your app's config or your shell.
FLUENT_WP_SITE_URL- Default
- none
- What it does
- Holds your site's address, like
https://example.com
FLUENT_WP_URL- Default
- none
- What it does
- Holds the same, under its older name
FLUENT_WP_USER- Default
- none
- What it does
- Holds the WordPress username the password belongs to
FLUENT_WP_APP_PASSWORD- Default
- none
- What it does
- Holds the application password
FLUENT_WP_PASS- Default
- none
- What it does
- Holds the same, under its older name
FLUENT_WP_PASSWORD_FILE- Default
- none
- What it does
- Points at a private file holding the password, instead
FLUENT_WP_ACCOUNTS- Default
- none
- What it does
- Lists several sites, as JSON
FLUENT_WP_DEFAULT_ACCOUNT- Default
- the first one
- What it does
- Picks the site that acts when a tool names none
FLUENT_WP_REQUEST_TIMEOUT_MS- Default
30000- What it does
- Gives up on a request to your site after this many milliseconds
FLUENT_WP_MIN_REQUEST_INTERVAL_MS- Default
250- What it does
- Waits this many milliseconds between requests
FLUENT_WP_READ_ONLY- Default
- off
- What it does
1hides every tool that changes something
FLUENT_WP_ALLOW_DESTRUCTIVE- Default
- on
- What it does
0refuses the tools that ask first
FLUENT_WP_AUDIT_LOG- Default
- none
- What it does
- Names a file that gets one line per attempted write
FLUENT_WP_SURFACE- Default
full- What it does
searchlists three tools that find, describe and run the rest
FLUENT_WP_TOOL_TIMEOUT_MS- Default
- none
- What it does
- Gives up on any tool after this many milliseconds
FLUENT_WP_CONFIRM- Default
human- What it does
modellets your AI'sconfirm: trueapprove on its own, for an agent with no person to ask
FLUENT_WP_HTTP_PORT- Default
8787- What it does
- Sets the port for
--http
FLUENT_WP_HTTP_HOST- Default
127.0.0.1- What it does
- Sets the address for
--http, and any other needs a token
FLUENT_WP_HTTP_TOKEN- Default
- none
- What it does
- Sets the bearer token every
--httprequest needs
FLUENT_WP_HTTP_ALLOWED_ORIGINS- Default
- none
- What it does
- Lists other websites allowed to call
--http, comma separated
FLUENT_WP_DEBUG- Default
- off
- What it does
1prints debug lines
Troubleshooting
Run the doctor first. It names the step that failed and the fix.
| What you see | What to do |
|---|---|
| The user check fails | The password was revoked or mistyped, or a security plugin blocks it. Make a new application password |
| The user check passes, but a Fluent tool fails | That plugin isn't active, or the user isn't allowed to use it. Some features need the Pro version |
| There's no Application Passwords section | Your site needs HTTPS, and a security plugin or your host may have turned them off |
| A page of HTML comes back instead of data | Check the site address. Use the root, without /wp-json, and one that doesn't redirect |
| The form report asks first | Building it can update stored report data. Use ff_form_stats for a plain read |
| A batch says the fingerprint doesn't match | Something changed since the preview. Preview again and submit the new fingerprint |
| "…so it will not run without confirm: true" | That's the safety check working. Approve it when your app asks |
If the server doesn't show up in your app at all, run the command your app runs, in a terminal, and read the error.
More free tools for your WordPress site
Manage your posts and pages too, or run your email list in Kit.
Free tools
FAQs about the Fluent WordPress MCP server & CLI
Here are the questions people ask most about the Fluent WordPress MCP server and CLI.
The Fluent WordPress MCP server & CLI is a free, open source program that lets an AI app like Claude, Codex or Cursor work with FluentCRM, FluentCommunity and Fluent Forms on your WordPress site.
It has 54 tools for FluentCRM, FluentCommunity and Fluent Forms, and the same tools run as a CLI that agents like Claude Code and Codex use, or that you type yourself.
An MCP server is a standard way to give an AI app real access to a tool, so it can act instead of guessing.
MCP stands for Model Context Protocol, and Claude, Codex, Cursor and many other AI apps speak it.
Every server I've made is on my MCP servers page.
The Fluent WordPress CLI is the same program as the Fluent WordPress MCP server, run as commands.
AI agents like Claude Code, Codex and OpenCode run them for you, and you can type them in a terminal or a script.
One npm package installs both.
Use the Fluent WordPress MCP server in an AI app with no terminal, like Claude Desktop's chat, and the CLI in a terminal, a script or a cron job.
In an AI app that can run commands, like Claude Code, Codex or Cursor, the CLI is the lighter choice, because it costs nothing until it runs.
Yes, the Fluent WordPress MCP server is free and open source under the AGPL-3.0 license.
It works with the Fluent plugins already on your site, so you pay only for any Pro licenses you choose, and for your own AI app.
It works with FluentCRM, FluentCommunity and Fluent Forms on your WordPress site.
You can use any of them on its own, and the tools for a plugin you don't have simply fail.
No, most tools work with the free plugins.
Email sequences need FluentCampaign Pro, and community analytics and scheduled posts need FluentCommunity Pro.
An application password is a separate password for one app, so your main WordPress login never leaves your site.
You can revoke it any time without changing your login.
Yes, the Fluent WordPress MCP server connects as many sites as you set up in FLUENT_WP_ACCOUNTS, each with its own address, user and password.
Every tool takes an optional account, and a site never borrows another one's password.
To disconnect the Fluent WordPress MCP server, revoke its application password under Users, then Profile, which cuts access right away.
Then remove the server from your AI app's config.
The Fluent WordPress MCP server works with any app that speaks MCP.
That includes Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf, Zed, Cline, GitHub Copilot CLI, Gemini CLI, OpenCode, OpenClaw, Antigravity and Hermes.
I did.
I'm Navid Moazzez, and I made the Fluent WordPress MCP server & CLI as one of my free tools on navid.me.
You can read more about me.
The code is on GitHub under the AGPL-3.0 license, and the package is on npm.
More MCP servers & CLIs
Related free tools
Navid.me is reader-supported. When you buy through links on this site, I may earn an affiliate commission. Read the affiliate disclaimer.
On this page
The most actionable AI newsletter for founders
Every week, get proven AI strategies, curated tools, and step-by-step systems to grow your audience, create better content, and build a profitable creator business.
No fluff, no filler, no BS. Just five minutes each week that might level up your online business and life.
P.S. Sign up now to get free access to my ultimate AI tools guide for creators.
