Changeset 3777876
- Timestamp:
- 11/01/2026 10:52:56 AM (12 hours ago)
- Location:
- simonov-ai-site-manager
- Files:
-
- 6 edited
- 1 copied
-
tags/0.9.2 (copied) (copied from simonov-ai-site-manager/trunk )
-
tags/0.9.2/includes/class-tool-registry.php (modified) (2 diffs)
-
tags/0.9.2/readme.txt (modified) (4 diffs)
-
tags/0.9.2/simonov-ai-site-manager.php (modified) (2 diffs)
-
trunk/includes/class-tool-registry.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/simonov-ai-site-manager.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
simonov-ai-site-manager/tags/0.9.2/includes/class-tool-registry.php
r3777746 r3777876 111 111 112 112 /** 113 * Writes that only add something new and never overwrite or remove. 114 * 115 * MCP assumes a write is destructive unless told otherwise, and that is the 116 * right default here too: update_* replaces what was there, set_* and 117 * assign_* swap one value for another. Only the tools named below are 118 * reported as additive. 119 * 120 * @var string[] 121 */ 122 private static $additive_tools = array( 123 'create_comment', 124 'create_post', 125 'create_term', 126 'pll_create_translation', 127 'upload_media_base64', 128 'upload_media_from_url', 129 'wc_create_product', 130 ); 131 132 /** 133 * MCP tool annotations, derived from the same classification read-only 134 * mode uses, so the hint a client sees can never disagree with what the 135 * server enforces. 136 * 137 * Clients use these to decide what to run without asking the user first; 138 * ChatGPT, for one, asks before calling tools not marked read-only. 139 * 140 * @param string $name Tool name. 141 * @return array 142 */ 143 public function annotations( $name ) { 144 if ( ! $this->is_write( $name ) ) { 145 return array( 146 'readOnlyHint' => true, 147 'openWorldHint' => false, 148 ); 149 } 150 return array( 151 'readOnlyHint' => false, 152 'destructiveHint' => ! in_array( (string) $name, self::$additive_tools, true ), 153 // Fetching from a URL is the one tool that reaches beyond this site. 154 'openWorldHint' => 'upload_media_from_url' === $name, 155 ); 156 } 157 158 /** 113 159 * Is the server restricted to reads? 114 160 * … … 175 221 'description' => $def['description'], 176 222 'inputSchema' => $def['inputSchema'], 223 'annotations' => $this->annotations( $name ), 177 224 ); 178 225 } -
simonov-ai-site-manager/tags/0.9.2/readme.txt
r3777794 r3777876 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.0 7 Stable tag: 0.9. 17 Stable tag: 0.9.2 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 97 97 4. In a chat, open the "+" menu, choose developer mode and select your site. 98 98 99 ChatGPT may ask you to confirm a tool call before running it. Read what it is about to do before you confirm.99 Tools that only read run straight away. Before anything that changes the site, ChatGPT asks you to confirm. Read what it is about to do before you confirm. 100 100 101 101 = Connect Claude Code = … … 169 169 * Every tool enforces WordPress capabilities against the specific object it touches — not just a generic capability — so a non-admin configured user cannot edit content it does not own. 170 170 * No tool changes plugins, themes, users or site settings. 171 * Option reads refuse anything that looks like a credential (API keys, SMTP passwords, salts).172 171 * Media uploads validate file content against the extension and block fetches to internal/cloud-metadata addresses. 173 172 * Disable individual tools from the settings page if you want to reduce surface area. … … 181 180 == Changelog == 182 181 182 = 0.9.2 = 183 * Every tool now tells the client whether it only reads, adds something new, or can overwrite or delete. ChatGPT and other clients run reading tools without asking and ask before changes. 184 183 185 = 0.9.1 = 184 186 * MCP requests never hold administrative capabilities, whichever account is connected. -
simonov-ai-site-manager/tags/0.9.2/simonov-ai-site-manager.php
r3777746 r3777876 4 4 * Plugin URI: https://github.com/yuo2007/simonov-ai-site-manager 5 5 * Description: Free, open Model Context Protocol (MCP) server for WordPress. Lets Claude, ChatGPT and other MCP clients manage posts, media, taxonomies, comments, WooCommerce and Polylang translations. 6 * Version: 0.9. 16 * Version: 0.9.2 7 7 * Requires at least: 5.8 8 8 * Requires PHP: 7.0 … … 20 20 defined( 'ABSPATH' ) || exit; 21 21 22 define( 'WPMCP_VERSION', '0.9. 1' );22 define( 'WPMCP_VERSION', '0.9.2' ); 23 23 define( 'WPMCP_FILE', __FILE__ ); 24 24 define( 'WPMCP_DIR', plugin_dir_path( __FILE__ ) ); -
simonov-ai-site-manager/trunk/includes/class-tool-registry.php
r3777746 r3777876 111 111 112 112 /** 113 * Writes that only add something new and never overwrite or remove. 114 * 115 * MCP assumes a write is destructive unless told otherwise, and that is the 116 * right default here too: update_* replaces what was there, set_* and 117 * assign_* swap one value for another. Only the tools named below are 118 * reported as additive. 119 * 120 * @var string[] 121 */ 122 private static $additive_tools = array( 123 'create_comment', 124 'create_post', 125 'create_term', 126 'pll_create_translation', 127 'upload_media_base64', 128 'upload_media_from_url', 129 'wc_create_product', 130 ); 131 132 /** 133 * MCP tool annotations, derived from the same classification read-only 134 * mode uses, so the hint a client sees can never disagree with what the 135 * server enforces. 136 * 137 * Clients use these to decide what to run without asking the user first; 138 * ChatGPT, for one, asks before calling tools not marked read-only. 139 * 140 * @param string $name Tool name. 141 * @return array 142 */ 143 public function annotations( $name ) { 144 if ( ! $this->is_write( $name ) ) { 145 return array( 146 'readOnlyHint' => true, 147 'openWorldHint' => false, 148 ); 149 } 150 return array( 151 'readOnlyHint' => false, 152 'destructiveHint' => ! in_array( (string) $name, self::$additive_tools, true ), 153 // Fetching from a URL is the one tool that reaches beyond this site. 154 'openWorldHint' => 'upload_media_from_url' === $name, 155 ); 156 } 157 158 /** 113 159 * Is the server restricted to reads? 114 160 * … … 175 221 'description' => $def['description'], 176 222 'inputSchema' => $def['inputSchema'], 223 'annotations' => $this->annotations( $name ), 177 224 ); 178 225 } -
simonov-ai-site-manager/trunk/readme.txt
r3777794 r3777876 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.0 7 Stable tag: 0.9. 17 Stable tag: 0.9.2 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 97 97 4. In a chat, open the "+" menu, choose developer mode and select your site. 98 98 99 ChatGPT may ask you to confirm a tool call before running it. Read what it is about to do before you confirm.99 Tools that only read run straight away. Before anything that changes the site, ChatGPT asks you to confirm. Read what it is about to do before you confirm. 100 100 101 101 = Connect Claude Code = … … 169 169 * Every tool enforces WordPress capabilities against the specific object it touches — not just a generic capability — so a non-admin configured user cannot edit content it does not own. 170 170 * No tool changes plugins, themes, users or site settings. 171 * Option reads refuse anything that looks like a credential (API keys, SMTP passwords, salts).172 171 * Media uploads validate file content against the extension and block fetches to internal/cloud-metadata addresses. 173 172 * Disable individual tools from the settings page if you want to reduce surface area. … … 181 180 == Changelog == 182 181 182 = 0.9.2 = 183 * Every tool now tells the client whether it only reads, adds something new, or can overwrite or delete. ChatGPT and other clients run reading tools without asking and ask before changes. 184 183 185 = 0.9.1 = 184 186 * MCP requests never hold administrative capabilities, whichever account is connected. -
simonov-ai-site-manager/trunk/simonov-ai-site-manager.php
r3777746 r3777876 4 4 * Plugin URI: https://github.com/yuo2007/simonov-ai-site-manager 5 5 * Description: Free, open Model Context Protocol (MCP) server for WordPress. Lets Claude, ChatGPT and other MCP clients manage posts, media, taxonomies, comments, WooCommerce and Polylang translations. 6 * Version: 0.9. 16 * Version: 0.9.2 7 7 * Requires at least: 5.8 8 8 * Requires PHP: 7.0 … … 20 20 defined( 'ABSPATH' ) || exit; 21 21 22 define( 'WPMCP_VERSION', '0.9. 1' );22 define( 'WPMCP_VERSION', '0.9.2' ); 23 23 define( 'WPMCP_FILE', __FILE__ ); 24 24 define( 'WPMCP_DIR', plugin_dir_path( __FILE__ ) );
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)