MCP Hub
This MCP server provides MCP Hub system/project administration plus AI-driven WordPress site management.
Discover configured projects, inspect project details, and check system/project health, uptime, historical metrics, rate-limit stats, export metrics, and reset rate limits.
Manage WordPress posts, pages, custom post types, comments, users, categories, tags, taxonomies, menus, and block-theme navigation.
Read and update WordPress SEO metadata for posts, pages, and products via companion bridge support.
Manage media: list/get, upload from URL or base64, chunked large-file uploads, AI image generation, update/delete, bulk delete/reassign, regenerate thumbnails, and probe upload limits.
Inspect settings, site health, plugins, themes, active theme, object cache, transients, database status, and checksum integrity.
Perform maintenance/administrative actions: cache purge/flush, DB check/optimize/export, dry-run search-replace, plugin/theme/core updates (dry-run by default), bulk meta updates, content export, audit-hook configuration, and capability probing.
Target multiple WordPress sites by passing the
siteargument to WordPress tools.
Provides tools for managing Appwrite instances, including databases, authentication, storage, functions, teams, and messaging.
Allows for the management of Directus collections, items, users, files, flows, and permissions.
Provides comprehensive management of Gitea repositories, issues, pull requests, releases, webhooks, and organizations.
Enables the management of n8n automation workflows, executions, credentials, variables, and audit logs.
Provides tools to manage Supabase projects, including database operations, authentication, storage, edge functions, and realtime features.
Offers management capabilities for WooCommerce stores, products, orders, customers, coupons, reports, and shipping settings.
Offers management capabilities for WooCommerce stores, products, orders, customers, coupons, reports, and shipping settings.
Allows management of WordPress sites, including posts, pages, media, users, menus, taxonomies, and SEO configurations.
Integrates with Yoast SEO to manage meta descriptions and SEO settings for WordPress content.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Hub Check today's WooCommerce orders and summarize the total sales."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Hub
The AI-native management hub for WordPress, WooCommerce, and self-hosted services.
Connect your sites, stores, repos, and databases — manage them all through Claude, ChatGPT, Cursor, or any MCP client.
Why MCP Hub?
WordPress powers 43% of the web. WooCommerce runs 36% of online stores. Yet no MCP server existed for managing them through AI — until now.
MCP Hub is the first MCP server that lets you manage WordPress, WooCommerce, and 8 other self-hosted services through any AI assistant. Instead of clicking through dashboards, just tell your AI what to do:
"Update the SEO meta description for all WooCommerce products that don't have one"
"Create a new blog post about our Black Friday sale and schedule it for next Monday"
"Check the health of all 12 WordPress sites and report any with slow response times"
What Makes MCP Hub Different
Feature | ManageWP | MainWP | AI Content Plugins | MCP Hub |
Multi-site management | Yes | Yes | No | Yes |
AI agent integration | No | No | No | Native (MCP) |
Full WordPress API | Dashboard | Dashboard | Content only | 67 tools |
WooCommerce management | No | Limited | No | 28 tools |
Git/CI management | No | No | No | 65 tools (Gitea) |
Automation workflows | No | No | No | 56 tools (n8n) |
Self-hosted | No | Yes | N/A | Yes |
Open source | No | Core only | Varies | Fully open |
Price | $0.70-8/site/mo | $29-79/yr | $19-79/mo | Free |
Related MCP server: WordPress MCP Server
8 Public Plugins, Hundreds of Tools
The exact tool count grows as new plugins ship and existing ones gain endpoints.
What you actually expose is controlled by your ENABLED_PLUGINS setting and per-key
scope — pick a plugin-specific endpoint to keep the surface area small.
Plugin | Approx. Tools | What You Can Do |
WordPress | ~70 | Posts, pages, media (incl. AI image generation), users, menus, taxonomies, SEO (Rank Math/Yoast) |
WooCommerce | ~30 | Products, orders, customers, coupons, reports, shipping |
WordPress Specialist | ~58 | Plugins, themes, users, options, cron, page editing, site config + layout, db inspection/maintenance, bulk fan-out (companion-backed) |
Gitea | ~65 | Repos, issues, pull requests, releases, webhooks, organizations, labels, batch files, tree, search, compare |
n8n | ~55 | Workflows, executions, credentials, variables, audit |
Supabase | ~70 | Database, auth, storage, edge functions, realtime |
OpenPanel | ~40 | Events, export, insights, profiles, projects, system |
Coolify | ~65 | Applications, deployments, servers, projects, databases, services |
System | ~25 | Health monitoring, API keys, OAuth management, audit |
Per-site duplication does not inflate the tool count — adding a second WordPress site reuses the same WordPress tools with a different
siteargument.
Quick Start
Option 1: Docker (Recommended)
git clone https://github.com/airano-ir/mcphub.git
cd mcphub
cp env.example .env
# Edit .env — set MASTER_API_KEY, then add sites via the web dashboard
docker compose up -dOption 2: Docker Hub (No Clone)
# Create a .env file with MASTER_API_KEY (see "Configure Your Sites" below)
docker run -d --name mcphub -p 8000:8000 --env-file .env airano/mcphub:latestOption 3: From Source
git clone https://github.com/airano-ir/mcphub.git
cd mcphub
pip install -e .
cp env.example .env
# Edit .env — set MASTER_API_KEY
python server.py --transport streamable-http --port 8000Verify It Works
After starting the server, wait ~30 seconds then:
# Check server health
curl http://localhost:8000/healthOpen the web dashboard in your browser: http://localhost:8000/dashboard
You should see the login page. Log in with your MASTER_API_KEY or via GitHub/Google OAuth (if configured).
Try It Now (No Setup Required)
Don't want to self-host? Use the hosted instance at mcp.example.com:
Log in with GitHub or Google
Add your sites via the dashboard (My Sites → Add Service)
Go to Connect page — generate config for your AI client
Copy-paste the config into Claude Desktop, VS Code, or Claude Code
Your personal MCP endpoint: https://mcp.example.com/u/{your-user-id}/{alias}/mcp
Configure Your Sites
Sites are managed via the web dashboard — no environment variables needed.
Set
MASTER_API_KEYin your.envfileStart the server and open the dashboard
Add sites with their credentials (URL, username, password/token)
# .env — only system configuration needed
MASTER_API_KEY=your-secure-key-hereSystem Configuration:
Variable | Required | Default | Description |
| Recommended | Auto-generated | Master API key for admin access |
| No |
| Logging level (DEBUG, INFO, WARNING, ERROR) |
| For Live Platform | — | AES-256-GCM key for credential encryption |
| For OAuth | — | JWT secret for ChatGPT auto-registration (not needed for Claude/Cursor) |
| For OAuth | — | Public URL of your server (not needed for Claude/Cursor) |
OAuth is only needed for ChatGPT Remote MCP auto-registration. For Claude Desktop, Claude Code, Cursor, and VS Code — just use
MASTER_API_KEYwith Bearer token auth.
Plugin Credential Reference — when adding sites via dashboard, you'll need:
Plugin | Required Credentials | Notes |
WordPress | URL, Username, App Password | |
WooCommerce | URL, Consumer Key, Consumer Secret | WooCommerce → Settings → Advanced → REST API |
WordPress Specialist | URL, Username, App Password | Requires Airano MCP Bridge v2.18.3+ on the WP site; user must have |
Gitea | URL, Token | Settings → Applications → Personal Access Token |
n8n | URL, API Key | Settings → API → Create API Key |
Supabase | URL, Service Role Key | Supabase Dashboard → Settings → API |
OpenPanel | URL, Client ID, Client Secret | OpenPanel Dashboard → Project Settings |
Connect Your AI Client
All MCP clients use Bearer token authentication: Authorization: Bearer YOUR_API_KEY
Use a plugin-specific endpoint (e.g.,
/wordpress/mcp) instead of/mcpto reduce tool count and save tokens. See Architecture below.
Add to claude_desktop_config.json:
{
"mcpServers": {
"mcphub-wordpress": {
"type": "streamableHttp",
"url": "http://your-server:8000/wordpress/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Add to .mcp.json in your project:
{
"mcpServers": {
"mcphub-wordpress": {
"type": "http",
"url": "http://your-server:8000/wordpress/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Go to Settings > MCP Servers > Add Server:
Name: MCP Hub WordPress
URL:
http://your-server:8000/wordpress/mcpHeaders:
Authorization: Bearer YOUR_API_KEY
Add to .vscode/mcp.json:
{
"servers": {
"mcphub-wordpress": {
"type": "http",
"url": "http://your-server:8000/wordpress/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}MCP Hub supports Open Dynamic Client Registration (RFC 7591). ChatGPT can auto-register as an OAuth client:
Deploy MCP Hub with
OAUTH_BASE_URLsetIn ChatGPT, add MCP server:
https://your-server:8000/mcpChatGPT auto-discovers OAuth metadata and registers
Transport types: Use
"type": "streamableHttp"for Claude Desktop and"type": "http"for VS Code/Claude Code. Using"type": "sse"will cause400 Bad Requesterrors.
Architecture
/mcp → Admin endpoint (every enabled tool)
/system/mcp → System tools only
/wordpress/mcp → WordPress tools
/woocommerce/mcp → WooCommerce tools
/wordpress-specialist/mcp → WordPress Specialist tools (companion-backed)
/gitea/mcp → Gitea tools
/n8n/mcp → n8n tools
/supabase/mcp → Supabase tools
/openpanel/mcp → OpenPanel tools
/coolify/mcp → Coolify tools
/project/{alias}/mcp → Per-project endpoint (auto-injects site)
/u/{user_id}/{alias}/mcp → Per-user endpoint (hosted/OAuth users)Recommendation: Use plugin-specific endpoints instead of the all-tools /mcp
admin endpoint to keep your AI client's tool window small (and your token bill
lower).
Endpoint | Use Case |
| Hosted users (OAuth login) — single service |
| Single-site workflow (recommended) |
| Multi-site management for one service |
| Admin & discovery only — every enabled tool |
Security
OAuth 2.1 + PKCE (RFC 8414, 7591, 7636) with auto-registration for Claude/ChatGPT
Per-project API keys with scoped permissions (read/write/admin)
Rate limiting: 60/min, 1,000/hr, 10,000/day per client
GDPR-compliant audit logging with automatic sensitive data filtering
Web dashboard with real-time health monitoring (8 pages, EN/FA i18n)
Compatibility Note: MCP Hub requires FastMCP 3.x (
>=3.0.0,<4.0.0). The legacy multi-endpoint server and ProjectManager have been removed in v3.5.0.
WordPress Plugin Requirements
Some MCP Hub tools require companion WordPress plugins:
Tools | Requirement |
SEO + capability/audit tools ( | Airano MCP Bridge (GitHub) + Rank Math or Yoast SEO |
Companion-backed maintenance ( | |
WordPress Specialist (~58 tools: plugins / themes / users / options / cron / page editing / site config + layout / db inspection / bulk fan-out) | |
OpenPanel analytics integration | |
WooCommerce tools | WooCommerce plugin installed on your WordPress site |
No WordPress tool requires Docker socket or a WordPress container name. Shared-hosted and companion-managed sites use WordPress Application Passwords plus the Airano MCP Bridge REST routes.
Documentation
Guide | Description |
Full setup walkthrough | |
System design and module reference | |
Per-project API key management | |
OAuth 2.1 setup for Claude/ChatGPT | |
Gitea plugin configuration | |
Chat-attached media and plugin/theme zip handoff | |
Least-privilege recipes for content, catalog, media, analytics, and admin tasks | |
Docker and Coolify deployment | |
Common issues and solutions | |
Build your own plugin |
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format and lint
black . && ruff check --fix .
# Run server locally
python server.py --transport streamable-http --port 8000Support This Project
MCP Hub is free and open-source. Development is funded by community donations.
Donate with Crypto (NOWPayments) — Global, no geographic restrictions.
Goal | Monthly | Enables |
Infrastructure | $50/mo | Demo hosting, CI/CD, domain |
Part-time maintenance | $500/mo | Updates, security patches, issue triage |
Active development | $2,000/mo | New plugins, features, community support |
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Priority areas:
New plugin development
Client setup guides
Workflow templates and examples
Test coverage expansion
Translations (i18n)
License
MIT License. See LICENSE.
Available Tools
554 toolscheck_all_projects_healthA
Check health status of all projects with enhanced metrics.
Performs comprehensive health checks on all configured projects including:
Accessibility and response time
Error rates and recent failures
Alert threshold violations
Historical metrics (last hour)
Returns: JSON string with detailed health status and metrics
Inputs: no named parameters. Returns: result
cloudflare_create_dns_recordCloudflare: Create dns recordBDestructive
[UNIFIED] Create a DNS record (DNS:Edit permission). For a proxied A/AAAA record set proxied=true; for CNAME to another host keep proxied=false when the target is outside Cloudflare, or true when both sides are proxied. TTL 1 means automatic.
Inputs: name (required), site (required), type (required), content (required), +5 more.
cloudflare_create_kv_namespaceCloudflare: Create kv namespaceB
[UNIFIED] Create a Workers KV namespace (Workers KV Storage Edit permission). The title must be unique within the account.
Inputs: site (required), title (required), account_id.
cloudflare_create_r2_bucketCloudflare: Create r2 bucketB
[UNIFIED] Create an R2 bucket (requires R2 edit permission). Bucket names must be 3-63 lowercase letters, digits and hyphens, starting/ending with a letter or digit, unique within the account.
Inputs: site (required), bucket_name (required), account_id.
cloudflare_delete_dns_recordCloudflare: Delete dns recordADestructive
[UNIFIED] Delete a DNS record (DNS:Edit permission). DESTRUCTIVE — the record and its resolution stop working immediately; recreate it with create_dns_record if needed.
Inputs: site (required), zone_id (required), record_id (required).
cloudflare_delete_kv_keyCloudflare: Delete kv keyBDestructive
[UNIFIED] Delete a single KV key (Workers KV Storage Edit permission). DESTRUCTIVE — the value is permanently lost.
Inputs: site (required), key_name (required), namespace_id (required), account_id.
cloudflare_delete_kv_namespaceCloudflare: Delete kv namespaceADestructive
[UNIFIED] Delete a KV namespace and ALL its keys (Workers KV Storage Edit permission). DESTRUCTIVE — every key in the namespace is permanently lost.
Inputs: site (required), namespace_id (required), account_id.
cloudflare_delete_r2_bucketCloudflare: Delete r2 bucketADestructive
[UNIFIED] Delete an R2 bucket and all its objects (requires R2 edit permission). DESTRUCTIVE — every object in the bucket is permanently lost.
Inputs: site (required), bucket_name (required), account_id.
cloudflare_delete_workers_scriptCloudflare: Delete workers scriptADestructive
[UNIFIED] Delete a Workers script (requires Workers Scripts Edit permission). DESTRUCTIVE — the script and its routes stop working immediately.
Inputs: site (required), script_name (required), account_id.
cloudflare_get_dns_recordCloudflare: Get dns recordCRead-only
[UNIFIED] Fetch a single DNS record by id with its full details.
Inputs: site (required), zone_id (required), record_id (required).
cloudflare_get_kv_valueCloudflare: Get kv valueBRead-only
[UNIFIED] Read a single KV value by key name (Workers KV Storage Read permission). Returns the stored value as text.
Inputs: site (required), key_name (required), namespace_id (required), account_id.
cloudflare_get_r2_bucketCloudflare: Get r2 bucketBRead-only
[UNIFIED] Fetch R2 bucket metadata by name (requires R2 read permission) — creation date, storage class, location, object count.
Inputs: site (required), bucket_name (required), account_id.
cloudflare_get_userCloudflare: Get userBRead-only
[UNIFIED] Fetch the Cloudflare user profile authenticated by the stored API token (id, email, username). Read-only.
Inputs: site (required).
cloudflare_get_workers_scriptCloudflare: Get workers scriptCRead-only
[UNIFIED] Fetch Workers script metadata (id, name, modified_on, usage model). Does not return the script body.
Inputs: site (required), script_name (required), account_id.
cloudflare_get_zoneCloudflare: Get zoneCRead-only
[UNIFIED] Fetch one Cloudflare zone by id — full details including name servers, status, plan, SSL and security settings.
Inputs: site (required), zone_id (required).
cloudflare_list_accountsCloudflare: List accountsARead-only
[UNIFIED] List Cloudflare accounts visible to the stored API token (id + name). Useful to discover the Account ID for Workers/KV/R2 tools when the site does not pin one.
Inputs: site (required).
cloudflare_list_dns_recordsCloudflare: List dns recordsBRead-only
[UNIFIED] List DNS records for a zone with optional filters (type, name, content) and pagination. Returns id, type, name, content, TTL, proxied status and comment for each record.
Inputs: site (required), zone_id (required), name, page, +3 more.
cloudflare_list_kv_keysCloudflare: List kv keysBRead-only
[UNIFIED] List keys in a KV namespace (Workers KV Storage Read permission). Returns key names + metadata and a cursor for pagination.
Inputs: site (required), namespace_id (required), limit, cursor, +1 more.
cloudflare_list_kv_namespacesCloudflare: List kv namespacesBRead-only
[UNIFIED] List Workers KV namespaces in the account (requires Workers KV Storage permission and Account ID). Returns each namespace's id and title.
Inputs: site (required), per_page, account_id.
cloudflare_list_r2_bucketsCloudflare: List r2 bucketsBRead-only
[UNIFIED] List R2 buckets in the account (requires R2 read permission and Account ID). Returns bucket names, creation dates and storage class info.
Inputs: site (required), cursor, per_page, account_id.
cloudflare_list_workers_scriptsCloudflare: List workers scriptsBRead-only
[UNIFIED] List Workers scripts in the account (requires Workers Scripts permission and Account ID). Returns script names, modification dates and sizes.
Inputs: site (required), account_id.
cloudflare_list_zonesCloudflare: List zonesARead-only
[UNIFIED] List Cloudflare zones the token can access. Supports filtering by exact zone name and status (active, pending, development, deleted, moved), plus pagination. Returns zone id, name, status, name servers and plan.
Inputs: site (required), name, page, status, +1 more.
cloudflare_purge_cacheCloudflare: Purge cacheADestructive
[UNIFIED] Purge cached content for a zone. Requires the token's Cache Purge permission. Provide exactly one strategy: purge_everything (all cached content), files (specific URLs), tags (cache tags), or prefixes (URL prefixes). Impact is temporary — cache rebuilds on next requests.
Inputs: site (required), zone_id (required), tags, files, +2 more.
cloudflare_put_kv_valueCloudflare: Put kv valueBDestructive
[UNIFIED] Write a KV value for a key (Workers KV Storage Edit permission). Creates the key if it does not exist. Optionally set expiration (absolute Unix timestamp) or expiration_ttl (seconds from now).
Inputs: site (required), value (required), key_name (required), namespace_id (required), +3 more.
cloudflare_update_dns_recordCloudflare: Update dns recordADestructive
[UNIFIED] Update an existing DNS record (DNS:Edit permission). Only the provided fields change; omitted fields keep their current value.
Inputs: site (required), zone_id (required), record_id (required), ttl, +6 more.
cloudflare_verify_tokenCloudflare: Verify tokenARead-only
[UNIFIED] Verify that the configured Cloudflare API token is valid and active. Returns the token id and status. Useful as a self-diagnostic when other tools fail with permission errors.
Inputs: site (required).
coolify_cancel_deploymentCoolify: Cancel deploymentCDestructive
[UNIFIED] Cancel a running deployment.
Inputs: site (required), uuid (required).
coolify_create_application_composeCoolify: Create application composeADestructive
[UNIFIED] REMOVED by Coolify — this endpoint no longer exists and every call fails. Use coolify_create_service for raw Compose, or coolify_create_application_public with build_pack='dockercompose' for a git-backed Compose app.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +6 more.
coolify_create_application_dockerfileCoolify: Create application dockerfileBDestructive
[UNIFIED] Create a Coolify application from a Dockerfile (without git). Requires project_uuid, server_uuid, environment, and dockerfile content.
Inputs: site (required), dockerfile (required), server_uuid (required), project_uuid (required), +7 more.
coolify_create_application_docker_imageCoolify: Create application docker imageCDestructive
[UNIFIED] Create a Coolify application from a Docker image. Requires project_uuid, server_uuid, environment, docker_registry_image_name, and ports_exposes.
Inputs: site (required), server_uuid (required), project_uuid (required), ports_exposes (required), +8 more.
coolify_create_application_envCoolify: Create application envCDestructive
[UNIFIED] Create an environment variable for a Coolify application.
Inputs: key (required), site (required), uuid (required), value (required), +7 more.
coolify_create_application_private_github_appCoolify: Create application private github appBDestructive
[UNIFIED] Create a Coolify application from a private GitHub repository using an already configured Coolify GitHub App. Use github_app_uuid, or source_uuid as a backwards-compatible alias.
Inputs: site (required), build_pack (required), git_branch (required), server_uuid (required), +10 more.
coolify_create_application_publicCoolify: Create application publicCDestructive
[UNIFIED] Create a Coolify application from a public Git repository. Requires project_uuid, server_uuid, environment, git_repository, git_branch, build_pack, and ports_exposes.
Inputs: site (required), build_pack (required), git_branch (required), server_uuid (required), +8 more.
coolify_create_clickhouseCoolify: Create clickhouseCDestructive
[UNIFIED] Create a ClickHouse database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_database_backupCoolify: Create database backupCDestructive
[UNIFIED] Create a manual backup of a Coolify database.
Inputs: site (required), uuid (required).
coolify_create_environmentCoolify: Create environmentCDestructive
[UNIFIED] Create a new environment in a Coolify project.
Inputs: name (required), site (required), project_uuid (required), description.
coolify_create_mariadbCoolify: Create mariadbCDestructive
[UNIFIED] Create a MariaDB database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_mongodbCoolify: Create mongodbCDestructive
[UNIFIED] Create a MongoDB database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_mysqlCoolify: Create mysqlCDestructive
[UNIFIED] Create a MySQL database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_postgresqlCoolify: Create postgresqlCDestructive
[UNIFIED] Create a PostgreSQL database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_projectCoolify: Create projectCDestructive
[UNIFIED] Create a new Coolify project. Projects group applications, databases, and services.
Inputs: name (required), site (required), description.
coolify_create_redisCoolify: Create redisCDestructive
[UNIFIED] Create a Redis database on Coolify.
Inputs: site (required), server_uuid (required), project_uuid (required), environment_name (required), +3 more.
coolify_create_serverCoolify: Create serverCDestructive
[UNIFIED] Register a new server in Coolify. Requires name, IP, port, user, and a private key UUID for SSH access.
Inputs: ip (required), name (required), site (required), private_key_uuid (required), +6 more.
coolify_create_serviceCoolify: Create serviceCDestructive
[UNIFIED] Create a Coolify service from a predefined template. Requires project_uuid, server_uuid, environment, and service type.
Inputs: site (required), type (required), server_uuid (required), project_uuid (required), +4 more.
coolify_create_service_envCoolify: Create service envCDestructive
[UNIFIED] Create an environment variable for a Coolify service.
Inputs: key (required), site (required), uuid (required), value (required), +2 more.
coolify_delete_applicationCoolify: Delete applicationCDestructive
[UNIFIED] Delete a Coolify application permanently. Optionally clean up configs, volumes, and networks.
Inputs: site (required), uuid (required), delete_volumes, docker_cleanup, +2 more.
coolify_delete_application_envCoolify: Delete application envCDestructive
[UNIFIED] Delete an environment variable from a Coolify application.
Inputs: site (required), uuid (required), env_uuid (required).
coolify_delete_databaseCoolify: Delete databaseCDestructive
[UNIFIED] Delete a Coolify database permanently. Optionally clean up volumes and Docker resources.
Inputs: site (required), uuid (required), delete_volumes, docker_cleanup, +1 more.
coolify_delete_projectCoolify: Delete projectBDestructive
[UNIFIED] Delete a Coolify project permanently. All resources in the project will be removed.
Inputs: site (required), uuid (required).
coolify_delete_serverCoolify: Delete serverCDestructive
[UNIFIED] Delete a server from Coolify. This cannot be undone!
Inputs: site (required), uuid (required).
coolify_delete_serviceCoolify: Delete serviceCDestructive
[UNIFIED] Delete a Coolify service permanently. Optionally clean up volumes and Docker resources.
Inputs: site (required), uuid (required), delete_volumes, docker_cleanup, +1 more.
coolify_delete_service_envCoolify: Delete service envCDestructive
[UNIFIED] Delete an environment variable from a Coolify service.
Inputs: site (required), uuid (required), env_uuid (required).
coolify_deployCoolify: DeployCDestructive
[UNIFIED] Trigger deployment by tag name or resource UUID. Can deploy multiple resources at once using comma-separated values.
Inputs: site (required), pr, tag, uuid, +3 more.
coolify_get_applicationCoolify: Get applicationCRead-only
[UNIFIED] Get details of a specific Coolify application by UUID.
Inputs: site (required), uuid (required).
coolify_get_application_logsCoolify: Get application logsCRead-only
[UNIFIED] Get logs for a Coolify application.
Inputs: site (required), uuid (required), lines.
coolify_get_databaseCoolify: Get databaseCRead-only
[UNIFIED] Get details of a specific Coolify database by UUID.
Inputs: site (required), uuid (required).
coolify_get_database_backupsCoolify: Get database backupsBRead-only
[UNIFIED] Get backup configuration and history for a Coolify database.
Inputs: site (required), uuid (required).
coolify_get_deploymentCoolify: Get deploymentCRead-only
[UNIFIED] Get details of a specific deployment by UUID.
Inputs: site (required), uuid (required).
coolify_get_environmentCoolify: Get environmentBRead-only
[UNIFIED] Get details of a specific environment in a Coolify project by name.
Inputs: site (required), project_uuid (required), environment_name (required).
coolify_get_projectCoolify: Get projectCRead-only
[UNIFIED] Get details of a specific Coolify project by UUID.
Inputs: site (required), uuid (required).
coolify_get_serverCoolify: Get serverCRead-only
[UNIFIED] Get details of a specific server by UUID, including settings.
Inputs: site (required), uuid (required).
coolify_get_server_domainsCoolify: Get server domainsCRead-only
[UNIFIED] Get all domains configured on a specific server.
Inputs: site (required), uuid (required).
coolify_get_server_resourcesCoolify: Get server resourcesCRead-only
[UNIFIED] Get all resources (applications, databases, services) deployed on a specific server.
Inputs: site (required), uuid (required).
coolify_get_serviceCoolify: Get serviceCRead-only
[UNIFIED] Get details of a specific Coolify service by UUID.
Inputs: site (required), uuid (required).
coolify_list_app_deploymentsCoolify: List app deploymentsCRead-only
[UNIFIED] List deployment history for a specific application.
Inputs: site (required), uuid (required), skip, take.
coolify_list_application_envsCoolify: List application envsCRead-only
[UNIFIED] List environment variables for a Coolify application.
Inputs: site (required), uuid (required).
coolify_list_applicationsCoolify: List applicationsARead-only
[UNIFIED] List Coolify applications with compact output by default. Use include_details=true for full Coolify payloads.
Inputs: site (required), tag, name, limit, +2 more.
coolify_list_backup_executionsCoolify: List backup executionsCRead-only
[UNIFIED] List executions of one scheduled backup of one database. Get the scheduled backup UUID from coolify_get_database_backups.
Inputs: site (required), uuid (required), scheduled_backup_uuid (required).
coolify_list_databasesCoolify: List databasesCRead-only
[UNIFIED] List all Coolify databases.
Inputs: site (required).
coolify_list_deploymentsCoolify: List deploymentsBRead-only
[UNIFIED] List all running deployments on the Coolify instance.
Inputs: site (required).
coolify_list_environmentsCoolify: List environmentsCRead-only
[UNIFIED] List all environments in a Coolify project.
Inputs: site (required), project_uuid (required).
coolify_list_github_appsCoolify: List github appsBRead-only
[UNIFIED] List configured Coolify GitHub Apps for private repository deployments.
Inputs: site (required).
coolify_list_projectsCoolify: List projectsCRead-only
[UNIFIED] List all Coolify projects.
Inputs: site (required).
coolify_list_serversCoolify: List serversCRead-only
[UNIFIED] List all servers registered in the Coolify instance.
Inputs: site (required).
coolify_list_service_envsCoolify: List service envsCRead-only
[UNIFIED] List environment variables for a Coolify service.
Inputs: site (required), uuid (required).
coolify_list_servicesCoolify: List servicesBRead-only
[UNIFIED] List Coolify services with compact output by default. Use include_details=true for full Coolify payloads.
Inputs: site (required), name, limit, fields, +1 more.
coolify_restart_applicationCoolify: Restart applicationCDestructive
[UNIFIED] Restart a Coolify application.
Inputs: site (required), uuid (required).
coolify_restart_databaseCoolify: Restart databaseCDestructive
[UNIFIED] Restart a Coolify database.
Inputs: site (required), uuid (required).
coolify_restart_serviceCoolify: Restart serviceCDestructive
[UNIFIED] Restart a Coolify service.
Inputs: site (required), uuid (required).
coolify_start_applicationCoolify: Start applicationCDestructive
[UNIFIED] Deploy/start a Coolify application. Triggers a new deployment.
Inputs: site (required), uuid (required), force, instant_deploy.
coolify_start_databaseCoolify: Start databaseCDestructive
[UNIFIED] Start a Coolify database.
Inputs: site (required), uuid (required).
coolify_start_serviceCoolify: Start serviceCDestructive
[UNIFIED] Start a Coolify service.
Inputs: site (required), uuid (required).
coolify_stop_applicationCoolify: Stop applicationCDestructive
[UNIFIED] Stop a running Coolify application.
Inputs: site (required), uuid (required), docker_cleanup.
coolify_stop_databaseCoolify: Stop databaseCDestructive
[UNIFIED] Stop a running Coolify database.
Inputs: site (required), uuid (required).
coolify_stop_serviceCoolify: Stop serviceCDestructive
[UNIFIED] Stop a running Coolify service.
Inputs: site (required), uuid (required).
coolify_update_applicationCoolify: Update applicationCDestructive
[UNIFIED] Update a Coolify application settings. Supports name, description, domains, build settings, health checks, resource limits, and more.
Inputs: site (required), uuid (required), name, domains, +63 more.
coolify_update_application_envCoolify: Update application envCDestructive
[UNIFIED] Update an environment variable for a Coolify application.
Inputs: key (required), site (required), uuid (required), value (required), +7 more.
coolify_update_application_envs_bulkCoolify: Update application envs bulkCDestructive
[UNIFIED] Bulk update environment variables for a Coolify application.
Inputs: data (required), site (required), uuid (required).
coolify_update_databaseCoolify: Update databaseCDestructive
[UNIFIED] Update a Coolify database settings.
Inputs: site (required), uuid (required), name, image, +33 more.
coolify_update_projectCoolify: Update projectCDestructive
[UNIFIED] Update a Coolify project name or description.
Inputs: site (required), uuid (required), name, description.
coolify_update_serverCoolify: Update serverCDestructive
[UNIFIED] Update server configuration.
Inputs: site (required), uuid (required), ip, name, +4 more.
coolify_update_serviceCoolify: Update serviceCDestructive
[UNIFIED] Update a Coolify service settings.
Inputs: site (required), uuid (required), name, description, +1 more.
coolify_update_service_envCoolify: Update service envCDestructive
[UNIFIED] Update an environment variable for a Coolify service.
Inputs: key (required), site (required), uuid (required), value (required), +2 more.
coolify_update_service_envs_bulkCoolify: Update service envs bulkCDestructive
[UNIFIED] Bulk update environment variables for a Coolify service.
Inputs: data (required), site (required), uuid (required), allow_compose_environment_override.
coolify_validate_serverCoolify: Validate serverBDestructive
[UNIFIED] Validate server connectivity and configuration. With install=true, can also install prerequisites/Docker and restart the Docker daemon — mutating, so this tool requires write scope.
Inputs: site (required), uuid (required), install.
export_health_metricsB
Export all health metrics to a JSON file.
Inputs: output_path. Returns: result
get_audit_logC
Get audit log entries (Phase X.3).
Inputs: limit, event_type, project_id. Returns: object
get_endpointsB
List all available MCP endpoints (Phase X.3).
Inputs: no named parameters. Returns: object
get_project_healthC
Get detailed health information for a specific project.
Inputs: project_id (required). Returns: result
get_project_infoB
Get detailed information about a specific project.
Inputs: project_id (required). Returns: result
get_project_metricsC
Get historical metrics for a specific project.
Inputs: project_id (required), hours. Returns: result
get_rate_limit_statsC
Get rate limiting statistics.
Inputs: client_id. Returns: result
get_system_infoC
Get comprehensive system information (Phase X.3).
Inputs: no named parameters. Returns: object
get_system_metricsA
Get overall MCP server metrics and statistics.
Returns system-wide metrics including:
Uptime
Total requests (success/failure)
Average response time
Error rate percentage
Requests per minute
Returns: JSON string with system metrics
Inputs: no named parameters. Returns: result
get_system_uptimeA
Get MCP server uptime information.
Returns: JSON string with uptime in various formats (seconds, minutes, hours, days)
Inputs: no named parameters. Returns: result
gitea_close_issueGitea: Close issueCDestructive
[UNIFIED] Close an issue.
Inputs: repo (required), site (required), owner (required), issue_number (required).
gitea_close_pull_requestGitea: Close pull requestCDestructive
[UNIFIED] Close a pull request without merging.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_compareGitea: CompareARead-only
[UNIFIED] Compare two commits / branches / tags in a Gitea repository. Returns commits + file diffs between base and head (the Gitea compare endpoint).
Inputs: base (required), head (required), repo (required), site (required), +1 more.
gitea_create_branchGitea: Create branchC
[UNIFIED] Create a new branch in a Gitea repository from existing branch or commit.
Inputs: repo (required), site (required), owner (required), new_branch_name (required), +2 more.
gitea_create_fileGitea: Create fileCDestructive
[UNIFIED] Create a new file in a Gitea repository with commit message.
Inputs: path (required), repo (required), site (required), owner (required), +7 more.
gitea_create_filesGitea: Create filesADestructive
[UNIFIED] Create or update multiple files in a single commit. Uses Gitea's /repos/{owner}/{repo}/contents batch endpoint. Per-file operations: create | update | delete. For create/update, pass raw UTF-8 content (default) or a base64 string with content_is_base64=true per file. Delete requires each file's current sha.
Inputs: repo (required), site (required), files (required), owner (required), +3 more.
gitea_create_issueGitea: Create issueC
[UNIFIED] Create a new issue in a Gitea repository with optional labels, assignees, and milestone.
Inputs: repo (required), site (required), owner (required), title (required), +6 more.
gitea_create_issue_commentGitea: Create issue commentC
[UNIFIED] Add a comment to an issue.
Inputs: body (required), repo (required), site (required), owner (required), +1 more.
gitea_create_labelGitea: Create labelC
[UNIFIED] Create a new label in a repository.
Inputs: name (required), repo (required), site (required), color (required), +2 more.
gitea_create_milestoneGitea: Create milestoneC
[UNIFIED] Create a new milestone in a repository.
Inputs: repo (required), site (required), owner (required), title (required), +3 more.
gitea_create_pr_commentGitea: Create pr commentC
[UNIFIED] Add a comment to a pull request.
Inputs: body (required), repo (required), site (required), owner (required), +1 more.
gitea_create_pr_reviewGitea: Create pr reviewCDestructive
[UNIFIED] Create a review for a pull request (approve, request changes, or comment).
Inputs: repo (required), site (required), event (required), owner (required), +2 more.
gitea_create_pull_requestGitea: Create pull requestC
[UNIFIED] Create a new pull request in a Gitea repository.
Inputs: base (required), head (required), repo (required), site (required), +7 more.
gitea_create_releaseGitea: Create releaseC
[UNIFIED] Create a release (tag + release metadata) on a Gitea repository. Set draft to hide it from users until published.
Inputs: repo (required), site (required), owner (required), tag_name (required), +5 more.
gitea_create_repositoryGitea: Create repositoryA
[UNIFIED] Create a new Gitea repository. Can create user or organization repository with optional auto-initialization.
Inputs: name (required), site (required), org, readme, +6 more.
gitea_create_tagGitea: Create tagC
[UNIFIED] Create a new tag in a Gitea repository at specific commit.
Inputs: repo (required), site (required), owner (required), tag_name (required), +2 more.
gitea_create_webhookGitea: Create webhookCDestructive
[UNIFIED] Create a new webhook for a repository to receive event notifications.
Inputs: url (required), repo (required), site (required), owner (required), +5 more.
gitea_delete_branchGitea: Delete branchCDestructive
[UNIFIED] Delete a branch from a Gitea repository. Cannot delete default branch.
Inputs: repo (required), site (required), owner (required), branch (required).
gitea_delete_fileGitea: Delete fileBDestructive
[UNIFIED] Delete a file from a Gitea repository. Requires current file SHA for conflict detection.
Inputs: sha (required), path (required), repo (required), site (required), +3 more.
gitea_delete_labelGitea: Delete labelCDestructive
[UNIFIED] Delete a label from a repository.
Inputs: repo (required), site (required), owner (required), label_id (required).
gitea_delete_repositoryGitea: Delete repositoryBDestructive
[UNIFIED] Delete a Gitea repository permanently. This action cannot be undone!
Inputs: repo (required), site (required), owner (required).
gitea_delete_tagGitea: Delete tagCDestructive
[UNIFIED] Delete a tag from a Gitea repository.
Inputs: tag (required), repo (required), site (required), owner (required).
gitea_delete_webhookGitea: Delete webhookCDestructive
[UNIFIED] Delete a webhook from a repository.
Inputs: repo (required), site (required), owner (required), webhook_id (required).
gitea_fork_repositoryGitea: Fork repositoryADestructive
[UNIFIED] Fork a Gitea repository. Without organization, forks under the calling user. name optionally renames the fork.
Inputs: repo (required), site (required), owner (required), name, +1 more.
gitea_get_branchGitea: Get branchBRead-only
[UNIFIED] Get details of a specific branch including latest commit and protection settings.
Inputs: repo (required), site (required), owner (required), branch (required).
gitea_get_fileGitea: Get fileCRead-only
[UNIFIED] Get file contents from a Gitea repository. Returns file content (Base64 encoded) and metadata.
Inputs: path (required), repo (required), site (required), owner (required), +1 more.
gitea_get_issueGitea: Get issueCRead-only
[UNIFIED] Get details of a specific issue by number.
Inputs: repo (required), site (required), owner (required), issue_number (required).
gitea_get_organizationGitea: Get organizationCRead-only
[UNIFIED] Get information about a Gitea organization by name.
Inputs: org (required), site (required).
gitea_get_pr_diffGitea: Get pr diffCRead-only
[UNIFIED] Get the unified diff of a pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_get_pull_requestGitea: Get pull requestCRead-only
[UNIFIED] Get details of a specific pull request by number.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_get_repositoryGitea: Get repositoryCRead-only
[UNIFIED] Get details of a specific Gitea repository. Returns complete repository information.
Inputs: repo (required), site (required), owner (required).
gitea_get_treeGitea: Get treeARead-only
[UNIFIED] List the file tree of a Gitea repository. sha may be a branch name, tag, or commit (default: HEAD). recursive=true returns the entire tree in one payload. Use this instead of issuing many get_file calls when you don't know the paths ahead of time.
Inputs: repo (required), site (required), owner (required), sha, +3 more.
gitea_get_userGitea: Get userCRead-only
[UNIFIED] Get information about a Gitea user by username.
Inputs: site (required), username (required).
gitea_get_webhookGitea: Get webhookCRead-only
[UNIFIED] Get details of a specific webhook.
Inputs: repo (required), site (required), owner (required), webhook_id (required).
gitea_list_branchesGitea: List branchesCRead-only
[UNIFIED] List all branches in a Gitea repository with commit information and protection status.
Inputs: repo (required), site (required), owner (required), page, +1 more.
gitea_list_issue_commentsGitea: List issue commentsCRead-only
[UNIFIED] List all comments on an issue.
Inputs: repo (required), site (required), owner (required), issue_number (required).
gitea_list_issuesGitea: List issuesCRead-only
[UNIFIED] List issues in a Gitea repository with filters. Returns paginated list of issues.
Inputs: repo (required), site (required), owner (required), q, +4 more.
gitea_list_labelsGitea: List labelsCRead-only
[UNIFIED] List all labels in a repository.
Inputs: repo (required), site (required), owner (required).
gitea_list_milestonesGitea: List milestonesCRead-only
[UNIFIED] List all milestones in a repository.
Inputs: repo (required), site (required), owner (required), state.
gitea_list_organizationsGitea: List organizationsCRead-only
[UNIFIED] List organizations for the current authenticated user.
Inputs: site (required), page, limit.
gitea_list_org_reposGitea: List org reposCRead-only
[UNIFIED] List all repositories of an organization.
Inputs: org (required), site (required), page, limit.
gitea_list_org_teamsGitea: List org teamsBRead-only
[UNIFIED] List all teams in an organization.
Inputs: org (required), site (required), page, limit.
gitea_list_pr_commentsGitea: List pr commentsCRead-only
[UNIFIED] List all comments on a pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_list_pr_commitsGitea: List pr commitsCRead-only
[UNIFIED] List all commits in a pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_list_pr_filesGitea: List pr filesBRead-only
[UNIFIED] List all changed files in a pull request with additions/deletions count.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_list_pr_reviewsGitea: List pr reviewsCRead-only
[UNIFIED] List all reviews on a pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_list_pull_requestsGitea: List pull requestsCRead-only
[UNIFIED] List pull requests in a Gitea repository with filters.
Inputs: repo (required), site (required), owner (required), page, +5 more.
gitea_list_releasesGitea: List releasesBRead-only
[UNIFIED] List releases of a Gitea repository (paginated).
Inputs: repo (required), site (required), owner (required), page, +1 more.
gitea_list_repositoriesGitea: List repositoriesBRead-only
[UNIFIED] List Gitea repositories for a user/organization or current user. Returns repository list with metadata.
Inputs: site (required), page, type, limit, +1 more.
gitea_list_tagsGitea: List tagsCRead-only
[UNIFIED] List all tags in a Gitea repository with commit information.
Inputs: repo (required), site (required), owner (required), page, +1 more.
gitea_list_team_membersGitea: List team membersCRead-only
[UNIFIED] List all members of a team.
Inputs: site (required), team_id (required), page, limit.
gitea_list_user_reposGitea: List user reposCRead-only
[UNIFIED] List all public repositories of a Gitea user.
Inputs: site (required), username (required), page, limit.
gitea_list_webhooksGitea: List webhooksCRead-only
[UNIFIED] List all webhooks configured for a repository.
Inputs: repo (required), site (required), owner (required).
gitea_merge_pull_requestGitea: Merge pull requestCDestructive
[UNIFIED] Merge a pull request using specified merge method.
Inputs: repo (required), site (required), owner (required), pr_number (required), +4 more.
gitea_reopen_issueGitea: Reopen issueCDestructive
[UNIFIED] Reopen a closed issue.
Inputs: repo (required), site (required), owner (required), issue_number (required).
gitea_reopen_pull_requestGitea: Reopen pull requestCDestructive
[UNIFIED] Reopen a closed pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required).
gitea_request_pr_reviewersGitea: Request pr reviewersCDestructive
[UNIFIED] Request reviewers for a pull request.
Inputs: repo (required), site (required), owner (required), pr_number (required), +1 more.
gitea_search_codeGitea: Search codeBRead-only
[UNIFIED] Search code inside Gitea. When owner and repo are set, the search scopes to that repository; otherwise it's an instance-wide code search. Returns Gitea's raw {ok, data: [...]} shape.
Inputs: site (required), keyword (required), page, repo, +2 more.
gitea_search_usersGitea: Search usersCRead-only
[UNIFIED] Search for Gitea users by query or user ID.
Inputs: site (required), q, uid.
gitea_test_webhookGitea: Test webhookCDestructive
[UNIFIED] Send a test payload to a webhook to verify it's working.
Inputs: repo (required), site (required), owner (required), webhook_id (required).
gitea_update_fileGitea: Update fileCDestructive
[UNIFIED] Update an existing file in a Gitea repository. Requires current file SHA for conflict detection.
Inputs: sha (required), path (required), repo (required), site (required), +6 more.
gitea_update_issueGitea: Update issueCDestructive
[UNIFIED] Update an existing issue. Can modify title, body, state, assignees, labels, and milestone.
Inputs: repo (required), site (required), owner (required), issue_number (required), +7 more.
gitea_update_pull_requestGitea: Update pull requestCDestructive
[UNIFIED] Update an existing pull request. Can modify title, body, state, assignees, labels, and milestone.
Inputs: repo (required), site (required), owner (required), pr_number (required), +7 more.
gitea_update_repositoryGitea: Update repositoryCDestructive
[UNIFIED] Update Gitea repository settings like name, description, visibility, and features.
Inputs: repo (required), site (required), owner (required), name, +10 more.
gitea_update_webhookGitea: Update webhookCDestructive
[UNIFIED] Update an existing webhook's configuration, events, or active status.
Inputs: repo (required), site (required), owner (required), webhook_id (required), +5 more.
gitea_upload_abortGitea: Upload abortBDestructive
[UNIFIED] Abort a Gitea binary upload session and delete its spill file.
Inputs: site (required), session_id (required).
gitea_upload_chunkGitea: Upload chunkADestructive
[UNIFIED] Append one base64-encoded chunk to a Gitea binary upload session. Chunks must arrive in order. Prefer the HTTP upload URL from gitea_upload_start when available; this is the fallback path.
Inputs: site (required), index (required), data_b64 (required), session_id (required), +1 more.
gitea_upload_finishGitea: Upload finishBDestructive
[UNIFIED] Finalize a complete Gitea binary upload session. For release_asset sessions this verifies optional sha256, then sends the original bytes to Gitea as multipart/form-data.
Inputs: site (required), session_id (required).
gitea_upload_release_assetGitea: Upload release assetADestructive
[UNIFIED] Upload a small base64-encoded release asset to a Gitea release. For larger files, prefer gitea_upload_start plus the returned HTTP upload URL, then gitea_upload_finish.
Inputs: repo (required), site (required), owner (required), filename (required), +2 more.
gitea_upload_startGitea: Upload startADestructive
[UNIFIED] Start a Gitea binary upload session. First supported kind is release_asset. On per-user MCP endpoints this returns /u/{user_id}/{alias}/gitea-upload/{session_id}, so callers can PUT raw bytes with curl --data-binary @file using the same Bearer token. TTL 1h, hard cap 500 MB by default.
Inputs: repo (required), site (required), owner (required), filename (required), +4 more.
gitea_upload_statusGitea: Upload statusCRead-only
[UNIFIED] Query a Gitea binary upload session status and target metadata.
Inputs: site (required), session_id (required).
gmail_add_labelGmail: Add labelBDestructive
[UNIFIED] Add one or more labels to a message (e.g. STARRED, IMPORTANT, or a user label id from list_labels).
Inputs: site (required), label_ids (required), message_id (required).
gmail_get_attachmentGmail: Get attachmentARead-only
[UNIFIED] Get a message attachment by id. Returns the attachment filename, mime type, size, and base64-encoded data. Find attachment ids in a get_message (format=full) response under parts[].body.attachmentId.
Inputs: site (required), message_id (required), attachment_id (required).
gmail_get_messageGmail: Get messageARead-only
[UNIFIED] Get a single Gmail message by id, including headers and (with format=full) the body parts. Use format=metadata for headers only (cheaper) or format=raw for the full RFC822 message.
Inputs: site (required), message_id (required), format.
gmail_list_labelsGmail: List labelsARead-only
[UNIFIED] List all Gmail labels (system + user) with their ids. System label ids include INBOX, UNREAD, STARRED, IMPORTANT, TRASH, SENT, DRAFT. Use these ids with mark_read / mark_unread / add_label / remove_label.
Inputs: site (required).
gmail_list_messagesGmail: List messagesARead-only
[UNIFIED] List Gmail messages. Optionally filter with a Gmail search query (q), label ids, and paginate. Returns message ids + thread ids; use gmail_get_message to read a message's content.
Inputs: site (required), q, label_ids, page_token, +1 more.
gmail_mark_readGmail: Mark readBDestructive
[UNIFIED] Mark a message as read (removes the UNREAD label).
Inputs: site (required), message_id (required).
gmail_mark_unreadGmail: Mark unreadBDestructive
[UNIFIED] Mark a message as unread (adds the UNREAD label).
Inputs: site (required), message_id (required).
gmail_remove_labelGmail: Remove labelBDestructive
[UNIFIED] Remove one or more labels from a message (e.g. STARRED, INBOX to archive, or a user label id).
Inputs: site (required), label_ids (required), message_id (required).
gmail_trash_messageGmail: Trash messageBDestructive
[UNIFIED] Move a Gmail message to trash. Recoverable until ~30 days.
Inputs: site (required), message_id (required).
gmail_untrash_messageGmail: Untrash messageBDestructive
[UNIFIED] Remove a message from trash (restore to inbox).
Inputs: site (required), message_id (required).
google_search_console_inspect_urlSearch Console: Inspect urlARead-only
[UNIFIED] Inspect a URL's indexing status within a Search Console property. Returns the index status (INDEXED, NOT_INDEXED, etc.), crawling data, mobile usability, rich results, and AMP status. The inspection URL must be under the property's scope — cross-property inspection is rejected by the Google API.
Inputs: site (required), site_url (required), inspection_url (required), language.
google_search_console_list_propertiesSearch Console: List propertiesARead-only
[UNIFIED] List all Search Console properties (sites) the authenticated user has access to, with their permission levels. Returns property URLs (domain properties as sc-domain:example.com, URL-prefix properties as https://example.com/) and permission levels (siteFullUser, siteOwner, siteRestrictedUser).
Inputs: site (required).
google_search_console_list_sitemapsSearch Console: List sitemapsARead-only
[UNIFIED] List sitemaps submitted for a Search Console property, including their submission status, last processed date, errors, and warnings. Use list_properties first to discover available property URLs.
Inputs: site (required), site_url (required), page_token.
google_search_console_search_analyticsSearch Console: Search analyticsCRead-only
[UNIFIED] Query Search Analytics data for a property with bounded dimensions and date ranges. Returns rows with clicks, impressions, CTR, and position broken down by the specified dimensions. Date range is limited to 548 days (~18 months). Maximum 25,000 rows per request.
Inputs: site (required), end_date (required), site_url (required), start_date (required), +5 more.
list_projectsA
List all discovered projects.
Returns information about all projects that have been configured through environment variables.
Returns: JSON string with list of projects
Inputs: no named parameters. Returns: result
manage_api_keys_createC
Create a new API key for a project.
Inputs: project_id (required), scope, description, expires_in_days. Returns: object
manage_api_keys_deleteB
Permanently delete an API key (cannot be undone).
Inputs: key_id (required). Returns: object
manage_api_keys_get_infoC
Get detailed information about a specific API key.
Inputs: key_id (required). Returns: object
manage_api_keys_listA
List API keys with optional filtering.
Requires: Global API key (Master API Key or global admin key)
Filtering Behavior:
project_id=null(default): Returns ALL keys (global + project-specific)project_id="*": Returns ONLY global keysproject_id="wordpress_site1": Returns keys for that project + global keys
Inputs: project_id, include_revoked. Returns: object
manage_api_keys_revokeA
Revoke an API key (soft delete - can be restored).
Inputs: key_id (required). Returns: object
manage_api_keys_rotateA
Rotate all keys for a project.
Creates new keys with the same scopes and revokes old ones. Use this for security rotation or if keys may be compromised.
Inputs: project_id (required). Returns: object
n8n_activate_workflown8n: Activate workflowBDestructive
[UNIFIED] Activate a workflow so it runs automatically when triggered. Workflow must have at least one trigger node.
Inputs: site (required), workflow_id (required).
n8n_add_project_usersn8n: Add project usersBDestructive
[UNIFIED] [Enterprise] Add users to a project with roles. Requires n8n Enterprise/Pro license.
Inputs: site (required), users (required), project_id (required).
n8n_change_project_user_rolen8n: Change project user roleBDestructive
[UNIFIED] [Enterprise] Change a user's role in a project. Requires n8n Enterprise/Pro license.
Inputs: role (required), site (required), user_id (required), project_id (required).
n8n_change_user_rolen8n: Change user roleCDestructive
[UNIFIED] Change a user's global role.
Inputs: site (required), user_id (required), new_role (required).
n8n_create_credentialn8n: Create credentialB
[UNIFIED] Create a new credential. Use get_credential_schema to see required fields.
Inputs: data (required), name (required), site (required), type (required).
n8n_create_projectn8n: Create projectBDestructive
[UNIFIED] [Enterprise] Create a new project. Requires n8n Enterprise/Pro license.
Inputs: name (required), site (required).
n8n_create_tagn8n: Create tagC
[UNIFIED] Create a new tag for workflow organization.
Inputs: name (required), site (required).
n8n_create_usern8n: Create userCDestructive
[UNIFIED] Invite/create a new user.
Inputs: site (required), email (required), role.
n8n_create_variablen8n: Create variableB
[UNIFIED] [Enterprise] Create a new environment variable. Requires n8n Enterprise/Pro license.
Inputs: key (required), site (required), value (required).
n8n_create_workflown8n: Create workflowB
[UNIFIED] Create a new workflow from JSON definition. Workflow will be inactive by default. Note: settings and static_data are OPTIONAL - omit them entirely if not needed.
Inputs: name (required), site (required), nodes, settings, +2 more.
n8n_deactivate_workflown8n: Deactivate workflowADestructive
[UNIFIED] Deactivate a workflow. It will no longer run automatically but can still be executed manually.
Inputs: site (required), workflow_id (required).
n8n_delete_credentialn8n: Delete credentialCDestructive
[UNIFIED] Delete a credential.
Inputs: site (required), credential_id (required).
n8n_delete_executionn8n: Delete executionBDestructive
[UNIFIED] Delete a single execution record. This removes the execution from history.
Inputs: site (required), execution_id (required).
n8n_delete_executionsn8n: Delete executionsCDestructive
[UNIFIED] Bulk delete multiple execution records.
Inputs: site (required), execution_ids (required).
n8n_delete_projectn8n: Delete projectBDestructive
[UNIFIED] [Enterprise] Delete a project. Requires n8n Enterprise/Pro license.
Inputs: site (required), project_id (required).
n8n_delete_tagn8n: Delete tagDDestructive
[UNIFIED] Delete a tag.
Inputs: site (required), tag_id (required).
n8n_delete_tagsn8n: Delete tagsCDestructive
[UNIFIED] Bulk delete multiple tags.
Inputs: site (required), tag_ids (required).
n8n_delete_usern8n: Delete userCDestructive
[UNIFIED] Delete a user from the instance.
Inputs: site (required), user_id (required).
n8n_delete_variablen8n: Delete variableBDestructive
[UNIFIED] [Enterprise] Delete an environment variable. Requires n8n Enterprise/Pro license.
Inputs: key (required), site (required).
n8n_delete_workflown8n: Delete workflowCDestructive
[UNIFIED] Permanently delete a workflow. This action cannot be undone.
Inputs: site (required), workflow_id (required).
n8n_duplicate_workflown8n: Duplicate workflowCDestructive
[UNIFIED] Create a copy of an existing workflow with a new name.
Inputs: site (required), new_name (required), workflow_id (required).
n8n_execute_workflown8n: Execute workflowBDestructive
[UNIFIED] Manually execute a workflow and return execution ID. Use get_execution to check status and results.
Inputs: site (required), workflow_id (required).
n8n_execute_workflow_with_datan8n: Execute workflow with dataCDestructive
[UNIFIED] Execute workflow with custom input data. Useful for workflows with webhook or manual triggers.
Inputs: data (required), site (required), workflow_id (required).
n8n_export_workflown8n: Export workflowBRead-only
[UNIFIED] Export a workflow as JSON. Can be used for backup or sharing.
Inputs: site (required), workflow_id (required).
n8n_get_credentialn8n: Get credentialBRead-only
[UNIFIED] Get credential metadata by ID. Note: Listing all credentials is not supported in n8n Public API.
Inputs: site (required), credential_id (required).
n8n_get_credential_scheman8n: Get credential schemaBRead-only
[UNIFIED] Get the schema for a credential type. Shows required fields.
Inputs: site (required), credential_type (required).
n8n_get_executionn8n: Get executionBRead-only
[UNIFIED] Get detailed information about a specific execution including status, timing, and node outputs.
Inputs: site (required), execution_id (required), include_data.
n8n_get_execution_datan8n: Get execution dataBRead-only
[UNIFIED] Get full execution data including all node inputs and outputs. Useful for debugging.
Inputs: site (required), execution_id (required).
n8n_get_instance_infon8n: Get instance infoBRead-only
[UNIFIED] Get n8n instance information including version and configuration.
Inputs: site (required).
n8n_get_projectn8n: Get projectARead-only
[UNIFIED] [Enterprise] Get project details by ID. Requires n8n Enterprise/Pro license.
Inputs: site (required), project_id (required).
n8n_get_tagn8n: Get tagCRead-only
[UNIFIED] Get tag details by ID.
Inputs: site (required), tag_id (required).
n8n_get_usern8n: Get userCDestructive
[UNIFIED] Get user details by ID or email.
Inputs: site (required), user_id (required), include_role.
n8n_get_variablen8n: Get variableBRead-only
[UNIFIED] [Enterprise] Get variable value by key. Requires n8n Enterprise/Pro license.
Inputs: key (required), site (required).
n8n_get_workflown8n: Get workflowBRead-only
[UNIFIED] Get detailed information about a specific workflow including nodes, connections, and settings.
Inputs: site (required), workflow_id (required).
n8n_get_workflow_tagsn8n: Get workflow tagsCRead-only
[UNIFIED] Get list of tags assigned to a workflow.
Inputs: site (required), workflow_id (required).
n8n_health_checkn8n: Health checkBRead-only
[UNIFIED] Check if the n8n instance is healthy and accessible.
Inputs: site (required).
n8n_import_workflown8n: Import workflowCDestructive
[UNIFIED] Import a workflow from JSON definition. Similar to create but accepts full workflow JSON.
Inputs: site (required), workflow_json (required), name_override.
n8n_list_executionsn8n: List executionsCRead-only
[UNIFIED] List workflow executions with filters by status, workflow, and date. Returns execution history. All filter parameters are OPTIONAL.
Inputs: site (required), limit, cursor, status, +3 more.
n8n_list_projectsn8n: List projectsBRead-only
[UNIFIED] [Enterprise] List all projects. Requires n8n Enterprise/Pro license. All parameters are OPTIONAL.
Inputs: site (required), limit, cursor.
n8n_list_tagsn8n: List tagsCRead-only
[UNIFIED] List all tags used for workflow organization. All parameters are OPTIONAL.
Inputs: site (required), limit, cursor.
n8n_list_usersn8n: List usersCDestructive
[UNIFIED] List all users in the n8n instance. All parameters are OPTIONAL.
Inputs: site (required), limit, cursor, include_role.
n8n_list_variablesn8n: List variablesCRead-only
[UNIFIED] [Enterprise] List all environment variables. Requires n8n Enterprise/Pro license. All parameters are OPTIONAL.
Inputs: site (required), limit, cursor.
n8n_list_workflowsn8n: List workflowsBRead-only
[UNIFIED] List all n8n workflows with optional filters. Returns workflow ID, name, active status, tags, and metadata. All filter parameters are OPTIONAL.
Inputs: site (required), name, tags, limit, +2 more.
n8n_remove_project_usern8n: Remove project userBDestructive
[UNIFIED] [Enterprise] Remove a user from a project. Requires n8n Enterprise/Pro license.
Inputs: site (required), user_id (required), project_id (required).
n8n_retry_executionn8n: Retry executionBDestructive
[UNIFIED] Retry a failed execution. Creates a new execution with the same input data.
Inputs: site (required), execution_id (required).
n8n_run_security_auditn8n: Run security auditCDestructive
[UNIFIED] Run a security audit on the n8n instance. Returns security diagnostics grouped by category. All parameters are OPTIONAL.
Inputs: site (required), categories.
n8n_set_variablesn8n: Set variablesBDestructive
[UNIFIED] [Enterprise] Bulk set multiple variables at once. Requires n8n Enterprise/Pro license.
Inputs: site (required), variables (required).
n8n_set_workflow_tagsn8n: Set workflow tagsBDestructive
[UNIFIED] Assign tags to a workflow. Replaces existing tags. Pass empty array [] to remove all tags.
Inputs: site (required), workflow_id (required), tag_ids.
n8n_source_control_pulln8n: Source control pullBDestructive
[UNIFIED] [Enterprise] Pull workflows from source control (Git). Syncs workflows from connected repository. Requires n8n Enterprise/Pro license. All parameters are OPTIONAL.
Inputs: site (required), force, variables.
n8n_stop_executionn8n: Stop executionCDestructive
[UNIFIED] Stop a currently running execution.
Inputs: site (required), execution_id (required).
n8n_transfer_credentialn8n: Transfer credentialCDestructive
[UNIFIED] [Enterprise] Transfer a credential to another project. Requires n8n Enterprise/Pro license.
Inputs: site (required), credential_id (required), destination_project_id (required).
n8n_transfer_workflow_to_projectn8n: Transfer workflow to projectBDestructive
[UNIFIED] Transfer a workflow to a different project (Enterprise/Pro). The destination project must exist and the API key must have access to both the source and destination projects.
Inputs: site (required), workflow_id (required), destination_project_id (required).
n8n_update_projectn8n: Update projectCDestructive
[UNIFIED] [Enterprise] Update project metadata. Requires n8n Enterprise/Pro license.
Inputs: name (required), site (required), project_id (required).
n8n_update_tagn8n: Update tagCDestructive
[UNIFIED] Update tag name.
Inputs: name (required), site (required), tag_id (required).
n8n_update_variablen8n: Update variableBDestructive
[UNIFIED] [Enterprise] Update an existing variable's value. Requires n8n Enterprise/Pro license.
Inputs: key (required), site (required), value (required).
n8n_update_workflown8n: Update workflowBDestructive
[UNIFIED] Update an existing workflow. Can modify nodes, connections, settings, or name. All parameters except workflow_id are OPTIONAL - omit them to keep current values.
Inputs: site (required), workflow_id (required), name, nodes, +2 more.
n8n_wait_for_executionn8n: Wait for executionBRead-only
[UNIFIED] Poll an execution until it completes. Returns final status and output.
Inputs: site (required), execution_id (required), poll_interval, timeout_seconds.
oauth_get_client_infoC
Get detailed information about a specific OAuth client.
Inputs: client_id (required). Returns: object
oauth_list_clientsA
List all registered OAuth clients.
Returns client information (excluding secrets).
Returns: Dict with list of clients
Inputs: no named parameters. Returns: object
oauth_register_clientC
Register a new OAuth 2.1 client.
Inputs: client_name (required), redirect_uris (required), metadata, grant_types, +1 more. Returns: object
oauth_revoke_clientB
Revoke (delete) an OAuth client.
This will delete the client and prevent further authentication. Existing tokens will continue to work until they expire.
Inputs: client_id (required). Returns: object
openpanel_assign_groupOpenPanel: Assign groupBDestructive
[UNIFIED] Assign a user to one or more groups. If no profile_id is provided, falls back to device ID.
Inputs: site (required), group_ids (required), profile_id.
openpanel_create_clientOpenPanel: Create clientADestructive
[UNIFIED] Create a new API client via Manage API. Modes: 'write' (tracking only), 'read' (export/analytics), 'root' (full access). Requires 'root' mode client.
Inputs: name (required), site (required), project_id (required), mode.
openpanel_create_groupOpenPanel: Create groupCDestructive
[UNIFIED] Create or update a group (e.g., company, workspace, team). Groups can be associated with events and profiles.
Inputs: name (required), site (required), group_id (required), group_type (required), +1 more.
openpanel_create_projectOpenPanel: Create projectBDestructive
[UNIFIED] Create a new project via Manage API. Requires 'root' mode client.
Inputs: name (required), site (required), domain.
openpanel_decrement_propertyOpenPanel: Decrement propertyBDestructive
[UNIFIED] Decrement a numeric property on a user profile. IMPORTANT: Profile must exist first (use identify_user). Property must be numeric.
Inputs: site (required), profile_id (required), property_name (required), value.
openpanel_delete_clientOpenPanel: Delete clientBDestructive
[UNIFIED] Delete an API client via Manage API. WARNING: Any integrations using this client will stop working. Requires 'root' mode client.
Inputs: site (required), client_id (required).
openpanel_delete_projectOpenPanel: Delete projectBDestructive
[UNIFIED] Delete a project via Manage API. WARNING: Permanently deletes all project data. Requires 'root' mode client.
Inputs: site (required), project_id (required).
openpanel_export_chart_dataOpenPanel: Export chart dataBRead-only
[UNIFIED] Export aggregated chart data with time series and breakdowns. Requires 'read' or 'root' mode client.
Inputs: site (required), events (required), interval, previous, +3 more.
openpanel_export_eventsOpenPanel: Export eventsBRead-only
[UNIFIED] Export raw event data with filters and pagination. Returns individual event records. Requires 'read' or 'root' mode client.
Inputs: site (required), end, page, event, +5 more.
openpanel_export_events_csvOpenPanel: Export events csvCRead-only
[UNIFIED] Export events as CSV-formatted data for spreadsheet analysis. Requires 'read' or 'root' mode client.
Inputs: site (required), end, event, limit, +2 more.
openpanel_export_profile_dataOpenPanel: Export profile dataBRead-only
[UNIFIED] Export all data for a user profile (GDPR data portability). Returns events and profile data. Requires 'read' or 'root' mode client.
Inputs: site (required), profile_id (required), project_id (required), format.
openpanel_get_clientOpenPanel: Get clientCDestructive
[UNIFIED] Get API client details via Manage API. Requires 'root' mode client.
Inputs: site (required), client_id (required).
openpanel_get_device_dataOpenPanel: Get device dataCRead-only
[UNIFIED] Get device/browser/OS breakdown of visitors via Insights API.
Inputs: site (required), limit, breakdown, date_range, +1 more.
openpanel_get_event_countOpenPanel: Get event countCRead-only
[UNIFIED] Get total event count with optional filters via Export API.
Inputs: site (required), event, date_range, project_id.
openpanel_get_geo_dataOpenPanel: Get geo dataCRead-only
[UNIFIED] Get geographic distribution of visitors via Insights API.
Inputs: site (required), limit, breakdown, date_range, +1 more.
openpanel_get_instance_infoOpenPanel: Get instance infoBRead-only
[UNIFIED] Get OpenPanel instance information including URL and configuration.
Inputs: site (required).
openpanel_get_overview_reportOpenPanel: Get overview reportCRead-only
[UNIFIED] Get overview statistics including visitors, page views, sessions, bounce rate, and duration via Insights API.
Inputs: site (required), date_range, project_id.
openpanel_get_page_viewsOpenPanel: Get page viewsCRead-only
[UNIFIED] Get page view statistics via Insights API.
Inputs: site (required), date_range, project_id.
openpanel_get_profile_eventsOpenPanel: Get profile eventsBRead-only
[UNIFIED] Get events for a specific user profile via Export API. Requires 'read' or 'root' mode client.
Inputs: site (required), profile_id (required), project_id (required), event, +1 more.
openpanel_get_profile_sessionsOpenPanel: Get profile sessionsBRead-only
[UNIFIED] Get sessions for a specific user profile via Export API. Requires 'read' or 'root' mode client.
Inputs: site (required), profile_id (required), project_id (required), limit.
openpanel_get_projectOpenPanel: Get projectBRead-only
[UNIFIED] Get project details via Manage API. Requires 'root' mode client.
Inputs: site (required), project_id (required).
openpanel_get_rate_limit_statusOpenPanel: Get rate limit statusCRead-only
[UNIFIED] Check current rate limit status for API calls.
Inputs: site (required).
openpanel_get_realtime_statsOpenPanel: Get realtime statsCRead-only
[UNIFIED] Get real-time active visitor count via Insights live API.
Inputs: site (required), project_id.
openpanel_get_storage_statsOpenPanel: Get storage statsBRead-only
[UNIFIED] Get storage usage statistics (events stored in ClickHouse).
Inputs: site (required), project_id (required).
openpanel_get_top_pagesOpenPanel: Get top pagesCRead-only
[UNIFIED] Get top pages by view count via Insights API.
Inputs: site (required), limit, date_range, project_id.
openpanel_get_top_referrersOpenPanel: Get top referrersCRead-only
[UNIFIED] Get top traffic sources/referrers via Insights API.
Inputs: site (required), limit, date_range, project_id.
openpanel_get_unique_usersOpenPanel: Get unique usersCRead-only
[UNIFIED] Get unique user/visitor count for a time period via Insights API.
Inputs: site (required), date_range, project_id.
openpanel_get_usage_statsOpenPanel: Get usage statsCRead-only
[UNIFIED] Get usage statistics for the OpenPanel instance (events, users, etc.).
Inputs: site (required), project_id (required), date_range.
openpanel_health_checkOpenPanel: Health checkCRead-only
[UNIFIED] Check OpenPanel instance health and service status.
Inputs: site (required).
openpanel_identify_userOpenPanel: Identify userBDestructive
[UNIFIED] Identify a user and set their profile properties. Use this to associate events with users.
Inputs: site (required), profile_id (required), email, client_ip, +4 more.
openpanel_increment_propertyOpenPanel: Increment propertyBDestructive
[UNIFIED] Increment a numeric property on a user profile. IMPORTANT: Profile must exist first (use identify_user). Property must be numeric.
Inputs: site (required), profile_id (required), property_name (required), value.
openpanel_list_clientsOpenPanel: List clientsBDestructive
[UNIFIED] List all API clients via Manage API. Requires 'root' mode client.
Inputs: site (required).
openpanel_list_projectsOpenPanel: List projectsCDestructive
[UNIFIED] List all projects via Manage API. Requires 'root' mode client.
Inputs: site (required).
openpanel_set_user_propertiesOpenPanel: Set user propertiesCDestructive
[UNIFIED] Update properties for an existing user profile.
Inputs: site (required), profile_id (required), properties (required).
openpanel_test_connectionOpenPanel: Test connectionCRead-only
[UNIFIED] Test connection to OpenPanel API with current credentials.
Inputs: site (required).
openpanel_track_batchOpenPanel: Track batchCDestructive
[UNIFIED] Track multiple events in a single request for efficiency.
Inputs: site (required), events (required), client_ip, user_agent.
openpanel_track_eventOpenPanel: Track eventCDestructive
[UNIFIED] Track a custom event with properties. Events can have any custom properties for analytics.
Inputs: name (required), site (required), client_ip, timestamp, +3 more.
openpanel_track_page_viewOpenPanel: Track page viewCDestructive
[UNIFIED] Track a page view event with URL and referrer information.
Inputs: path (required), site (required), title, referrer, +4 more.
openpanel_track_revenueOpenPanel: Track revenueCDestructive
[UNIFIED] Track a revenue/purchase event with amount and currency.
Inputs: site (required), amount (required), currency, order_id, +5 more.
openpanel_track_screen_viewOpenPanel: Track screen viewCDestructive
[UNIFIED] Track a screen view event for mobile applications.
Inputs: site (required), screen_name (required), client_ip, profile_id, +3 more.
openpanel_update_clientOpenPanel: Update clientBDestructive
[UNIFIED] Update an API client via Manage API. Requires 'root' mode client.
Inputs: site (required), client_id (required), mode, name.
openpanel_update_projectOpenPanel: Update projectBDestructive
[UNIFIED] Update a project via Manage API. Requires 'root' mode client.
Inputs: site (required), project_id (required), name, domain.
reset_rate_limitB
Reset rate limit state for a client or all clients.
CAUTION: This is an administrative tool. Use with care.
Inputs: client_id. Returns: result
set_rate_limit_configC
Configure rate limiting settings (Phase X.3).
Inputs: requests_per_day, requests_per_hour, requests_per_minute. Returns: object
supabase_add_columnSupabase: Add columnCDestructive
[UNIFIED] Add a new column to an existing table.
Inputs: site (required), table (required), column_name (required), column_type (required), +3 more.
supabase_ban_userSupabase: Ban userCDestructive
[UNIFIED] Ban a user for a specified duration. Banned users cannot sign in.
Inputs: site (required), user_id (required), duration.
supabase_check_function_healthSupabase: Check function healthCRead-only
[UNIFIED] Check if an Edge Function is responding correctly.
Inputs: site (required), function_name (required).
supabase_count_rowsSupabase: Count rowsBRead-only
[UNIFIED] Count rows in a table, optionally matching filter conditions.
Inputs: site (required), table (required), filters, use_service_role.
supabase_create_bucketSupabase: Create bucketCDestructive
[UNIFIED] Create a new storage bucket. Can be public (accessible without auth) or private.
Inputs: name (required), site (required), public, file_size_limit, +1 more.
supabase_create_policySupabase: Create policyCDestructive
[UNIFIED] Create a Row Level Security (RLS) policy on a table.
Inputs: name (required), site (required), table (required), definition (required), +4 more.
supabase_create_tableSupabase: Create tableCDestructive
[UNIFIED] Create a new database table with specified columns.
Inputs: name (required), site (required), columns (required), schema, +1 more.
supabase_create_userSupabase: Create userCDestructive
[UNIFIED] Create a new user with email and password. Can optionally auto-confirm email and set metadata.
Inputs: site (required), email (required), password (required), phone, +3 more.
supabase_delete_bucketSupabase: Delete bucketBDestructive
[UNIFIED] Delete a storage bucket. Bucket must be empty first (use empty_bucket).
Inputs: site (required), bucket_id (required).
supabase_delete_filesSupabase: Delete filesCDestructive
[UNIFIED] Delete one or more files from a bucket.
Inputs: site (required), paths (required), bucket (required).
supabase_delete_policySupabase: Delete policyCDestructive
[UNIFIED] Delete an RLS policy from a table.
Inputs: name (required), site (required), table (required), schema.
supabase_delete_rowsSupabase: Delete rowsBDestructive
[UNIFIED] Delete rows matching filter conditions. Always requires at least one filter to prevent accidental full-table deletion.
Inputs: site (required), table (required), filters (required), use_service_role.
supabase_delete_userSupabase: Delete userCDestructive
[UNIFIED] Permanently delete a user and all their data.
Inputs: site (required), user_id (required).
supabase_delete_user_factorSupabase: Delete user factorCDestructive
[UNIFIED] Delete an MFA factor from a user.
Inputs: site (required), user_id (required), factor_id (required).
supabase_disable_extensionSupabase: Disable extensionCDestructive
[UNIFIED] Disable (drop) a PostgreSQL extension.
Inputs: name (required), site (required), cascade.
supabase_disable_rlsSupabase: Disable rlsCDestructive
[UNIFIED] Disable Row Level Security on a table. Warning: This removes all RLS protection.
Inputs: site (required), table (required), schema.
supabase_download_fileSupabase: Download fileBRead-only
[UNIFIED] Download a file from storage. Returns base64 encoded content.
Inputs: path (required), site (required), bucket (required).
supabase_drop_columnSupabase: Drop columnCDestructive
[UNIFIED] Remove a column from a table.
Inputs: site (required), table (required), column_name (required), schema, +1 more.
supabase_drop_tableSupabase: Drop tableCDestructive
[UNIFIED] Drop (delete) a database table. Warning: This is irreversible.
Inputs: name (required), site (required), schema, cascade.
supabase_empty_bucketSupabase: Empty bucketBDestructive
[UNIFIED] Delete all files in a bucket. Use before delete_bucket.
Inputs: site (required), bucket_id (required).
supabase_enable_extensionSupabase: Enable extensionCDestructive
[UNIFIED] Enable a PostgreSQL extension (e.g., pgvector, postgis, uuid-ossp).
Inputs: name (required), site (required), schema.
supabase_enable_rlsSupabase: Enable rlsBDestructive
[UNIFIED] Enable Row Level Security on a table.
Inputs: site (required), table (required), schema.
supabase_execute_rpcSupabase: Execute rpcBDestructive
[UNIFIED] Execute a stored procedure or database function via RPC. Functions must be exposed through PostgREST.
Inputs: site (required), function_name (required), params, use_service_role.
supabase_execute_sqlSupabase: Execute sqlBDestructive
[UNIFIED] Execute raw SQL query. Use with caution - bypasses RLS. Returns query results.
Inputs: site (required), query (required).
supabase_generate_linkSupabase: Generate linkCDestructive
[UNIFIED] Generate a magic link, recovery link, or invite link for a user.
Inputs: site (required), email (required), link_type, redirect_to.
supabase_get_auth_statsSupabase: Get auth statsBRead-only
[UNIFIED] Get authentication statistics including total users, confirmed users, and provider breakdown.
Inputs: site (required).
supabase_get_bucketSupabase: Get bucketBRead-only
[UNIFIED] Get detailed information about a specific bucket including settings and limits.
Inputs: site (required), bucket_id (required).
supabase_get_database_sizeSupabase: Get database sizeBRead-only
[UNIFIED] Get the size of the database and tables.
Inputs: site (required).
supabase_get_database_statsSupabase: Get database statsBRead-only
[UNIFIED] Get database statistics including table count, total size, connection info, and PostgreSQL version.
Inputs: site (required).
supabase_get_function_infoSupabase: Get function infoCRead-only
[UNIFIED] Get information about a specific Edge Function including its configuration.
Inputs: site (required), function_name (required).
supabase_get_function_urlSupabase: Get function urlCRead-only
[UNIFIED] Get the full URL for invoking an Edge Function.
Inputs: site (required), function_name (required).
supabase_get_instance_infoSupabase: Get instance infoBRead-only
[UNIFIED] Get Supabase instance information including base URL and available API endpoints.
Inputs: site (required).
supabase_get_public_urlSupabase: Get public urlBRead-only
[UNIFIED] Get the public URL for a file. Only works for files in public buckets.
Inputs: path (required), site (required), bucket (required).
supabase_get_service_statusSupabase: Get service statusBRead-only
[UNIFIED] Get detailed status of a specific Supabase service (postgrest, gotrue, storage, postgres-meta).
Inputs: site (required), service (required).
supabase_get_storage_statsSupabase: Get storage statsBRead-only
[UNIFIED] Get storage statistics including bucket count, total files, and usage information.
Inputs: site (required).
supabase_get_table_constraintsSupabase: Get table constraintsBRead-only
[UNIFIED] Get all constraints (primary key, foreign key, unique, check) for a table.
Inputs: site (required), table (required), schema.
supabase_get_table_indexesSupabase: Get table indexesBRead-only
[UNIFIED] Get indexes for a table including primary keys, unique constraints, and custom indexes.
Inputs: site (required), table (required), schema.
supabase_get_table_relationshipsSupabase: Get table relationshipsBRead-only
[UNIFIED] Get foreign key relationships for a table (both references to and from this table).
Inputs: site (required), table (required), schema.
supabase_get_table_schemaSupabase: Get table schemaBRead-only
[UNIFIED] Get detailed schema information for a table including all columns, data types, constraints, and defaults.
Inputs: site (required), table (required), schema.
supabase_get_userSupabase: Get userCRead-only
[UNIFIED] Get detailed information about a specific user by their ID.
Inputs: site (required), user_id (required).
supabase_get_user_by_emailSupabase: Get user by emailCRead-only
[UNIFIED] Find a user by their email address.
Inputs: site (required), email (required).
supabase_health_checkSupabase: Health checkCRead-only
[UNIFIED] Check health of all Supabase services (PostgREST, GoTrue, Storage). Returns status for each service.
Inputs: site (required).
supabase_insert_rowsSupabase: Insert rowsCDestructive
[UNIFIED] Insert one or more rows into a table. Supports upsert mode for insert-or-update operations.
Inputs: rows (required), site (required), table (required), upsert, +2 more.
supabase_invite_userSupabase: Invite userBDestructive
[UNIFIED] Send an email invitation to a new user. Creates user in 'invited' state.
Inputs: site (required), email (required), redirect_to, user_metadata.
supabase_invoke_functionSupabase: Invoke functionCDestructive
[UNIFIED] Invoke a Supabase Edge Function with POST method. Pass data in the body parameter.
Inputs: site (required), function_name (required), body, headers.
supabase_invoke_function_batchSupabase: Invoke function batchCDestructive
[UNIFIED] Invoke an Edge Function multiple times with different payloads. Useful for batch processing.
Inputs: site (required), payloads (required), function_name (required).
supabase_invoke_function_getSupabase: Invoke function getBRead-only
[UNIFIED] Invoke a Supabase Edge Function with GET method. Use for read-only operations.
Inputs: site (required), function_name (required), params.
supabase_list_bucketsSupabase: List bucketsBRead-only
[UNIFIED] List all storage buckets. Returns bucket names, public/private status, and settings.
Inputs: site (required).
supabase_list_edge_functionsSupabase: List edge functionsBRead-only
[UNIFIED] List all deployed Edge Functions. Note: This reads from the functions volume in Self-Hosted.
Inputs: site (required).
supabase_list_extensionsSupabase: List extensionsCRead-only
[UNIFIED] List installed PostgreSQL extensions (e.g., pgvector, postgis, uuid-ossp).
Inputs: site (required).
supabase_list_filesSupabase: List filesCRead-only
[UNIFIED] List files in a bucket or folder path. Returns file names, sizes, and metadata.
Inputs: site (required), bucket (required), path, limit, +1 more.
supabase_list_functionsSupabase: List functionsCRead-only
[UNIFIED] List database functions/stored procedures in a schema with pagination.
Inputs: site (required), limit, offset, schema.
supabase_list_policiesSupabase: List policiesBRead-only
[UNIFIED] List Row Level Security (RLS) policies. Can filter by table name.
Inputs: site (required), table.
supabase_list_rolesSupabase: List rolesBRead-only
[UNIFIED] List all database roles with their attributes and permissions.
Inputs: site (required).
supabase_list_schemasSupabase: List schemasCRead-only
[UNIFIED] List all database schemas (namespaces).
Inputs: site (required).
supabase_list_tablesSupabase: List tablesBRead-only
[UNIFIED] List all tables in the database with pagination. Returns table names, schemas, and basic metadata.
Inputs: site (required), limit, offset, schema.
supabase_list_triggersSupabase: List triggersCRead-only
[UNIFIED] List database triggers. Can filter by table name.
Inputs: site (required), table.
supabase_list_user_factorsSupabase: List user factorsBRead-only
[UNIFIED] List all MFA factors (TOTP, phone) for a user.
Inputs: site (required), user_id (required).
supabase_list_usersSupabase: List usersCDestructive
[UNIFIED] List all users with pagination. Returns user details including email, phone, metadata, and confirmation status.
Inputs: site (required), page, per_page.
supabase_move_fileSupabase: Move fileBDestructive
[UNIFIED] Move or rename a file within the same bucket.
Inputs: site (required), bucket (required), to_path (required), from_path (required).
supabase_query_tableSupabase: Query tableCRead-only
[UNIFIED] Query data from a table with filters, sorting, and pagination. Uses PostgREST operators: eq, neq, gt, gte, lt, lte, like, ilike, in, is, cs (contains), cd (contained).
Inputs: site (required), table (required), limit, order, +4 more.
supabase_search_usersSupabase: Search usersCRead-only
[UNIFIED] Search users by email or phone number.
Inputs: site (required), query (required), page, per_page.
supabase_test_functionSupabase: Test functionCDestructive
[UNIFIED] Test an Edge Function with sample data and return the response.
Inputs: site (required), function_name (required), method, test_data.
supabase_unban_userSupabase: Unban userBDestructive
[UNIFIED] Remove ban from a user, allowing them to sign in again.
Inputs: site (required), user_id (required).
supabase_update_bucketSupabase: Update bucketCDestructive
[UNIFIED] Update bucket settings like public access, file size limit, or allowed MIME types.
Inputs: site (required), bucket_id (required), public, file_size_limit, +1 more.
supabase_update_policySupabase: Update policyBDestructive
[UNIFIED] Update an existing RLS policy. Drops and recreates the policy.
Inputs: name (required), site (required), table (required), definition (required), +4 more.
supabase_update_rowsSupabase: Update rowsCDestructive
[UNIFIED] Update rows matching filter conditions. Always requires at least one filter to prevent accidental full-table updates.
Inputs: data (required), site (required), table (required), filters (required), +1 more.
supabase_update_userSupabase: Update userCDestructive
[UNIFIED] Update user details including email, password, phone, metadata, or ban status.
Inputs: site (required), user_id (required), email, phone, +5 more.
supabase_upload_fileSupabase: Upload fileCDestructive
[UNIFIED] Upload a file to storage. Content should be base64 encoded.
Inputs: path (required), site (required), bucket (required), content_base64 (required), +2 more.
woocommerce_attach_media_to_productWooCommerce: Attach media to productADestructive
[UNIFIED] Attach existing media library items to a WooCommerce product. Use role='main' for the primary image (gallery index 0) or role='gallery' for extra images. mode='append' preserves the existing gallery; mode='replace' wipes and rewrites it.
Inputs: site (required), media_ids (required), product_id (required), mode, +1 more.
woocommerce_create_couponWooCommerce: Create couponC
[UNIFIED] Create a new WooCommerce coupon. Supports percentage and fixed discounts with usage limits and restrictions.
Inputs: code (required), site (required), amount (required), description, +11 more.
woocommerce_create_customerWooCommerce: Create customerB
[UNIFIED] Create a new WooCommerce customer. Requires email, optionally includes name, username, password, billing, and shipping address.
Inputs: site (required), email (required), billing, password, +4 more.
woocommerce_create_orderWooCommerce: Create orderCDestructive
[UNIFIED] Create a new WooCommerce order. Supports line items, billing, shipping, and payment method configuration.
Inputs: site (required), status, billing, shipping, +3 more.
woocommerce_create_productWooCommerce: Create productC
[UNIFIED] Create a new WooCommerce product. Supports simple and variable products with pricing, inventory, categories, tags, descriptions, and WooCommerce meta_data.
Inputs: name (required), site (required), tags, type, +11 more.
woocommerce_create_product_attributeWooCommerce: Create product attributeB
[UNIFIED] Create a new global product attribute for use in variable products. Attributes define variation options like Size or Color.
Inputs: name (required), site (required), slug, type, +2 more.
woocommerce_create_product_categoryWooCommerce: Create product categoryB
[UNIFIED] Create a new WooCommerce product category. Supports hierarchical categories with parent-child relationships.
Inputs: name (required), site (required), parent, description.
woocommerce_create_product_variationWooCommerce: Create product variationC
[UNIFIED] Create a new variation for a variable product. Defines a specific combination of attributes with its own pricing and inventory.
Inputs: site (required), attributes (required), product_id (required), sku, +7 more.
woocommerce_delete_couponWooCommerce: Delete couponCDestructive
[UNIFIED] Delete a WooCommerce coupon. Can force delete or move to trash.
Inputs: site (required), coupon_id (required), force.
woocommerce_delete_customerWooCommerce: Delete customerADestructive
[UNIFIED] Permanently delete a WooCommerce customer (customers cannot be trashed). Their past orders are kept. Optionally reassign the user's posts to another user ID.
Inputs: site (required), customer_id (required), reassign.
woocommerce_delete_mediaWooCommerce: Delete mediaBDestructive
[UNIFIED] Permanently delete a media library item (e.g. a failed or duplicate upload). WordPress media cannot be trashed through the REST API. Uses the site's WordPress Application Password.
Inputs: site (required), media_id (required).
woocommerce_delete_orderWooCommerce: Delete orderBDestructive
[UNIFIED] Delete or trash a WooCommerce order. Can permanently delete or move to trash.
Inputs: site (required), order_id (required), force.
woocommerce_delete_productWooCommerce: Delete productBDestructive
[UNIFIED] Delete or trash a WooCommerce product. Can permanently delete or move to trash for later restoration.
Inputs: site (required), product_id (required), force.
woocommerce_delete_product_attributeWooCommerce: Delete product attributeADestructive
[UNIFIED] Permanently delete a global WooCommerce product attribute (and its terms). Products keep any custom per-product attributes. Attributes cannot be trashed.
Inputs: site (required), attribute_id (required).
woocommerce_delete_product_categoryWooCommerce: Delete product categoryADestructive
[UNIFIED] Permanently delete a WooCommerce product category. Products in it are not deleted; WooCommerce re-assigns them as needed. Categories cannot be trashed.
Inputs: site (required), category_id (required).
woocommerce_delete_product_variationWooCommerce: Delete product variationBDestructive
[UNIFIED] Delete (or trash) a single variation of a variable WooCommerce product without touching the parent product.
Inputs: site (required), product_id (required), variation_id (required), force.
woocommerce_diagnose_storeWooCommerce: Diagnose storeARead-only
[UNIFIED] Run a read-only health diagnosis of the WooCommerce store and return prioritised findings, each with a concrete fix. Checks: Coming-soon mode, cart/checkout pages (block vs classic, missing or unpublished), theme overrides that the Checkout block ignores, outdated template overrides, enabled payment gateways, shipping methods, HTTPS, PHP errors shown to visitors, WP_DEBUG, and conflicting SEO / page-cache plugins. Changes nothing on the store.
Inputs: site (required).
woocommerce_generate_and_upload_imageWooCommerce: Generate and upload imageCDestructive
[UNIFIED] Generate an image with an AI provider (OpenAI DALL-E, Stability, or Replicate Flux) and upload it to the WordPress media library in one call. Optionally attach to a post or set as featured image. Uses the caller's stored provider API key; falls back to server env vars if no per-user key is set.
Inputs: site (required), prompt (required), provider (required), size, +14 more.
woocommerce_get_customerWooCommerce: Get customerBRead-only
[UNIFIED] Get detailed information about a specific WooCommerce customer. Returns customer details, billing, shipping, and order history.
Inputs: site (required), customer_id (required).
woocommerce_get_customer_reportWooCommerce: Get customer reportBRead-only
[UNIFIED] Get customer statistics report. Returns customer count and spending data. Falls back to customer list if reports endpoint unavailable.
Inputs: site (required), period, date_max, date_min.
woocommerce_get_orderWooCommerce: Get orderBRead-only
[UNIFIED] Get detailed information about a specific WooCommerce order. Returns full order details including line items, totals, billing, and shipping.
Inputs: site (required), order_id (required).
woocommerce_get_productWooCommerce: Get productBRead-only
[UNIFIED] Get detailed information about a specific WooCommerce product by ID. Returns complete product data including pricing, inventory, images, categories, tags, and attributes.
Inputs: site (required), product_id (required), fields.
woocommerce_get_sales_reportWooCommerce: Get sales reportCRead-only
[UNIFIED] Get WooCommerce sales report. Returns sales data with totals and date ranges. Note: WooCommerce v3 API has limited reporting capabilities.
Inputs: site (required), period, date_max, date_min.
woocommerce_get_top_sellersWooCommerce: Get top sellersARead-only
[UNIFIED] Get top selling products report. Uses WooCommerce reports when available and falls back to privacy-safe order aggregation when reports are empty/unavailable. Returns aggregate product totals only, never customer PII.
Inputs: site (required), limit, period, date_max, +3 more.
woocommerce_list_couponsWooCommerce: List couponsBRead-only
[UNIFIED] List WooCommerce coupons. Returns paginated coupon list with discount details and usage restrictions.
Inputs: site (required), page, search, per_page.
woocommerce_list_customersWooCommerce: List customersCRead-only
[UNIFIED] List WooCommerce customers. Returns paginated customer list with email, orders count, and total spent.
Inputs: site (required), page, role, email, +2 more.
woocommerce_list_ordersWooCommerce: List ordersBRead-only
[UNIFIED] List WooCommerce orders. Defaults to a privacy-safe summary for analytics/content workflows. Set summary=false only for explicit operational needs that require customer/billing/payment details.
Inputs: site (required), page, after, before, +6 more.
woocommerce_list_product_attributesWooCommerce: List product attributesBRead-only
[UNIFIED] List all global WooCommerce product attributes. Attributes are used for product variations (e.g., Size, Color).
Inputs: site (required).
woocommerce_list_product_categoriesWooCommerce: List product categoriesBRead-only
[UNIFIED] List WooCommerce product categories. Returns hierarchical category structure with product counts and parent relationships.
Inputs: site (required), page, per_page, hide_empty.
woocommerce_list_productsWooCommerce: List productsBRead-only
[UNIFIED] List WooCommerce products for catalog discovery and editorial/content workflows. Returns lightweight pricing, stock, category/tag, image, permalink, and modified-date fields without full descriptions by default.
Inputs: site (required), tag, page, after, +16 more.
woocommerce_list_product_tagsWooCommerce: List product tagsBRead-only
[UNIFIED] List WooCommerce product tags. Returns all product tags with usage counts.
Inputs: site (required), page, per_page, hide_empty.
woocommerce_list_product_variationsWooCommerce: List product variationsBRead-only
[UNIFIED] List all variations of a variable product. Returns pricing, stock, and attribute combinations for each variation.
Inputs: site (required), product_id (required), page, per_page.
woocommerce_set_featured_imageWooCommerce: Set featured imageCDestructive
[UNIFIED] Set a WordPress post's featured image to an existing media library item.
Inputs: site (required), post_id (required), media_id (required).
woocommerce_update_couponWooCommerce: Update couponCDestructive
[UNIFIED] Update an existing WooCommerce coupon. Can update discount amount, restrictions, and expiration.
Inputs: site (required), coupon_id (required), code, amount, +12 more.
woocommerce_update_customerWooCommerce: Update customerBDestructive
[UNIFIED] Update an existing WooCommerce customer. Can update name, email, billing, shipping, and other customer fields.
Inputs: site (required), customer_id (required), email, billing, +3 more.
woocommerce_update_order_statusWooCommerce: Update order statusCDestructive
[UNIFIED] Update WooCommerce order status. Change order status to pending, processing, completed, etc.
Inputs: site (required), status (required), order_id (required).
woocommerce_update_productWooCommerce: Update productCDestructive
[UNIFIED] Update an existing WooCommerce product. Can update any field including name, slug (permalink), pricing, inventory, status, categories, tags, and more.
Inputs: site (required), product_id (required), name, slug, +12 more.
woocommerce_upload_and_attach_to_productWooCommerce: Upload and attach to productCDestructive
[UNIFIED] Upload a single image (from base64 or URL) and attach it to a WooCommerce product in one call.
Inputs: site (required), source (required), filename (required), product_id (required), +7 more.
wordpress_audit_hook_configureWordPress: Audit hook configureADestructive
[UNIFIED] Configure the companion plugin's audit-hook webhook. Sets the MCPHub endpoint_url, shared HMAC secret (≥16 chars), enabled flag, and list of hooked events. Returns the resulting status. Requires manage_options.
Inputs: site (required), events, secret, enabled, +1 more.
wordpress_audit_hook_disableWordPress: Audit hook disableBDestructive
[UNIFIED] Clear the companion plugin's audit-hook configuration (endpoint_url, secret, events) and stop forwarding events. Requires manage_options.
Inputs: site (required).
wordpress_audit_hook_statusWordPress: Audit hook statusARead-only
[UNIFIED] Read the companion plugin's audit-hook configuration (v2.7.0+): current endpoint_url, whether a secret is set, enabled flag, event list, last-push timestamp, failure count. Secret is never returned in full — only the last 4 characters. Requires manage_options.
Inputs: site (required).
wordpress_bulk_delete_mediaWordPress: Bulk delete mediaADestructive
[UNIFIED] Delete (trash or permanently remove) a list of media attachments in a single call. Max 100 IDs per request. Returns processed / errors / total. Uses stock /wp/v2/media/{id} DELETE so no companion plugin is required, but issues N requests (with a small concurrency cap); for 1000+ attachments, paginate client-side.
Inputs: site (required), media_ids (required), force.
wordpress_bulk_reassign_mediaWordPress: Bulk reassign mediaADestructive
[UNIFIED] Reassign the parent post of a list of media attachments in a single call. Useful for moving attachments between posts, or detaching (use target_post=0). Max 100 IDs. Returns processed / errors / total.
Inputs: site (required), media_ids (required), target_post (required).
wordpress_bulk_update_metaWordPress: Bulk update metaBDestructive
[UNIFIED] Batch-update post_meta (posts, pages, WooCommerce products) in a single REST round-trip via the airano-mcp-bridge companion plugin (v2.2.0+). Each item is permission-checked in PHP via current_user_can('edit_post', post_id). Pass a null meta value to delete that key. Maximum 500 items per call.
Inputs: site (required), updates (required).
wordpress_cache_purgeWordPress: Cache purgeADestructive
[UNIFIED] Purge WordPress caches on the WordPress site via the airano-mcp-bridge companion plugin (v2.4.0+). Auto-detects active cache plugins (LiteSpeed, WP Rocket, W3 Total Cache, WP Super Cache, WP Fastest Cache, SiteGround Optimizer) and calls each one's purge API when scope is page or all. Flushes the object cache when scope is object or all. Requires manage_options on the calling application password.
Inputs: site (required), scope.
wordpress_create_categoryWordPress: Create categoryC
[UNIFIED] Create a new WordPress category. Supports hierarchical categories with parent relationships.
Inputs: name (required), site (required), parent, language, +2 more.
wordpress_create_commentWordPress: Create commentB
[UNIFIED] Create a new WordPress comment on a post. Supports author information and moderation status.
Inputs: site (required), content (required), post_id (required), status, +2 more.
wordpress_create_custom_postWordPress: Create custom postC
[UNIFIED] Create a new post of a custom post type. Supports custom fields/meta data.
Inputs: site (required), title (required), content (required), post_type (required), +2 more.
wordpress_create_pageWordPress: Create pageC
[UNIFIED] Create a new WordPress page. Supports HTML content, parent pages, custom slugs, REST-registered post meta, and generic multilingual metadata.
Inputs: site (required), title (required), content (required), meta, +5 more.
wordpress_create_postWordPress: Create postC
[UNIFIED] Create a new WordPress post. Supports custom slug, categories, tags, featured image, REST-registered post meta, and generic multilingual metadata.
Inputs: site (required), title (required), content (required), meta, +8 more.
wordpress_create_tagWordPress: Create tagC
[UNIFIED] Create a new WordPress tag. Tag slug is auto-generated from name if not provided.
Inputs: name (required), site (required), language, description, +1 more.
wordpress_create_taxonomy_termWordPress: Create taxonomy termC
[UNIFIED] Create a new term in a taxonomy. Supports hierarchical taxonomies with parent terms. Works with any registered taxonomy.
Inputs: name (required), site (required), taxonomy (required), parent, +3 more.
wordpress_delete_categoryWordPress: Delete categoryBDestructive
[UNIFIED] Delete a WordPress category. Can permanently delete or reassign posts to another category.
Inputs: site (required), category_id (required), force.
wordpress_delete_commentWordPress: Delete commentBDestructive
[UNIFIED] Delete or trash a WordPress comment. Can permanently delete or move to trash.
Inputs: site (required), comment_id (required), force.
wordpress_delete_mediaWordPress: Delete mediaCDestructive
[UNIFIED] Delete media from library. Can permanently delete or move to trash.
Inputs: site (required), media_id (required), force.
wordpress_delete_pageWordPress: Delete pageBDestructive
[UNIFIED] Delete or trash a WordPress page. Can permanently delete or move to trash.
Inputs: site (required), page_id (required), force.
wordpress_delete_postWordPress: Delete postCDestructive
[UNIFIED] Delete or trash a WordPress post. Can permanently delete or move to trash.
Inputs: site (required), post_id (required), force.
wordpress_delete_tagWordPress: Delete tagCDestructive
[UNIFIED] Delete a WordPress tag. Permanently removes the tag from all posts.
Inputs: site (required), tag_id (required), force.
wordpress_diagnose_siteWordPress: Diagnose siteARead-only
[UNIFIED] Run a read-only health diagnosis of the WordPress site and return prioritised findings (fail / warn / info / ok / skip), each with a concrete fix. Checks: REST API reachability (incl. HTTP Basic auth walls), Application-Password authentication (incl. a stripped Authorization header), WP_DEBUG in production, search-engine noindex, duplicate tags and markup in the title, conflicting SEO / page-cache plugins, mixed content, and WordPress core Site Health tests. Changes nothing on the site.
Inputs: site (required), include_site_health_tests.
wordpress_export_contentWordPress: Export contentARead-only
[UNIFIED] Export posts/pages/products as structured JSON via the airano-mcp-bridge companion plugin (v2.3.0+). Includes referenced media, taxonomy terms, and post_meta. Paginates via offset/limit; response contains has_more + next_offset. Not a WXR dump — intended for AI-pipeline processing, not WP-to-WP import.
Inputs: site (required), limit, since, offset, +5 more.
wordpress_generate_and_upload_imageWordPress: Generate and upload imageBDestructive
[UNIFIED] Generate an image with an AI provider (OpenAI DALL-E, Stability, or Replicate Flux) and upload it to the WordPress media library in one call. Optionally attach to a post or set as featured image. Uses the caller's stored provider API key; falls back to server env vars if no per-user key is set.
Inputs: site (required), prompt (required), provider (required), size, +14 more.
wordpress_get_active_themeWordPress: Get active themeBRead-only
[UNIFIED] Get information about the currently active WordPress theme including name, version, and author.
Inputs: site (required).
wordpress_get_commentWordPress: Get commentBRead-only
[UNIFIED] Get a specific WordPress comment by ID. Returns complete comment data including content, author, and moderation status.
Inputs: site (required), comment_id (required).
wordpress_get_current_userWordPress: Get current userBRead-only
[UNIFIED] Get information about the currently authenticated user including ID, name, username, email, and roles.
Inputs: site (required).
wordpress_get_internal_linksWordPress: Get internal linksBRead-only
[UNIFIED] Extract internal links from a post's content. Returns list of internal links with anchor text and URL. Useful for SEO internal linking analysis and avoiding duplicate links.
Inputs: site (required), post_id (required).
wordpress_get_mediaWordPress: Get mediaBRead-only
[UNIFIED] Get detailed information about a media item. Returns full metadata including URLs, dimensions, and MIME type.
Inputs: site (required), media_id (required).
wordpress_get_pageWordPress: Get pageBRead-only
[UNIFIED] Get a specific WordPress page by ID. Returns complete page data including content, metadata, and author information.
Inputs: site (required), page_id (required), fields, meta_keys.
wordpress_get_postWordPress: Get postBRead-only
[UNIFIED] Get a specific WordPress post by ID. Returns complete post data including content, metadata, and author information.
Inputs: site (required), post_id (required), fields, meta_keys.
wordpress_get_post_seoWordPress: Get post seoBRead-only
[UNIFIED] Get SEO metadata for a WordPress post or page. Returns Rank Math or Yoast SEO fields including focus keyword, meta title, description, and social media settings. Requires SEO API Bridge plugin.
Inputs: site (required), post_id (required).
wordpress_get_post_type_infoWordPress: Get post type infoBRead-only
[UNIFIED] Get detailed information about a specific post type including supported features and REST API configuration.
Inputs: site (required), post_type (required).
wordpress_get_product_seoWordPress: Get product seoARead-only
[UNIFIED] Get SEO metadata for a WooCommerce product. Returns Rank Math or Yoast SEO fields including focus keyword, meta title, description, and social media settings. Requires SEO API Bridge plugin.
Inputs: site (required), product_id (required).
wordpress_get_settingsWordPress: Get settingsBRead-only
[UNIFIED] Get WordPress site settings. Includes site title, description, URL, email, timezone, and language.
Inputs: site (required).
wordpress_get_site_healthWordPress: Get site healthBRead-only
[UNIFIED] Check WordPress site health and accessibility. Returns comprehensive health status including WordPress, WooCommerce, and SEO plugin availability.
Inputs: site (required).
wordpress_list_categoriesWordPress: List categoriesCRead-only
[UNIFIED] List WordPress post categories. Returns hierarchical list of categories with post counts.
Inputs: site (required), page, per_page, hide_empty.
wordpress_list_commentsWordPress: List commentsCRead-only
[UNIFIED] List WordPress comments. Returns paginated list of comments with author, content, and moderation status.
Inputs: site (required), page, status, post_id, +1 more.
wordpress_list_custom_postsWordPress: List custom postsBRead-only
[UNIFIED] List posts of a specific custom post type. Use list_post_types first to discover available post types.
Inputs: site (required), post_type (required), page, status, +1 more.
wordpress_list_mediaWordPress: List mediaCRead-only
[UNIFIED] List media library items. Returns images, videos, documents with URLs and metadata.
Inputs: site (required), page, per_page, media_type.
wordpress_list_pagesWordPress: List pagesCRead-only
[UNIFIED] List WordPress pages. Returns paginated list of pages with metadata.
Inputs: site (required), page, status, per_page.
wordpress_list_pluginsWordPress: List pluginsBRead-only
[UNIFIED] List installed WordPress plugins. Shows plugin status (active/inactive), version, and details.
Inputs: site (required), status.
wordpress_list_postsWordPress: List postsBRead-only
[UNIFIED] List WordPress posts. Returns paginated list of posts with title, excerpt, status, and metadata.
Inputs: site (required), page, search, status, +3 more.
wordpress_list_post_typesWordPress: List post typesBRead-only
[UNIFIED] List all registered post types including built-in (post, page) and custom post types (portfolio, testimonials, etc.).
Inputs: site (required).
wordpress_list_tagsWordPress: List tagsCRead-only
[UNIFIED] List WordPress post tags. Returns all tags with usage counts and metadata.
Inputs: site (required), page, per_page, hide_empty.
wordpress_list_taxonomiesWordPress: List taxonomiesBRead-only
[UNIFIED] List all registered taxonomies including built-in (category, post_tag) and custom taxonomies. Returns configuration and post type associations.
Inputs: site (required).
wordpress_list_taxonomy_termsWordPress: List taxonomy termsCRead-only
[UNIFIED] List terms of a specific taxonomy. Works with any registered taxonomy including categories, tags, and custom taxonomies.
Inputs: site (required), taxonomy (required), page, parent, +2 more.
wordpress_list_themesWordPress: List themesBRead-only
[UNIFIED] List installed WordPress themes. Returns all themes with their status and metadata.
Inputs: site (required), status.
wordpress_list_usersWordPress: List usersCRead-only
[UNIFIED] List WordPress users. Returns paginated list of users with name, username, email, and roles.
Inputs: site (required), page, roles, per_page.
wordpress_media_upload_workflow_statusWordPress: Media upload workflow statusBRead-only
[UNIFIED] Report WordPress media workflow capabilities for general agents. Shows whether AI image generation is enabled or disabled_missing_provider_key, and lists the recommended fallback path for public URLs, small attachments, and larger agent-local/chat-attached files.
Inputs: site (required).
wordpress_opcache_resetWordPress: Opcache resetADestructive
[UNIFIED] Reset PHP OPcache on the WordPress origin via the airano-mcp-bridge companion plugin (v2.18.4+). Useful after deploying theme/plugin PHP changes on hosts with opcache.validate_timestamps disabled. Requires manage_options on the calling application password.
Inputs: site (required).
wordpress_probe_capabilitiesWordPress: Probe capabilitiesARead-only
[UNIFIED] Probe the airano-mcp-bridge companion plugin for the effective capability set of the calling application password plus the list of companion routes the installed version ships. Returns companion_available: false when the plugin is missing or outdated. Cached 24 h per (site, user).
Inputs: site (required).
wordpress_probe_upload_limitsWordPress: Probe upload limitsARead-only
[UNIFIED] Probe a WordPress site for its effective upload limits (upload_max_filesize, post_max_size, memory_limit, max_input_time, wp_max_upload_size). Uses the airano-mcp-bridge companion plugin if present, else best-effort from the WP REST index. Cached 24 h per site.
Inputs: site (required).
wordpress_regenerate_thumbnailsWordPress: Regenerate thumbnailsADestructive
[UNIFIED] Rebuild attachment sub-sizes (the registered WP image sizes plus any from add_image_size() in the active theme). Use this after upload_media_from_url / _from_base64 with convert_to=webp|avif, after a theme switch that adds new sizes, or for legacy attachments missing thumbnails. Routes through the airano-mcp-bridge companion plugin v2.8.0+. Body shapes: either an 'ids' list to target specific attachments (max 50 per call); or all=true with offset/limit for paged batch. Returns has_more + next_offset in batch mode so callers can continue.
Inputs: site (required), all, ids, limit, +1 more.
wordpress_set_term_languageWordPress: Set term languageCDestructive
[UNIFIED] Apply generic language and/or translation linking to an existing taxonomy term through the active multilingual provider adapter.
Inputs: site (required), term_id (required), taxonomy (required), language, +1 more.
wordpress_site_healthWordPress: Site healthBRead-only
[UNIFIED] Unified site-health snapshot via the airano-mcp-bridge companion plugin (v2.6.0+). Single request returns WP + PHP + MySQL versions, loaded PHP extensions, server software + disk free, active plugins with versions, active theme, and writability checks. Falls back to companion_available: false when the plugin is missing. Requires manage_options.
Inputs: site (required).
wordpress_specialist_wp_blocks_getWordPress: Wp blocks getARead-only
[UNIFIED] Read a post or page as a block tree. Fetches post_content via stock REST then parses it server-side with WP's block grammar so the caller gets a structured array of {blockName, attrs, innerBlocks, innerHTML} entries. Works on any WordPress 5.0+ install — no companion route needed for reads.
Inputs: site (required), post_id (required), post_type.
wordpress_specialist_wp_blocks_insert_atWordPress: Wp blocks insert atBDestructive
[UNIFIED] Insert a single block at a given index, pushing the rest down. Same sanitisation + cap rules as wp_blocks_replace. Requires Airano MCP Bridge v2.13.0+.
Inputs: site (required), block (required), post_id (required), index, +1 more.
wordpress_specialist_wp_blocks_remove_atWordPress: Wp blocks remove atBDestructive
[UNIFIED] Remove the block at the given index. The response includes the removed block so the caller can rollback by feeding it back to wp_blocks_insert_at. Requires Airano MCP Bridge v2.13.0+.
Inputs: site (required), index (required), post_id (required).
wordpress_specialist_wp_blocks_replaceWordPress: Wp blocks replaceADestructive
[UNIFIED] Replace a post's full block tree. The companion serializes the array via WP's serialize_blocks() so HTML comment delimiters round-trip cleanly. Block content is sanitised with wp_kses_post unless raw_html=true (S-13: requires the WP user to also hold unfiltered_html). Capped at 200 blocks per call. Requires Airano MCP Bridge v2.13.0+ and edit_post on the target.
Inputs: site (required), blocks (required), post_id (required), raw_html.
wordpress_specialist_wp_bulk_post_updateWordPress: Wp bulk post updateADestructive
[UNIFIED] Fan-out update across multiple posts via stock REST wp/v2/posts/{id}. Pass updates=[{id, ...fields}] where each item carries the id plus whichever fields to write (status, title, content, excerpt, categories, tags, author, featured_media, meta, etc — anything stock REST accepts on the post endpoint). Returns [{id, status:'ok'|'error', error?}] — partial successes are the expected shape since per-item edit_post cap checks happen at the WP layer. S-26: 50-item cap per call; bigger payloads return bulk_too_large 400 without any HTTP. Concurrency is bounded to 10 in flight to avoid swamping shared hosts.
Inputs: site (required), updates (required).
wordpress_specialist_wp_bulk_term_updateWordPress: Wp bulk term updateADestructive
[UNIFIED] Fan-out update across multiple terms in a single taxonomy via stock REST wp/v2/{taxonomy}/{id}. taxonomy is the REST base — categories, tags, or a custom taxonomy's rest_base. Pass updates=[{id, ...fields}] where each item carries the id plus whichever term fields to write (name, slug, description, parent, meta). Returns [{id, status:'ok'|'error', error?}]. Per-item manage_terms (or the taxonomy-specific edit cap) is enforced server-side. S-26: 50-item cap per call. Concurrency is bounded to 10 in flight.
Inputs: site (required), updates (required), taxonomy (required).
wordpress_specialist_wp_classic_html_replaceWordPress: Wp classic html replaceADestructive
[UNIFIED] Pure post_content swap for sites still on the Classic editor. Companion sanitises with wp_kses_post unless raw_html=true (S-13). Requires Airano MCP Bridge v2.13.0+ and edit_post on the target.
Inputs: html (required), site (required), post_id (required), raw_html.
wordpress_specialist_wp_cron_listWordPress: Wp cron listARead-only
[UNIFIED] Dump the WordPress cron table: hook name, next run time (epoch + ISO 8601 UTC), schedule slug, interval, and stored args. Requires Airano MCP Bridge v2.11.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_customizer_changesetWordPress: Wp customizer changesetADestructive
[UNIFIED] Inspect or commit the pending customizer changeset. action='get' returns the pending changeset payload (or {status:'empty'} when nothing is queued). action='apply' publishes it; action='discard' trashes it. S-24: apply requires the caller to also hold the customize cap (same bar as /wp-admin/customize.php); manage_options alone is not enough. Apply is racy with concurrent edits via the customizer UI — this is intentional and mirrors WP's own behaviour. Requires Airano MCP Bridge v2.17.0+.
Inputs: site (required), action (required).
wordpress_specialist_wp_db_checkWordPress: Wp db checkARead-only
[UNIFIED] Check WordPress database tables via the Airano MCP Bridge companion plugin. Runs CHECK TABLE only on tables with the current WordPress table prefix and returns per-table status rows. Requires Airano MCP Bridge v2.18.5+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_db_optimizeWordPress: Wp db optimizeBDestructive
[UNIFIED] Optimize WordPress database tables via the Airano MCP Bridge companion plugin. Runs OPTIMIZE TABLE only on tables with the current WordPress table prefix and returns per-table results. Requires Airano MCP Bridge v2.18.5+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_db_searchWordPress: Wp db searchARead-only
[UNIFIED] Full-text search across post / product content using WP_Query with s=$query. NEVER raw SQL (S-25). Returns {query, limit, count, hits: [{id, post_type, status, title, snippet, url, modified}]}. Sanitises query via sanitize_text_field server-side; client caps it at 200 chars. limit defaults to 20, max 100. Optional post_type (string or array) and status (string or array) filters. Non-readable posts (private / draft from other authors) are filtered out by WP_Query's own posts_clauses — same gate the WP search page uses. Requires Airano MCP Bridge v2.18.0+ and manage_options.
Inputs: site (required), query (required), limit, status, +1 more.
wordpress_specialist_wp_db_sizeWordPress: Wp db sizeARead-only
[UNIFIED] Read aggregate database size for the WordPress install. Returns {database_bytes, table_count, row_count_estimate, database_name, table_prefix}. Source is a single information_schema.TABLES aggregation scoped to the WP table prefix — no SQL is exposed to the caller (S-25). InnoDB row counts are estimates, not exact, mirroring MySQL's own caveat. Use to answer 'how big is this site?' before deciding whether to migrate / archive. Requires Airano MCP Bridge v2.18.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_db_tablesWordPress: Wp db tablesARead-only
[UNIFIED] Read per-table size + row breakdown. Returns {database_name, table_prefix, tables: [{name, engine, rows, data_bytes, index_bytes, total_bytes, collation}]} ordered by total_bytes descending. Same source as wp_db_size — one row per WP table. Useful for 'which table is the bloat?' debugging (commonly options, postmeta, comments, or a plugin's log table). Requires Airano MCP Bridge v2.18.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_disk_usageWordPress: Wp disk usageARead-only
[UNIFIED] Bytes used by uploads, plugins, and themes plus filesystem-wide disk_total/free/used for ABSPATH. Each tree walk caps at 200k files / 5s wall clock; truncated walks set truncated: true so the caller can treat the value as a lower bound. Requires Airano MCP Bridge v2.12.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_elementor_detectWordPress: Wp elementor detectARead-only
[UNIFIED] Report Elementor presence on the site: installed flag, version, Pro flag, and the post types Elementor edits. Returns installed: false cleanly when Elementor is absent — non-Elementor sites do not 404. Requires Airano MCP Bridge v2.13.0+.
Inputs: site (required).
wordpress_specialist_wp_elementor_getWordPress: Wp elementor getBRead-only
[UNIFIED] Fetch the parsed _elementor_data tree for a post. The companion strips WP's slashes and JSON-decodes server-side; the caller always sees a plain array. Returns edited_with_elementor: false if the post hasn't been opened in Elementor. Requires Airano MCP Bridge v2.13.0+.
Inputs: site (required), post_id (required).
wordpress_specialist_wp_elementor_render_cssWordPress: Wp elementor render cssADestructive
[UNIFIED] Trigger Elementor's per-post CSS regeneration so the front-end picks up changes from a recent wp_elementor_set or theme switch. Equivalent to clicking 'Regenerate CSS' scoped to a single post. Requires Airano MCP Bridge v2.13.0+ and Elementor active.
Inputs: site (required), post_id (required).
wordpress_specialist_wp_elementor_setWordPress: Wp elementor setADestructive
[UNIFIED] Replace a post's _elementor_data tree. Companion validates every node has id/elType/settings, enforces the 5,000-node cap (S-14), writes via update_post_meta, and fires elementor/document/after_save so caches and CSS clear. Oversized payloads return elementor_too_large; switch to wp_elementor_template_apply. Requires Airano MCP Bridge v2.13.0+ and edit_post on the target.
Inputs: data (required), site (required), post_id (required).
wordpress_specialist_wp_elementor_template_applyWordPress: Wp elementor template applyADestructive
[UNIFIED] Copy a saved Elementor template's data into a target post. Subject to the same S-14 5,000-node cap as wp_elementor_set. Useful when a payload exceeds the cap — clone a known-good template instead of streaming raw JSON. Requires Airano MCP Bridge v2.13.0+ and edit_post on the target.
Inputs: site (required), post_id (required), template_id (required).
wordpress_specialist_wp_elementor_template_listWordPress: Wp elementor template listBRead-only
[UNIFIED] List saved Elementor templates (the elementor_library CPT). Returns id, title, type (page/section/header/…), and modified_gmt. Returns installed: false cleanly if Elementor is not active. Requires Airano MCP Bridge v2.13.0+.
Inputs: site (required).
wordpress_specialist_wp_maintenance_statusWordPress: Wp maintenance statusARead-only
[UNIFIED] Report whether WordPress is currently in maintenance mode by inspecting the .maintenance sentinel file. Returns enabled, started_at (epoch), and stale (true when older than 10 minutes — WP's own threshold). Requires Airano MCP Bridge v2.11.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_option_getWordPress: Wp option getARead-only
[UNIFIED] Read a single WordPress option by name. Refuses keys that look like credentials (suffix matches secret/password/api_key/token/auth_key/auth_salt etc.) — operators can still inspect those via wp-admin if needed. Requires Airano MCP Bridge v2.11.0+ and manage_options.
Inputs: name (required), site (required).
wordpress_specialist_wp_permalinks_getWordPress: Wp permalinks getARead-only
[UNIFIED] Read the current permalink structure (option permalink_structure) plus the category_base + tag_base prefixes. Empty string in structure means "plain" permalinks (?p=N). Requires Airano MCP Bridge v2.16.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_permalinks_setWordPress: Wp permalinks setADestructive
[UNIFIED] Update the permalink structure. Common safe values: /%postname%/, /%year%/%monthnum%/%postname%/, /%category%/%postname%/. Pass an empty string for plain permalinks. The companion writes the option then calls flush_rewrite_rules() so the new structure takes effect immediately. Optional category_base / tag_base override the default category / tag prefixes. Requires Airano MCP Bridge v2.16.0+ and manage_options.
Inputs: site (required), structure (required), tag_base, category_base.
wordpress_specialist_wp_php_infoWordPress: Wp php infoBRead-only
[UNIFIED] Curated PHP configuration snapshot — sorted extension list, common ini settings (memory/upload/session/error), disabled functions, opcache state. Returns structured JSON, not the full phpinfo() HTML dump (which would leak server internals). Requires Airano MCP Bridge v2.12.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_plugin_activateWordPress: Wp plugin activateADestructive
[UNIFIED] Activate an installed plugin by slug. Companion resolves the slug to the plugin file via get_plugins() (S-15) and calls activate_plugin(). When network_wide=true on a multisite install the plugin is activated network-wide (requires manage_network_plugins). Requires Airano MCP Bridge v2.15.0+ and activate_plugins.
Inputs: site (required), slug (required), network_wide.
wordpress_specialist_wp_plugin_deactivateWordPress: Wp plugin deactivateADestructive
[UNIFIED] Deactivate an installed plugin by slug. Refuses to deactivate the Airano MCP Bridge companion itself — doing so would brick the MCP connection (S-20). Requires Airano MCP Bridge v2.15.0+ and activate_plugins.
Inputs: site (required), slug (required), network_wide.
wordpress_specialist_wp_plugin_deleteWordPress: Wp plugin deleteADestructive
[UNIFIED] Delete an installed plugin by slug. Refuses to delete the Airano MCP Bridge companion itself (S-20) and any currently-active plugin (caller must deactivate first). Lands on the admin tier because plugin delete drops the plugin's database tables / options on uninstall — no undo. Requires Airano MCP Bridge v2.15.0+ and delete_plugins.
Inputs: site (required), slug (required).
wordpress_specialist_wp_plugin_install_from_slugWordPress: Wp plugin install from slugADestructive
[UNIFIED] Install a plugin from a wp.org slug (e.g. 'akismet'). Companion calls plugins_api() to resolve the package URL, downloads via download_url() (so the WP filesystem abstraction stays engaged), then runs WP core's Plugin_Upgrader. Set activate=true to activate immediately on success — activation requires activate_plugins; companion rejects with rest_forbidden if missing. Requires Airano MCP Bridge v2.15.0+ and a WordPress user with install_plugins.
Inputs: site (required), slug (required), activate.
wordpress_specialist_wp_plugin_install_from_zipWordPress: Wp plugin install from zipADestructive
[UNIFIED] Install a plugin from a remote URL, inline base64 zip, server-local zip_path, or chunked zip_session_id. Sees more attack surface than slug install (arbitrary zip contents) so this lands on the admin tier. Companion still runs Plugin_Upgrader so signature checks stay engaged. Pass exactly one of zip_url (companion fetches via wp_safe_remote_get), zip_base64 (decoded server-side), zip_path (read by MCPHub from the server filesystem and sent to the companion as zip_base64), or zip_session_id (created with wp_zip_install_chunked_start/chunk). Capped at 50 MB per zip (S-18). Requires Airano MCP Bridge v2.15.0+ and install_plugins.
Inputs: site (required), zip_url, activate, zip_path, +3 more.
wordpress_specialist_wp_plugin_listWordPress: Wp plugin listARead-only
[UNIFIED] List every plugin known to WordPress with active/network-active status, version, author, and update availability. Read-only (no install/activate). Requires Airano MCP Bridge v2.11.0+ and a WordPress user with manage_options.
Inputs: site (required).
wordpress_specialist_wp_plugin_updateWordPress: Wp plugin updateBDestructive
[UNIFIED] Update an installed plugin to the latest wp.org version. Companion checks the cached update_plugins transient + runs Plugin_Upgrader::upgrade(). Returns no-op (with up_to_date: true) when no update is available rather than erroring. Requires Airano MCP Bridge v2.15.0+ and update_plugins.
Inputs: site (required), slug (required).
wordpress_specialist_wp_rank_math_sync_identityWordPress: Wp rank math sync identityADestructive
[UNIFIED] Push the site name into Rank Math's schema identity (WebSite name, Person/Organization name). Rank Math captures these once in its setup wizard, so after renaming the site (wp_site_identity_set) the JSON-LD keeps the old name. With no arguments it uses the current site title. Returns the before/after values. Requires Rank Math and Airano MCP Bridge v2.21.0+ (manage_options). Purge page cache afterwards.
Inputs: site (required), name, alternate_name, knowledgegraph_name.
wordpress_specialist_wp_reading_settings_getWordPress: Wp reading settings getARead-only
[UNIFIED] Read the Settings → Reading panel: show_on_front (posts or page), page_on_front, page_for_posts, posts_per_page, posts_per_rss, and blog_public (search-engine visibility flag — 0 means WP asks crawlers not to index). Requires Airano MCP Bridge v2.16.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_reading_settings_setWordPress: Wp reading settings setADestructive
[UNIFIED] Update Settings → Reading values. Pass any subset of show_on_front / page_on_front / page_for_posts / posts_per_page / posts_per_rss / blog_public. When show_on_front=='page', page_on_front must be set to a published Page id (companion validates). Setting blog_public=false tells crawlers not to index — the directive is non-binding, real privacy still belongs to httpd auth or membership plugins. Requires Airano MCP Bridge v2.16.0+ and manage_options.
Inputs: site (required), blog_public, page_on_front, posts_per_rss, +3 more.
wordpress_specialist_wp_site_identity_getWordPress: Wp site identity getARead-only
[UNIFIED] Read site identity: title (blogname), tagline (blogdescription), site_icon (favicon attachment id), custom_logo (theme logo attachment id), blog_charset, WP version, and admin email. Companion-backed read so responses stay consistent with the writer route. Requires Airano MCP Bridge v2.16.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_site_identity_setWordPress: Wp site identity setADestructive
[UNIFIED] Update site identity. Pass any subset of title / tagline / site_icon_id / custom_logo_id (omitted keys are left untouched). Attachment ids are validated by the companion against WP's media library — invalid ids return invalid_attachment. Requires Airano MCP Bridge v2.16.0+ and manage_options. If Rank Math is active, call wp_rank_math_sync_identity after changing the title so the schema (JSON-LD) uses the new name.
Inputs: site (required), title, tagline, site_icon_id, +1 more.
wordpress_specialist_wp_system_infoWordPress: Wp system infoBRead-only
[UNIFIED] PHP / MySQL / WordPress versions, server software, memory limits, multisite flag, debug state, and canonical paths (ABSPATH, plugins, uploads). Companion-backed; no Docker socket required. Requires Airano MCP Bridge v2.12.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_theme_activateWordPress: Wp theme activateADestructive
[UNIFIED] Switch the active theme to slug. Companion verifies the slug exists in wp_get_themes() (S-15) and the caller holds switch_themes. Returns the active stylesheet + template after the switch — useful when activating a child theme (stylesheet differs from template). Requires Airano MCP Bridge v2.14.0+.
Inputs: site (required), slug (required).
wordpress_specialist_wp_theme_deleteWordPress: Wp theme deleteADestructive
[UNIFIED] Delete an installed theme by slug. Companion refuses to delete the active theme (returns theme_active) and the current default theme. Caller must hold delete_themes. Requires Airano MCP Bridge v2.14.0+.
Inputs: site (required), slug (required).
wordpress_specialist_wp_theme_file_deleteWordPress: Wp theme file deleteADestructive
[UNIFIED] Delete a file inside a theme. Path resolution is identical to wp_theme_file_read (S-16). Refuses to delete style.css of the active theme — that would break the front-end. Requires Airano MCP Bridge v2.14.0+ and edit_themes.
Inputs: path (required), site (required), theme_slug (required).
wordpress_specialist_wp_theme_file_listWordPress: Wp theme file listARead-only
[UNIFIED] List files inside a theme directory. Walks wp-content/themes/{theme_slug} and returns each file's relative path, size, mime, sha256, and modified_at (epoch). Optional glob filters by fnmatch pattern (default **/*). Capped at 1000 files per call (S-18); when the walk truncates, the response carries truncated: true. Requires Airano MCP Bridge v2.14.0+.
Inputs: site (required), theme_slug (required), glob, max_files.
wordpress_specialist_wp_theme_file_patchWordPress: Wp theme file patchADestructive
[UNIFIED] Patch a text file inside a theme with a small line-range splice, avoiding full-file base64 uploads for iterative CSS and template edits. Lines are 1-based and inclusive. To replace lines 10-12 pass from_line=10, to_line=12. To insert before line 10 pass from_line=10, to_line=9. To append pass from_line=line_count+1, to_line=line_count. Empty content deletes the selected range. Pass expected_sha256 for optimistic concurrency; the companion rejects with sha_mismatch (409) if the file changed. Requires Airano MCP Bridge v2.18.3+.
Inputs: path (required), site (required), content (required), to_line (required), +3 more.
wordpress_specialist_wp_theme_file_readWordPress: Wp theme file readARead-only
[UNIFIED] Read a file inside a theme as base64. Returns {content_base64, mime, size, sha256, modified_at}. Path must resolve under wp-content/themes/{theme_slug} (S-16); .., absolute paths, null bytes, and symlinks that escape are rejected by the companion's realpath gate. Files larger than 5 MB return file_too_large (S-18). Requires Airano MCP Bridge v2.14.0+.
Inputs: path (required), site (required), theme_slug (required).
wordpress_specialist_wp_theme_file_writeWordPress: Wp theme file writeADestructive
[UNIFIED] Write a file inside a theme. content_base64 is the decoded body (capped at 5 MB, S-18). PHP file writes additionally require edit_themes AND !DISALLOW_FILE_EDIT (S-17); non-PHP writes only need edit_themes. Pass expected_sha256 for optimistic concurrency: the companion compares against the current file's sha256 and returns sha_mismatch (409) on drift (S-19). When create_dirs is true (default) any missing parent directories are created. Requires Airano MCP Bridge v2.14.0+.
Inputs: path (required), site (required), theme_slug (required), content_base64 (required), +2 more.
wordpress_specialist_wp_theme_install_from_zipWordPress: Wp theme install from zipADestructive
[UNIFIED] Install a theme from a remote URL, inline base64 zip, server-local zip_path, or chunked zip_session_id. Companion runs WP core's Theme_Upgrader so signature checks and the WP filesystem abstraction stay engaged. Pass exactly one of zip_url (companion fetches via wp_safe_remote_get), zip_base64 (decoded server-side), zip_path (read by MCPHub from the server filesystem and sent to the companion as zip_base64), or zip_session_id (created with wp_zip_install_chunked_start/chunk). Capped at 50 MB per zip (S-18). Set activate=true to make the new theme active after install; overwrite=true permits re-installing a slug that already exists. Requires Airano MCP Bridge v2.14.0+ and a WordPress user with install_themes.
Inputs: site (required), zip_url, activate, zip_path, +3 more.
wordpress_specialist_wp_theme_listWordPress: Wp theme listARead-only
[UNIFIED] List every installed theme: stylesheet/template names, version, parent, block-theme flag, active flag, update availability. Requires Airano MCP Bridge v2.11.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_user_listWordPress: Wp user listARead-only
[UNIFIED] List WordPress users with id, username, email, display name, roles, and registration timestamp. Supports optional role and search filters; paginated up to 200 per call. Requires Airano MCP Bridge v2.11.0+ and manage_options.
Inputs: site (required), page, role, search, +1 more.
wordpress_specialist_wp_widget_areas_listWordPress: Wp widget areas listARead-only
[UNIFIED] List every registered sidebar / widget area with id, name, theme_location, widget_count, and kind (block or legacy). Block areas store widgets as block instances; legacy areas use per-widget option keys. Requires Airano MCP Bridge v2.17.0+ and manage_options.
Inputs: site (required).
wordpress_specialist_wp_widget_getWordPress: Wp widget getARead-only
[UNIFIED] Read one widget area's contents. Returns {area_id, kind, widgets: [...]}. For block kind, each widget is {id, type:'block', blocks:[...parsed], raw:'<!-- wp:... -->'} — raw is the round-trippable HTML; blocks is the parsed tree for inspection. For legacy kind, each widget is {id, type, settings:{...}} keyed by the widget's option store. Requires Airano MCP Bridge v2.17.0+ and manage_options.
Inputs: site (required), area_id (required).
wordpress_specialist_wp_widget_setWordPress: Wp widget setADestructive
[UNIFIED] Full-replace a widget area's contents. Block-kind areas accept any widget with raw (block HTML) or blocks (block tree, server serialises). Legacy areas accept text widget settings only this round — other legacy widget types remain read-only. Caller-side kind is ignored: area kind is determined by the area itself; block↔legacy conversion is a theme-level decision, not an MCP one. S-23: HTML payloads are sanitised via wp_kses_post unless the caller has unfiltered_html. Requires Airano MCP Bridge v2.17.0+ and manage_options.
Inputs: site (required), area_id (required), widgets (required).
wordpress_specialist_wp_zip_install_chunked_abortWordPress: Wp zip install chunked abortCDestructive
[UNIFIED] Abort a WordPress install zip staging session and delete its spill file.
Inputs: site (required), session_id (required).
wordpress_specialist_wp_zip_install_chunked_chunkWordPress: Wp zip install chunked chunkADestructive
[UNIFIED] Append one base64-encoded chunk to a WordPress install zip staging session. Chunks must arrive in order starting at index 0. Prefer the upload_url returned by wp_zip_install_chunked_start when it is available; this base64 tool is the portable fallback.
Inputs: site (required), index (required), data_b64 (required), session_id (required), +1 more.
wordpress_specialist_wp_zip_install_chunked_startWordPress: Wp zip install chunked startADestructive
[UNIFIED] Start a chunked staging session for a WordPress plugin or theme zip. Use the returned session_id as zip_session_id in wp_plugin_install_from_zip or wp_theme_install_from_zip. On per-user MCP endpoints this also returns a relative upload_url so an agent can PUT raw zip bytes with curl --data-binary @file, using the same Bearer token, instead of embedding large base64 in tool calls. Use the chunk tool only as the fallback path. TTL 1h, hard cap 50 MB per zip.
Inputs: site (required), filename (required), total_bytes (required), sha256.
wordpress_specialist_wp_zip_install_chunked_statusWordPress: Wp zip install chunked statusBDestructive
[UNIFIED] Query a WordPress install zip staging session. Returns received_bytes and next_chunk so the caller can resume after a disconnect.
Inputs: site (required), session_id (required).
wordpress_transient_flushWordPress: Transient flushADestructive
[UNIFIED] Flush WordPress transients via the airano-mcp-bridge companion plugin (v2.5.0+). Scopes: 'expired' (default, delete_expired_transients), 'all' (every transient), 'pattern' (shell glob like 'rank_math_*'). On multisite, include_site_transients=true also purges site_transient* rows. Requires manage_options.
Inputs: site (required), scope, pattern, include_site_transients.
wordpress_update_categoryWordPress: Update categoryCDestructive
[UNIFIED] Update an existing WordPress category. Can modify name, description, and parent category.
Inputs: site (required), category_id (required), name, parent, +1 more.
wordpress_update_commentWordPress: Update commentCDestructive
[UNIFIED] Update an existing WordPress comment. Can update content, status, author information, etc.
Inputs: site (required), comment_id (required), status, content, +2 more.
wordpress_update_mediaWordPress: Update mediaCDestructive
[UNIFIED] Update media metadata. Supports title, description, slug, alt text, caption, status, and associated post.
Inputs: site (required), media_id (required), post, slug, +5 more.
wordpress_update_pageWordPress: Update pageBDestructive
[UNIFIED] Update an existing WordPress page. Can update title, content, status, slug, parent page, featured image, and post meta (e.g. Yoast fields).
Inputs: site (required), page_id (required), meta, slug, +5 more.
wordpress_update_postWordPress: Update postCDestructive
[UNIFIED] Update an existing WordPress post. Can update any field including title, content, status, categories, tags, REST-registered post meta, and generic multilingual metadata.
Inputs: site (required), post_id (required), meta, slug, +9 more.
wordpress_update_post_seoWordPress: Update post seoBDestructive
[UNIFIED] Update SEO metadata for a WordPress post or page. Supports both Rank Math and Yoast SEO fields. Automatically detects which plugin is active. Requires SEO API Bridge plugin.
Inputs: site (required), post_id (required), robots, og_image, +10 more.
wordpress_update_product_seoWordPress: Update product seoBDestructive
[UNIFIED] Update SEO metadata for a WooCommerce product. Same as update_post_seo but specifically for products. Requires SEO API Bridge plugin.
Inputs: site (required), product_id (required), og_image, og_title, +9 more.
wordpress_update_tagWordPress: Update tagCDestructive
[UNIFIED] Update an existing WordPress tag. Can modify name and description.
Inputs: site (required), tag_id (required), name, description.
wordpress_upload_media_chunked_abortWordPress: Upload media chunked abortBDestructive
[UNIFIED] Abort a chunked upload session and delete its spill file.
Inputs: site (required), session_id (required).
wordpress_upload_media_chunked_chunkWordPress: Upload media chunked chunkA
[UNIFIED] Append a single base64-encoded chunk to a chunked upload session. Chunks must arrive in order starting at index 0. Prefer the upload_url returned by upload_media_chunked_start when it is available; this base64 tool is the portable fallback.
Inputs: site (required), index (required), data_b64 (required), session_id (required), +1 more.
wordpress_upload_media_chunked_finishWordPress: Upload media chunked finishBDestructive
[UNIFIED] Finalize a chunked upload: assemble + optimize + upload to WordPress. Verifies sha256 if supplied at start.
Inputs: site (required), session_id (required), title, caption, +4 more.
wordpress_upload_media_chunked_startWordPress: Upload media chunked startA
[UNIFIED] Start a chunked upload session for a large media file. Returns a session_id for finish/status/abort. On per-user MCP endpoints it also returns a relative upload_url so an agent can PUT raw bytes with curl --data-binary @file, using the same Bearer token, instead of embedding large base64 in tool calls. Use the chunk tool only as the fallback path. TTL 1h, hard cap 500 MB per session.
Inputs: site (required), filename (required), total_bytes (required), mime, +1 more.
wordpress_upload_media_chunked_statusWordPress: Upload media chunked statusARead-only
[UNIFIED] Query the current state of a chunked-upload session — returns received_bytes and next_chunk so the caller can resume after a disconnect. The session survives for 1 h after the last activity; re-start the session with upload_media_chunked_start if it has expired or been aborted. Returns {error_code: NOT_FOUND} when the session is unknown.
Inputs: site (required), session_id (required).
wordpress_upload_media_from_base64WordPress: Upload media from base64BDestructive
[UNIFIED] Upload a base64-encoded file directly to the WordPress media library. For chat-attached images/files smaller than ~10 MB. Use upload_media_from_url for larger files or chunked path later.
Inputs: data (required), site (required), filename (required), mime, +7 more.
wordpress_upload_media_from_urlWordPress: Upload media from urlBDestructive
[UNIFIED] Upload media from a public URL to the WordPress media library (sideload). Downloads the file with SSRF protection, sniffs MIME, and uploads via raw-binary POST.
Inputs: url (required), site (required), title, caption, +6 more.
wordpress_wp_cache_flushWordPress: Wp cache flushCDestructive
[UNIFIED] Flush WordPress caches through the Airano MCP Bridge companion plugin. Supports object cache, page cache, or both without server-side shell access.
Inputs: site (required), scope.
wordpress_wp_db_checkWordPress: Wp db checkBRead-only
[UNIFIED] Check WordPress database tables through the companion plugin. Runs CHECK TABLE only on tables with the current WordPress table prefix.
Inputs: site (required).
wordpress_wp_db_optimizeWordPress: Wp db optimizeCDestructive
[UNIFIED] Optimize WordPress database tables through the companion plugin. Runs OPTIMIZE TABLE only on tables with the current WordPress table prefix.
Inputs: site (required).
wordpress_wp_transient_delete_allWordPress: Wp transient delete allBDestructive
[UNIFIED] Delete expired WordPress transients through the companion plugin. This mirrors the legacy tool's expired-only cleanup semantics.
Inputs: site (required).
wordpress_wp_transient_listWordPress: Wp transient listARead-only
[UNIFIED] List WordPress transients through the companion plugin. Returns names, type, and expiration metadata without reading transient values.
Inputs: site (required), limit, include_site_transients.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 554 tools
Service prefixes (wordpress_, woocommerce_, gitea_, n8n_, supabase_) help separate domains, but there are outright duplicate-intent tools: wordpress_wp_db_check vs wordpress_specialist_wp_db_check, wordpress_cache_purge vs wordpress_wp_cache_flush, wordpress_transient_flush vs wordpress_wp_transient_delete_all, wordpress_generate_and_upload_image vs woocommerce_generate_and_upload_image, and wordpress_delete_media vs woocommerce_delete_media. Multiple unrelated *_list_projects (Coolify, OpenPanel, n8n, hub-level) and several health-check tools across services make selection error-prone.
The dominant pattern is service_verb_noun snake_case (wordpress_create_post, gitea_merge_pull_request, supabase_delete_policy), which is readable. However, the WordPress surface is split across three prefixes ('wordpress_', 'wordpress_specialist_wp_', 'wordpress_wp_'), and hub-level tools (get_endpoints, set_rate_limit_config, check_all_projects_health, manage_api_keys_rotate) break the verb_noun prefix convention.
554 tools in a single server is an extreme mismatch; no agent can reasonably navigate this surface, and it far exceeds any scoped-purpose guideline. This is effectively a bundled aggregator of a dozen-plus integrations rather than a coherent tool set.
Most integrations (WordPress, WooCommerce, Gitea, Supabase, n8n, Coolify, Cloudflare) have broad CRUD coverage, so dead ends are rare within them. But other surfaces are thin: Gmail has no send/draft/compose tool, Search Console exposes only four read operations, and OAuth lacks update/secret-rotation lifecycle.
Maintenance
Related MCP Connectors
Hosting run by your AI agent: publish websites, apps, databases, domains and email from chat.
Manage WordPress blogs and WooCommerce shops from Claude, ChatGPT, Cursor and other MCP apps.
Manage your own cloud with AI: deploy apps, push and ship custom Docker images, manage resources via your AI agent.
Manage your WordPress site from your AI assistant: posts, pages, media, comments and WooCommerce.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to manage WordPress sites with 190+ tools for content management, theme/plugin customization, file system operations, WooCommerce, and complete site control through natural language.10029 npm56MIT
- AlicenseCqualityDmaintenanceEnables AI to manage WordPress sites with 190+ tools for complete control over content, themes, plugins, files, and more.10029 npmMIT
- FlicenseNot gradedqualityBmaintenanceControls any WordPress site via natural language, offering tools for site health, plugins, posts, SEO, WooCommerce, and more.-
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to manage WordPress and WooCommerce sites with over 194 tools for content, users, security, performance, and e-commerce operations.ISC