AI Site Manager MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WP_AI_KEY | No | Scoped API key. Required unless using a key file; do not set both WP_AI_KEY and WP_AI_KEY_FILE. | |
| WP_AI_BASE | No | HTTPS API namespace URL; supports WordPress installed in a subdirectory and `https://example.com/?rest_route=/ai-site-manager/v1` | |
| WP_AI_KEY_FILE | No | Absolute path to a plain-text key file. Alternative to WP_AI_KEY; do not set both. | |
| WP_AI_TIMEOUT_MS | No | Request timeout, 1000–600000 milliseconds | 120000 |
| WP_AI_AUTH_HEADER | No | Authorization header to use: `Authorization` or `X-AISM-Key` | Authorization |
| WP_AI_MAX_UPLOAD_BYTES | No | Local upload limit, up to 1 GiB; WordPress/host limits also apply | 33554432 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aism_sitesA | List configured site connections (names, API base URLs, default). Keys are never shown. |
| aism_discoverB | Discover the connected site, key scopes/expiry, resources, approved settings and limits. Call first. |
| aism_guideB | Read the deployed AI Site Manager usage guide. |
| aism_schemaB | Read native schemas and endpoint arguments before working with a resource. |
| aism_content_listA | List/search posts, pages, media, terms, comments or discovered custom resources. Includes pagination headers. Also supports types, taxonomies and statuses. |
| aism_content_getA | Read one content, media, term or comment object. Use context=edit for raw fields. |
| aism_content_createB | Create a post/page draft, term, comment or another native resource. Posts/pages default to draft. Upload files with aism_media_upload. |
| aism_content_updateA | Update only supplied fields. Supports posts/pages, media alt text/caption, taxonomy relationships and comment moderation. |
| aism_content_deleteA | Trash an object when supported. force=true permanently deletes it. Media and terms generally require force=true. Only delete objects authorized by the operator. |
| aism_revisionsB | Read a post/page revision list or one revision. Revision mutation is unavailable. |
| aism_media_uploadB | Upload a local file using multipart. Does not download remote URLs. Host file-type/size rules and media:write apply. |
| aism_settings_listA | List exact approved option names and schemas; does not return values. |
| aism_settings_getA | Read one approved option value and its schema. |
| aism_settings_updateA | Replace the ENTIRE value of one approved option. Read it immediately before editing; preserve unrelated object fields. No compare-and-swap exists. |
| aism_plugins_listA | List installed plugins and their identifiers/status. |
| aism_plugin_installA | Install a WordPress.org plugin inactive. Requires plugins:write and native install capability. Installation adds executable code. |
| aism_plugin_uploadA | Install a new local plugin ZIP inactive without replacing existing plugins. Requires plugins:write plus native install/upload capabilities. |
| aism_plugin_updateA | Update an installed plugin. Omit file_path to use the WordPress-advertised update, or supply a local ZIP with the same plugin folder/main file and a newer version (companion 1.2.0+). ZIP replacement preserves activation and requires plugins:write plus update/upload capabilities. AI Site Manager cannot update itself; multisite mutations are unavailable. |
| aism_plugin_actionA | Activate/deactivate/update/delete an installed plugin. Deletion requires plugins:delete and an inactive plugin. Updates use the WordPress-advertised package. AI Site Manager cannot manage itself; multisite mutations are unavailable. |
| aism_users_listA | Review user accounts: login, email, roles, registration date, active login sessions (time, IP, browser), application password names and quarantine state. Never returns password hashes or tokens. Includes pagination headers. Requires users:read and list_users (companion 1.5.0+). |
| aism_user_getA | Read one user account for review (same fields as aism_users_list). Requires users:read. |
| aism_user_quarantineA | Lock a suspicious account without deleting it: saves and removes all its roles, signs out every session, deletes its application passwords, sets a random password and blocks all logins and password resets until restored. Refuses the key owner and the last active administrator. Use only on accounts the operator asked to disable. Requires users:write plus promote_users/edit_user (companion 1.5.0+). |
| aism_user_restoreA | Lift a quarantine and restore the account's saved roles. The password stays random and deleted application passwords are not restored. Requires users:write. |
| aism_db_tablesA | List this site's database tables with engine, approximate rows, data/index size and whether they are core tables. Tables marked query_blocked hold credentials (users, user meta, API keys) and cannot be queried. Requires database:read and manage_options (companion 1.6.0+). |
| aism_db_tableA | Describe one table: columns, types, indexes and exact row count. Requires database:read. |
| aism_db_queryA | Run ONE read-only SQL query (SELECT, WITH, TABLE, SHOW, DESCRIBE or EXPLAIN) against the site database, for example to count or inspect plugin data. Runs in a read-only transaction with a time limit; comments, write/locking keywords, variables, backslashes and references to the users, usermeta and API key tables are rejected. Use the table prefix from aism_db_tables. Returns columns plus rows as arrays; long values are cut to max_value_bytes and obvious secrets are redacted. Add LIMIT/aggregates for large tables. The SQL is recorded in the site's activity log. Requires database:read and manage_options (companion 1.6.0+). |
| aism_diagnosticsA | Site overview for troubleshooting: WordPress/PHP/database versions and limits, debug and cron constants, active theme, plugins and MU plugins with versions, drop-ins, object cache, cron summary and log files. site_health=true also runs the direct Site Health tests (slower). Requires diagnostics:read and manage_options (companion 1.6.0+). |
| aism_cron_listA | List every scheduled WP-Cron event with next run time, how overdue it is, schedule, arguments and whether any code listens for it. Requires diagnostics:read. |
| aism_logsA | Read the end of the WordPress debug log (source=debug, WP_DEBUG_LOG) or PHP error log (source=php), optionally only lines containing search. Only these configured files can be read. Requires diagnostics:read. |
| aism_maintenanceA | Routine maintenance. run_cron runs one already-scheduled event now inside this request (hook from aism_cron_list; pass key when the hook has several argument sets) — works on hosts without working WP-Cron; recurring events are rescheduled. flush_cache empties the object cache, flush_rewrite_rules regenerates permalinks (soft flush), delete_expired_transients removes expired transients. Requires maintenance:write and manage_options (companion 1.6.0+). |
| aism_themes_listA | List installed themes with stylesheet identifiers, versions and active/inactive status. Requires themes:read and native theme access. |
| aism_theme_installA | Install a WordPress.org theme inactive. Core may install a missing parent. Requires themes:write and install_themes. Installation adds executable code. |
| aism_theme_uploadA | Install a new local theme ZIP inactive without replacing existing themes. Requires themes:write plus native install/upload capabilities. |
| aism_theme_actionA | Activate/update/delete an installed theme using its stylesheet identifier from aism_themes_list. Activate another theme to deactivate the current one. Deletion requires themes:delete and cannot remove the active theme or its parent. Updates use the WordPress-advertised package. Multisite mutations are unavailable. |
| aism_migration_manifestA | Read a site's migration manifest: site UUID, URLs, versions, themes, plugins, content counts per post type/taxonomy, capabilities and what is not migrated. Requires migration:read (companion 1.4.0+). |
| aism_migration_exportA | Read one raw export page from a site (terms, posts of any type including attachments/menus/templates, comments or site settings) for inspection. aism_migration_run and aism_migration_copy do this automatically. |
| aism_migration_planA | Compare two configured sites before migrating: versions, missing/outdated themes and plugins, post types and taxonomies the target cannot store yet, a previous migration, and recommended steps. Read-only. |
| aism_migration_transfer_packageA | Install a plugin or theme from the source on the target, inactive unless activate=true. from=source copies the exact installed files (custom and premium code included); from=wordpress.org installs by slug. Missing parent themes are transferred first. Installed plugins with an older version are updated from the source ZIP. Requires migration:read on the source and plugins:write/themes:write on the target. Adds executable code. |
| aism_migration_runA | Migrate a whole site in resumable steps: terms, site settings (front page, permalinks, media sizes, widgets, customizer), media (original files), all content types including menus, templates, global styles and patterns, comments, then a finalize pass that remaps IDs and rewrites source URLs to the target. User accounts come first, with their roles, profile and password hashes so people keep their passwords (needs users:read on the source key and users:write on the target key, companion 1.7.0+; otherwise authors are only matched by login/email). Target accounts with the same login or email are mapped, never changed. Returns within max_seconds; call again with the returned cursor until done is true. Re-running updates already migrated objects instead of duplicating them, so it also works as an incremental sync (with modified_after). Overwrites target settings and previously migrated objects, including passwords of accounts an earlier run created (use phases or on_existing=skip to avoid that). |
| aism_migration_copyA | Copy selected posts/pages (any type) from one site to another with their categories/tags, featured images, embedded media and reusable blocks, then remap IDs and URLs. Copying again updates the earlier copies. |
| aism_migration_statusA | Compare source content counts with what has been migrated into the target, and report finalize state. Read-only. |
| aism_migration_rollbackA | Undo a migration on the target: permanently delete posts, media files, terms, comments and user accounts the migration created (their remaining content goes to the key owner), restore site settings it changed, and forget its ID map. Objects matched to pre-existing target content are kept. Requires migration:delete on the target. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ai-site-manager-guide | The default site’s authenticated AI Site Manager guide. |
TDQS
Scored across 42 tools
Most tools map cleanly to a resource+action (content_list vs content_get vs content_delete, db_tables vs db_table vs db_query), and the migration family is well differentiated by lifecycle stage. However there are genuine overlaps: aism_plugin_update duplicates the update behavior described inside aism_plugin_action, and aism_plugin_install vs aism_plugin_upload (and the theme equivalents) require careful reading to choose correctly. aism_migration_export also overlaps conceptually with run/copy, which the description itself has to excuse.
All 42 tools share the aism_ prefix and snake_case, which is highly predictable. Deviations are minor but present: singular/plural mismatch for the same resource (aism_plugin_upload vs aism_plugins_list, aism_theme_install vs aism_themes_list), and several tools drop the verb entirely (aism_revisions, aism_sites, aism_diagnostics, aism_logs) while others use resource_verb ordering (aism_content_list) or verb_resource ordering (aism_discover).
42 tools is heavy, but the server genuinely spans content, media, plugins, themes, users, database, migrations, diagnostics, cron, logs and settings, so most tools earn their place. Still, the surface could be trimmed — the standalone aism_plugin_update is largely redundant with aism_plugin_action, and the upload/install split doubles the plugin and theme surfaces. It sits above the comfortable 3-15 range even for a broad admin domain.
Coverage is unusually broad: content CRUD, media upload, plugin/theme install-activate-update-delete, user review and quarantine/restore, options read/write, read-only SQL, diagnostics, cron, logs and a full multi-site migration lifecycle. Remaining gaps are small but real — no user creation or role editing, and aism_sites can only list connections, with no way to add, update or remove a site connection. Revisions are explicitly read-only, which is a documented limitation rather than a silent hole.