Skip to content

Repository files navigation

AICOM — AI Commander for WordPress

Control your WordPress site with any AI agent. AICOM turns your site into an MCP server — giving AI agents, automation tools, and platforms like Claude Code, OpenClaw, Celine and Goose direct, structured access to your WordPress content, settings, and data.

WordPressPHPLicenseWordPress Plugin


What can you do with AICOM?

  • AI-powered content creation — write, update and publish posts, pages and custom post types via AI
  • Automate your WooCommerce store — update products, manage categories, read settings through an AI agent
  • Manage multilingual sites — connect Polylang so AI agents can create and manage translations automatically
  • Control Elementor pages — update widget content, set Theme Builder conditions, validate and restore pages
  • Build AI editorial workflows — draft, review, schedule and publish content via AI instructions
  • Bulk SEO tasks — update meta fields, slugs, titles and descriptions in bulk via AI
  • Maintain your plugins — list installed plugins, check for updates and update them all in one AI call
  • Audit every AI action — full log of every request: who, what, when, from which IP, with result

How it works

AI Agent → AICOM Endpoint → WordPress

AICOM exposes a secure HTTP endpoint. AI platforms send structured MCP / JSON-RPC 2.0 requests. AICOM authenticates the request, checks permissions, executes the operation, and returns a structured response.


Installation

  1. Install from WordPress.org/plugins/aicom or upload the aicom folder to /wp-content/plugins/
  2. Activate via Plugins → Installed Plugins
  3. Go to AICOM → API Keys and click Generate New Key
  4. Select scopes, copy the key (shown once), point your agent at the endpoint

Endpoint

TypeURL
Primary (REST API)POST /wp-json/aicom/v1/mcp
Fallback (no mod_rewrite needed)POST /?aicom=1
Health checkGET /?aicom=1

Apache note: If the Authorization header is stripped, add to .htaccess:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Authentication

Authorization: Bearer aicom_XXXXXXXX_<secret>

or:

X-API-Key: aicom_XXXXXXXX_<secret>

MCP Request Format

Standard JSON-RPC 2.0:

{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "wp.posts.list",
"arguments": { "post_type": "post", "posts_per_page": 10 }
},
"id": 1
}

List tools:

{ "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1 }

Shorthand:

{ "tool": "wp.posts.list", "arguments": { "post_type": "post" } }

Modules & Tools

ModuleToolsDependency
WP Coreserver.status, wp.site.info, wp.post_types.list, wp.taxonomies.list, wp.posts.list/get/create/update/trash/restore/delete, wp.terms.list/get/create/update/delete/assign_to_post/remove_from_post, wp.meta.get/set/delete, wp.options.get/set, wp.plugins.list/update_all
Menuswp.menus.list/get/create/update/delete, wp.menus.items.list/add/update/remove
Mediamedia.list/get/upload/update/delete, files.list/read/write
Userswp.users.list/get/create/update/delete, wp.roles.list/create/update_caps/delete
Backupbackup.post/term/restore/list/delete/purge
WooCommercewc.products.list/get/create/update/delete, wc.categories.list/get/create/update/delete, wc.settings.get/updateWooCommerce
Elementorelementor.page.get_tree/get_texts/backup/restore/validate/regenerate_assets, elementor.widget.update_field, elementor.page.bulk_update_texts, elementor.template.set_conditionsElementor
Polylangpll.languages.list, pll.post.translate/link_translation, pll.term.translate/link_translation, pll.strings.list/get/setPolylang

Scopes

Each API key is granted specific scopes — you control exactly what each AI agent can and cannot do:

ScopeAccess
read.wpRead posts, terms, meta
write.wp.postsCreate/update posts
delete.wp.postsTrash/delete posts
manage.taxonomiesCreate/update/delete terms
manage.metaRead/write post meta
manage.wordpress.settingsRead/write WP options
manage.menusNav menu operations
manage.mediaMedia library operations
manage.filesFilesystem read/write (restricted)
manage.pluginsList plugins and run updates
read.usersRead user list/profile
manage.usersCreate/update users
delete.usersDelete users
manage.rolesCreate/update/delete roles and capabilities
manage.backupsBackup and restore operations
manage.woocommerce.productsWooCommerce products and categories
manage.woocommerce.settingsWooCommerce settings
manage.elementorElementor page editing and Theme Builder
manage.polylangPolylang translations and strings

Security Features

  • API key authentication — bcrypt-hashed keys with prefix-based fast lookup
  • Scope-based access control — each key has only the scopes you explicitly grant
  • IP allowlist per key — optionally restrict keys to specific IPs or CIDR ranges
  • Key suspend/unsuspend — temporarily block a key without revoking it
  • Hard Lock — emergency read-only mode: only public tools allowed, blocks all writes site-wide
  • Soft Lock — blocks all write/destructive tools site-wide regardless of key scopes
  • Confirm flag — destructive operations require explicit "confirm": true
  • Dry-run mode — simulate any operation without applying changes ("dry_run": true)
  • Audit log — every request logged: timestamp, IP, key label, tool, params, result, duration

Lock System

ModeAllowed tool classes
UnlockedAll tools
Soft Lockpublic, discovery, read only
Hard Lockpublic only (server.status)

Switchable from AICOM → Safety in the WordPress admin.


Usage Examples

Claude Code (via MCP config)

{
"mcpServers": {
"my-wordpress": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"],
"env": {
"MCP_ENDPOINT": "https://yoursite.com/wp-json/aicom/v1/mcp",
"MCP_API_KEY": "aicom_XXXXXXXX_your_secret"
}
}
}
}

Direct API call

curl -X POST https://yoursite.com/wp-json/aicom/v1/mcp \
-H "Authorization: Bearer aicom_XXXXXXXX_your_secret" \
-H "Content-Type: application/json" \
-d '{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "wp.posts.create", "arguments": { "post_title": "Hello from AI", "post_status": "draft", "post_content": "This post was created by an AI agent." } }, "id": 1 }'

Plugin maintenance agent

# List plugins with available updates
{ "tool": "wp.plugins.list", "arguments": {} }
# Update all plugins (dry run first)
{ "tool": "wp.plugins.update_all", "arguments": { "dry_run": true, "confirm": true } }
# Apply updates
{ "tool": "wp.plugins.update_all", "arguments": { "confirm": true } }

Elementor Theme Builder via AI

# Create header template
{ "tool": "wp.posts.create", "arguments": { "post_type": "elementor_library", "post_title": "Site Header", "post_status": "publish" } }
# Set template type and conditions
{ "tool": "elementor.template.set_conditions", "arguments": { "post_id": 123, "template_type": "header", "conditions": ["include/general"] } }

Requirements

  • PHP 7.4+
  • WordPress 6.0+
  • Optional: WooCommerce, Elementor (free or Pro), Polylang (free or Pro)

Changelog

See readme.txt for the full changelog.


License

GPL-2.0-or-later — see LICENSE


Links

About

AICOM - AI Commander for WordPress. MCP server plugin with API key auth, scope control, lock system, audit logging and 87 tools.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages