=== Agentdesk Site Operations ===
Contributors: couvestack
Tags: mcp, mcp-server, ai-agent, automation, content
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Manage your WordPress content, media, and WooCommerce store from an AI agent through a fixed set of predefined operations. No file or code editing.

== Description ==

Agentdesk Site Operations connects MCP-capable AI clients (such as Claude, Cursor, and VS Code) to your WordPress site through a fixed, predefined set of operations built on WordPress's own APIs. Ask in plain language and your agent performs the operation.

**This plugin does not edit files, execute code, run arbitrary SQL, or install other plugins.** Every action is one of a fixed set of reviewed operations that go through core WordPress functions (wp_insert_post, wp_update_post, the WooCommerce CRUD APIs, and Elementor's own document meta). There is no file manager and no code editor.

Content is filtered with wp_kses_post, and the Elementor HTML and Shortcode widgets are rejected, unless the acting user holds the unfiltered_html capability - the same rule WordPress itself applies in the block and classic editors.

= What you can do =

* **Content** - create, edit, publish, search, and organize posts, pages, and custom post types; manage categories, tags, and comments.
* **Media** - browse the library, import images from a URL, and edit titles/alt text.
* **WooCommerce** - create, update and delete products; update order status and add order notes; list variations, coupons, customers and sales reports.
* **Elementor** - list pages, read and update the Elementor document (structured widget data), add headings/text/buttons/containers, and build pages from a brief.
* **SEO** - read and update Yoast / Rank Math SEO meta for posts you can edit.
* **Site settings** - read and update a small allowlist of general options (site title, tagline, date/time format, posts per page). Site address, home URL and admin email are deliberately excluded.
* **Maintenance** - flush page and object caches; detect installed integrations.
* **Read & audit** - site info, health checks, environment diagnostics, user and plugin/theme inventory, debug configuration, and an action log.

The plugin does not create users, change roles, or modify user passwords.

= Predefined operations, by design =

Every tool is a fixed operation with a typed input schema. The agent cannot write files, edit theme or plugin code, run raw database queries, or install software. This keeps the surface small, reviewable, and safe.

= Safety =

* Authentication - a bcrypt-hashed API key or a WordPress Application Password is required on every request.
* Capability checks - each operation runs as a real WordPress user. Content operations are checked per object (you cannot edit or delete an item you could not edit in wp-admin), and internal or block-theme template post types are never writable.
* Safe mode (default on) - blocks permanently destructive operations such as deleting posts, media, products and comments.
* Power mode (default off) - required for sensitive operations: site settings, and overwriting or importing an Elementor document.
* Rate limiting - a per-IP flood guard plus a per-key request budget.
* Audit log - every action is recorded.

= Self-hosted =

Runs entirely on your site. No external service and no account: nothing is sent to us or to any third-party service. Your own AI client connects directly to your site.

== Installation ==

1. Install and activate Agentdesk Site Operations.
2. Go to Settings > Agentdesk Site Operations and click Create API Key (shown once - copy it).
3. Add the endpoint and key to your MCP client:
   https://your-site.com/wp-json/agentdesk-site-operations/v1/mcp
4. Enable Power Mode only when you need site settings or Elementor document overwrites; keep Safe Mode on.

== Frequently Asked Questions ==

= Does it edit files or run code? =

No. There is no file editor, file manager, or code execution. Every action is a fixed, predefined operation through WordPress's own APIs.

= Does it send my data anywhere? =

No. It is entirely self-hosted; your agent connects to your site and nothing leaves your server.

= Which AI clients work with it? =

Any client that speaks MCP over HTTP with a Bearer token, such as Claude, Cursor, and VS Code.

== Changelog ==

= 2.1.0 =
* Added per-object and post-type capability checks for all content operations.
* Elementor content is now filtered unless the user has unfiltered_html.
* Removed site address, home URL and admin email from the writable options allowlist.
* Removed user creation and role editing; user data is now read-only.
* Renamed the plugin and aligned all descriptions with the actual feature set.

= 2.0.0 =
* Refocused on a fixed set of predefined operations. Removed all file management, file/code editing, arbitrary database search-replace, plugin installation, and theme switching. The plugin now performs only reviewed content, commerce, media, and read/audit operations through core WordPress APIs.
