Add WebMCP adapter experiment#223
Closed
Jameswlepage wants to merge 89 commits intoWordPress:developfrom
Closed
Conversation
Register settings on admin_init hook instead of calling register_settings() directly during init. This ensures proper WordPress Settings API integration and prevents the duplicate "Settings saved" admin notices.
Add MCP server manager and admin page for configuring Model Context Protocol servers. Includes bootstrap integration and webpack entry point for the admin UI.
- Add support for media modal sidebar and attachment edit screens - Convert image references to data URIs for consistent AI client handling - Add new media.ts entry for DOM-based integration outside block editor - Simplify frontend by removing client-side base64 detection - Add MCP metadata to ability for external tool exposure
- Support all taxonomy columns (categories, tags, custom taxonomies) - Add DOM observer for dynamic inline edit row mounting - Simplify AI client call to use generate_text instead of generate_texts - Add MCP metadata to ability for external tool exposure - Prevent duplicate mount point rendering
- Add 8-second request timeout to avoid browser/apiFetch 20s timeout - Add inline styles for ghost text overlay positioning - Refactor keyboard hint component for cleaner rendering - Add MCP metadata to ability for external tool exposure - Update docs with timeout behavior note
Add MCP tool metadata with public visibility and category assignments for external tool exposure via Model Context Protocol.
Add new experiment for AI-assisted comment moderation with ability to analyze and suggest moderation actions for comments. Includes experiment registration and React-based admin UI.
Add entry points for: - admin/mcp-server admin page - experiments/alt-text-generation-media for media modal integration - experiments/comment-moderation for comment moderation UI
Refactor AI request logging as a proper experiment extending Abstract_Experiment. Provides observability and cost tracking for AI API requests with: - Custom database table for log storage - Token usage and cost estimation - Configurable retention period - Admin UI under Settings → AI Request Logs - REST API for log management
Refactor MCP server management as a proper experiment extending Abstract_Experiment. Removes standalone MCP infrastructure from includes/MCP/ and bootstrap.php in favor of the experiments pattern.
Add AI-powered reply suggestion modal to comment moderation experiment. Allows generating contextual reply drafts for comments directly from the moderation interface.
Add register_settings method to Type_Ahead ability for configuration options including mode, delay, confidence threshold, and max words.
Update MCP server admin interface components and add webpack entry for ai-request-logs admin page.
Add reusable SCSS partial for consistent DataViews table styling across admin pages. Includes header styling, cell padding, row borders, alternating backgrounds, hover states, and pagination layout. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Fix DataViews search and pagination using filterSortAndPaginate utility - Add proper spacing between cards (exposed abilities, test connection) - Fix card body layout to not stretch buttons full width - Import shared DataViews styling for consistent table appearance - Clean up ConfigGenerator spacing between form elements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Import shared DataViews styling for consistent table appearance - Update LogsTable component with improved field definitions - Simplify styles by removing redundant DataViews overrides - Minor cleanup to SettingsPanel, SummaryCards, and types 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Move AI request logging infrastructure to includes/Logging/ - Add AI_Request_Log_Manager for centralized log management - Add Logging_HTTP_Client wrapper for provider requests - Add Logging_Discovery_Strategy for ability registration - Simplify AI_Request_Logging experiment to use new module - Update bootstrap and helpers to support new architecture 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Fix Alt_Text_Generation minor adjustment - Enhance Reply_Suggestion ability - Update Type_Ahead ability configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add dataviews package for admin table components used in MCP server and AI request logs pages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Remove max-width constraint on modal content to allow it to use the full available width for better readability of log details. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add icon components for 9 new providers: Cloudflare, DeepSeek, Fal, Grok, Groq, HuggingFace, Ollama, OpenRouter, and Xai - Update HTTP client to detect new providers from request hosts - Update logs table to display icons for all supported providers - Restructure MCP server toolbar layout with improved responsive design - Overhaul writing assistant sidebar with DataViews grid layout, popover controls, and streamlined session management - Fix type-ahead useEffect hook ordering for proper dependency handling - Add error handling and REST visibility to Writing Suggestions PHP 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add Provider_Credentials_UI and Provider_Metadata_Registry for managing provider credentials - Add provider icons component with tooltip content - Improve MCP server status cards and admin page - Enhance AI request logs table with better filtering - Update writing assistant sidebar styling - Refactor Ollama provider integration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Resolves merge conflicts and integrates: - Provider credentials UI and metadata registry - Provider icons with tooltip content - Improved MCP server status cards - Enhanced AI request logs with provider metadata - Writing assistant sidebar improvements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add operation_pattern regex filter for filtering by request type (completions vs models) - Add tokens_filter with predefined ranges (> 0, < 100, < 1K, > 5K, etc.) - Fix tokens filtering with proper backend support for gt/lt comparisons - Deduplicate filters in view state to prevent duplicate filter entries - Redesign Provider/Model cell with two-row layout (icon+name, model) - Replace black tooltip with white popover containing settings links - Update cell text colors to match table gray (#757575) - Add provider credentials and API key settings links to popover 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add missing database indexes (provider, operation, composite indexes) - Implement query result caching for filter options (1hr) and summary (5min) - Optimize summary queries from 4 separate queries to 1 combined query - Add batched cleanup with 5K row chunks to avoid table locks - Implement size-based pruning with configurable max_rows limit (default 100K) - Add cursor-based pagination for efficient deep page navigation - Add /stats endpoint with table size monitoring and admin warnings - Bump database schema version to 1.1.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add request_preview and response_preview TEXT columns to store input/output content directly (previously only in JSON context) - Add FULLTEXT index (ft_search) for fast search on MySQL 5.6+ - Search now covers: operation, error_message, request_preview, response_preview (was only operation and error_message) - Automatically migrates existing data from context JSON to new columns - Falls back to LIKE search if FULLTEXT not available - Bump schema version to 1.2.0 This enables searching through actual AI prompts and responses, including image generation prompts and text completions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Remove enableGlobalSearch from operation field to prevent DataViews from doing client-side filtering. The search is already properly sent to the API via the view.search parameter, but enableGlobalSearch was causing DataViews to also filter the already-fetched results client-side, which didn't include the new searchable columns. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add blueprint.json for WordPress Playground demo - Add Playground Demo badge to README.md Closes WordPress#79 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Update blueprint URL and plugin source to use Jameswlepage/ai fork until merged to upstream WordPress/ai. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
The blueprint now fetches from wordpress.org/plugins which will work once the plugin is published to WPORG. This is the intended final configuration for the demo badge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add FLUX.2 Dev, Pro, and Flex models (fal-ai/flux-2, flux-2-pro, flux-2-flex) - Add FLUX.1 Schnell model - Clean up model display names (remove redundant "(Fal.ai)" suffix)
Contributor
Author
|
Added everything, be back soon |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
webmcp-adapterexperiment that registers layered WebMCP tools for WordPress abilities in wp-adminValidation
vendor/bin/phpcs --standard=phpcs.xml.dist includes/Experiments/WebMCP/WebMCP.php tests/Integration/Includes/Experiments/WebMCP/WebMCPTest.php includes/Experiment_Loader.phpnpx wp-scripts lint-js src/experiments/webmcp-adapter/index.jsvendor/bin/phpstan analyse --memory-limit=1G includes/Experiments/WebMCP/WebMCP.php includes/Experiment_Loader.phpnpm run buildNotes
wp-env/Docker not available in this run), so PHP integration tests were added/updated but not executed end-to-end here.