NV Digital Open Operator System (NVoOS)
Version: 1.2.4 Release Date: 2026-10-12
See § Release History for the 12 most recent releases; every older release is in the Previous Releases table. Full detail: CHANGELOG.md.
🆕 v1.2.4 Highlights: MCP client-quirk hardening, chart recipes, Model Foundry Phase 1, and the Content Graph SPA page. MCP hardening (PR #7007, Proposal 066) — every advertised tools/list schema now carries a root type: object, hazardous schemas are skipped-with-reason instead of dropping the whole catalog (the new WP_MCP_AI_Tool_Schema_Auditor), nvoos_get_profile advertises structuredContent, and discovery caches respect server TTLs and invalidate on tools/list_changed; the CG-AI standalone mirror ports the same hardening. Chart recipes (PRs #7003, #7005) — fenced nvoos-chart JSON renders as real HTML/CSS charts on all three chat surfaces (29 types, sanitisation by construction, resource caps) plus the +1 base tool create_chart_fence and the design-chart-recipes skill. Model Foundry Phase 1 — Corpus Foundry (PR #7008, Proposal 067) — +3 Pro exporters behind the consent fail-closed governance engine (dedup → PII scrub → deterministic holdout split → R12 provenance). Content Graph explorer page (PR #6998) — #/knowledge-graph in the Pro SPA with the plugin's Cytoscape explorer vendored (wrapper-only delta). Fixed — the standalone SPA's cross-host login redirects and the vendored explorer's AJAX auth (#6999/#7000/#7002/#7004/#7006), the static-server nosniff + ramped HSTS headers (#7009), and the F&B toolkit toggle that never rendered (#7010). Docs — the user-directed partial @since reconciliation and three new coding-time skills (66 → 69). Tool count: ~354 base + ~1,342 Pro (~1,696 total; +1 base +3 Pro). Security classes: 12 (unchanged). Stale 1.2.2 build ZIPs removed (6 files).
MCP Specification: 2026-07-28 (Stateless Core, Full Compliance)
Maintained by NV Digital
License: GPLv3 or later
Requires: WordPress 6.0+, PHP 7.4+
Patent Status: Patent Pending (Application #19/410,504)
Documentation: Grade A (95/100) — 1,617 files across 12 directories, 108 admin screenshots, 100% feature coverage
🔍 For Reviewers & Auditors
New to this repo? Start here →
docs/project/FOR_REVIEWERS.mdThat document answers every common question in one place: what the project is, current security posture, what's production vs experimental, PHP version requirements, AI development methodology, compliance status, and scoping advice for a limited-budget review.
Quick links for reviewers:
- Addon Inventory — what each of 30 addons does and its status
- Security Posture — current state of all 50 audit findings
- Compliance Traceability — every .org rejection reason → commit → verification command
- AI-Assisted Development — methodology, transparency, and what to scrutinize
- Architecture Overview — component diagram and data flow
📑 Table of Contents
Getting Started
- 🧩 Overview
- 🎯 Our Mission
- 🛡️ Active Security Monitoring
- ⚠️ Warranty & Safe Use
- 🏗 System Architecture
- 🚀 Features
- 📦 Installation
- 🔌 What You Lose Without Third-Party Plugins
- ⚙️ Configuration Checklist
- 📚 Documentation
Core Functionality
- 🧠 Memory & Tool Stack Overview
- 🛠 Built-in tools & automations
- 🗨️ Front-end chat surfaces
- 💬 Frontend Shortcode
Addons & Extensions
Orchestration & AI Features
AI Providers & Integration
- 🧠 Language Model Providers
- 🧱 ChatKit Integration
- 🌐 Crawl4AI Integration
- 📡 Job Notification System
- 🧊 Elementor Widgets
Performance & Optimization
- ⚡ Message Bundling
- 🎯 Agentic Loop Token Management
- 🔄 Chat Performance Optimizations
- 🌐 Mesh Compute Routing
- 🔗 Federation & Discovery System
Remote MCP Setup
- 🔒 MCP Server Authentication
- 🌐 Connecting Remote MCP Clients
- 🛰 REST API Endpoints
- 🌊 SSE Streaming Support
- 📝 MCP JSON-RPC 2.0 Endpoint
- 🔑 Assistant API Credentials
- 🎫 Token Management UI
Assistant Management
- 🛠 Assistant Editor Overview
- 📊 Assistant Storage: CPT vs CCT
- ⚡ Assistant Tool Shortcuts
- 🧠 Agent Skills
- 👔 Professional & Team Layers
- 🧵 REST Chat Payloads & Attachments
Development
- 🐳 Local Development with Docker
- 🧑💻 Development Tooling
- 📦 NPM Packages
- 🧪 Testing & QA
- 🧩 Hooks & Filters
- 🧰 WP-CLI Commands
Reference
- 🔐 JetEngine Capability Reference
- 🛰 JetEngine REST API Reference
- 🧮 Usage Tracking
- 🧷 Attachment MIME Controls
- 🧾 Logging
- 🧾 JetEngine REST Endpoint Report Helper
- 🔌 Optional Tools & Dependencies
- ✅ Manual QA Scenarios
Changelog
🗺 Repository Map
| Directory | Purpose |
|---|---|
includes/ | Core plugin classes — admin, assistants, tools, services, REST, security (10 infrastructure classes), providers (~15 AI backends), harness, data, markup, measurement, skills, professions, teams, slash-commands, A2A/ACP protocols, federation, elementor, blocks, crawler, integrations |
lib/core/ | Framework-agnostic AI orchestration engine (nvoos/core): 32 domain contracts, 21 WordPress adapters, ChatOrchestrator, ProviderRouter, ToolRegistry, SkillRegistry — PHP 8.1+ |
addons/ | 28 installable addons (Pro, Chat SPA, Docs Hub, SaaS Controller, Cloud Worker, Cloudways Dashboard, Toolkit Shell, Canvas, Canvas Toolkit, Document Editor, Media Studio, Media Worker, Graphify, Comic Reader, Funiq Bridge, Fleet Operator, Algorave, Cornerstone3D, Crocoblock DS, Embedded, Fantasy Football, LibreChat, Schedule Anything Platform, Schedule Anything SPA, Tenant Router, Page Agent, Checkout API, mcp-wordpress-gateway) |
assets/ | Frontend JS/CSS, images, CSV templates, examples |
.agents/skills/ | 69 coding-time agent skills for Zed editor (20 wp-* WordPress plugin development patterns + 35 design-* skills incl. design-figma-to-elementor + mcp-ai-wpoos-plugin operational guide + mcp-ai-wpoos-test-suite repair guide + mcp-ai-wpoos-updates maintenance guide + mcp-ai-wpoos-wporg-submission wp.org readiness guide + mcp-ai-wpoos-ecosystem-port port-loop guide + mcp-ai-wpoos-assistant-portability export/import guide + mcp-ai-wpoos-playground-demos Playground demo blueprint guide + mcp-ai-wpoos-dependabot-loop alert-triage guide + mcp-ai-wpoos-toolkit-audit per-toolkit hardening audit guide + mcp-ai-wpoos-toolkit-creation new-Pro-toolkit creation guide + mcp-ai-wpoos-spa-ui SPA UI stack & testing guide + mcp-ai-wpoos-checkout-integration purchase-flow client guide + mcp-ai-wpoos-content-graph-spa Content Graph explorer ↔ SPA port & auth guide + mcp-ai-wpoos-model-foundry corpus-foundry fine-tuning guide) |
.bmad/ | 6 BMAD workflow agent YAML definitions + team composition config |
.context/ | Subsystem context files (10 topics + 5 templates) for agent session loading |
plugins/ | Standalone plugins: NVOOS Content Graph, NVOOS Content Graph AI, NVOOS Content Graph AI Platform |
packages/ | 23 NPM packages under @nvdigitalsolutions scope |
src/ | TMA (Telegram Mini App) builders + workflow builder source |
🧩 Overview
Real-time AI Orchestration Toolkit / Harness for Wordpress - NV oOS is a modular AI framework (Object-Oriented System) for WordPress that connects your site's data with 18 language-model providers: OpenAI, Gemini, Anthropic, DeepSeek, OpenRouter, Baseten, Kimi (Moonshot), Z.AI (GLM), DigitalOcean, NVIDIA NIM, Cloudflare Worker AI, Azure, Ollama, LM Studio, Hugging Face, and TypeSafe Jev (decision-only), plus local WebLLM and embedded engines. It allows you to create and manage AI Assistants that can interact with users, access WordPress data, and perform custom tool functions.
✨ What's New at a Glance (v1.2.4)
- 🛡 MCP client-quirk hardening (PR #7007, Proposal 066). Every advertised
tools/listschema gets a roottype: objectand hazardous schemas are skipped-with-reason instead of dropping the whole catalog (bracketed property names, >20 KB schemas, root combinators, >64-char slugs — the newWP_MCP_AI_Tool_Schema_Auditor);nvoos_get_profileadvertisesstructuredContentwith itsoutputSchema; the registry fireswp_mcp_ai_mcp_tools_list_changedbackinglistChanged; JetEngine MCP + MCP App discovery caches respect serverttlMsand invalidate onnotifications/tools/list_changed; the CG-AI standalone mirror ports the same hardening. Site Health direct test + debug field. - 📈 Chart recipes in every chat surface (PRs #7003, #7005). Fenced
nvoos-chartJSON renders as real HTML/CSS charts — 29 types total (bar/column/line/area/dot/donut/heatmap + v2's histogram, box, strip, stem, violin, pie, waffle, unit, diverging, lollipop, dumbbell, slope, bullet, pyramid, waterfall, candlestick, gantt, sparkline, radial, dial, race, grid) — sanitisation by construction (extracted before marked/DOMPurify,createElement+textContent), resource caps, theme-adaptive + dark-mode-aware CSS, grouped-bar rendering fixed. +1 base toolcreate_chart_fence(server-side validator mirror) + thedesign-chart-recipesskill + byte-identical conformance fixtures across all three suites. - 🧠 Model Foundry Phase 1 — Corpus Foundry (PR #7008, Proposal 067). +3 Pro tools (
export_trajectory_corpus,export_preference_pairs,export_plugin_docs_corpus) behind the consent fail-closed governance engine (_wp_mcp_ai_training_consent, caps → exact → fuzzy → opt-in semantic dedup → PII scrub → deterministic holdout split → R12 provenance → guarded sharded write; holdout rows never entertrain.jsonl); deactivatablemodel_foundryPro module;ai_mlpreset +3 slugs;mcp-ai-wpoos-model-foundryskill + docs. - 🗺 Content Graph explorer page in the Pro SPA (PR #6998).
#/knowledge-graphin the admin surface + standalone app — the plugin's Cytoscape explorer vendored with a documented wrapper-only delta (teardown + jQuery-namespaced listeners, body byte-identical); lazy 213 KB-gzip chunk; the CG plugin gains a read-onlyGET /graph/visual-configroute + assistant-credential read auth (write routes staymanage_options-only — sub-project track).
🎯 Mission: Modernizing Small to Medium Business Websites
NV oOS is specifically designed to help small to medium-sized businesses fast-track their outdated, stale, or insecure company websites to modern technology standards—without the need to add yet another wrapper around API calls. Instead, we're trying to peel back decades of API wrappers with the help of AI, providing:
- Direct AI Integration - No middleware required. Connect directly to OpenAI, Gemini, Anthropic, Hugging Face, Cloudflare Worker AI, Ollama, LM Studio, OpenRouter, and DeepSeek without custom development
- Security-First Architecture - Built-in protection against nefarious usage with active monitoring and prevention systems
- Enterprise-Grade Features - Access to capabilities typically requiring expensive custom development
- Compliance & Audit Tools - Comprehensive logging, rate limiting, and usage tracking built-in
- Zero Technical Debt - Modern codebase following WordPress standards, ready for current technology stacks
🛡 Active Security Monitoring
NV oOS actively prevents and monitors against nefarious behavior. The plugin includes:
- Nefarious Usage Monitor - Real-time detection of suspicious patterns and automatic emergency shutdown capabilities【F:includes/class-wp-mcp-ai-nefarious-usage-monitor.php†L1-L676】
- Root Security Key - Optional emergency authentication layer to prevent unauthorized reactivation after security incidents【F:docs/features/security/root-security-key.md†L1-L511】
- Granular Capability Controls - Every tool and API endpoint enforces WordPress capabilities to prevent unauthorized access
- Rate Limiting - Built-in protection against abuse with configurable limits per user, model, and time period
- Comprehensive Audit Logging - Track all API calls, tool executions, and security events for compliance and forensic analysis
- Input Sanitization & Output Escaping - All user input sanitized, all output escaped following WordPress security best practices
This is not a tool for circumventing security or promoting bad practices. Every feature is designed with security, transparency, and responsible AI usage as core principles. The plugin actively works to stop and prevent misuse before it happens.
Latest audit: See docs/operations/compliance/SECURITY_AUDIT_2026_04.md — the published summary of the April 2026 security & compliance code review (no Critical findings; 5 High items, 3 Fixed and 2 Partially Fixed). Full deliverables under docs/project/audits/2026-04/.
WordPress.org compliance hardening (May 9, 2026): docs/operations/compliance/WORDPRESS_ORG_COMPLIANCE_2026_05_09.md — findings B3, B8, B10, B13, and production vendor remap all resolved.
⚠ Warranty & Safe Use
We make every effort to keep NV oOS safe and secure — but by design, it can be destructive and resource-intensive when not properly configured.
NV oOS grants AI assistants access to powerful WordPress operations. The same capability that automates real work can cause irreversible harm if misconfigured:
- Destructive tools — bulk content deletion, user management, file writes, mass email, WP-CLI, direct database operations
- API billing exposure — uncapped AI provider calls can exhaust quotas and trigger unexpected charges
- Server resource exhaustion — concurrent agentic loops and SSE streams can saturate CPU/memory on shared hosting
Before going live: test on staging, take verified backups, apply least-privilege tool permissions, enable rate limiting, and review the system prompt of every public-facing assistant.
📄 Full details: WARRANTY.md — security commitment, "AS IS" disclaimer, destructive-operations table, resource-consumption guide, and mitigation checklist aligned with OWASP, NIST SP 800-53, ISO/IEC 27001, and the WordPress Plugin Developer Handbook.
Patent Pending
NV oOS is the subject of a pending patent application for its novel System and Method for Dynamic AI Orchestration Layer with Real-Time Capability Gating and Resource Budgeting.
Application Number: 19/410,504
The patent covers NV oOS's innovative approach to implementing sophisticated AI orchestration in WordPress's request-based PHP architecture—a platform not designed for real-time streaming, asynchronous operations, or persistent state management. This technical achievement enables enterprise-grade AI capabilities on WordPress by recreating event-driven behavior within PHP's synchronous execution model.
Key Innovations Covered:
- Dynamic resource budget allocation during streaming operations
- Capability-based access control for AI tool execution
- Registry-state-based scheduling in stateless environments
- Metrics-driven budget adjustment for real-time optimization
- Persistent-behavior illusion in request-based architectures
The orchestration layer makes NV oOS unique in the WordPress ecosystem by solving fundamental architectural limitations that prevent traditional WordPress plugins from supporting advanced AI features. See the System Architecture section below for technical details on how these innovations work together.
🏗 System Architecture
NV oOS implements a comprehensive orchestration layer for managing AI operations during real-time streaming events. The system architecture comprises:
- 18 language-model providers — OpenAI, Gemini, Anthropic, DeepSeek, OpenRouter, Baseten, Kimi (Moonshot), Z.AI (GLM), DigitalOcean, NVIDIA NIM, Cloudflare Worker AI, Azure, Ollama, LM Studio, Hugging Face, TypeSafe Jev (decision-only), plus local WebLLM + embedded engines
- ~1,692 tool classes (~353 base + ~1,339 Pro; live count via
WP_MCP_AI_Tool_Registry::get_tools()is authoritative) registered through a singleton Tool Registry - 36 REST controllers (16 base + 20 pro) under the
mcp-ai/v1namespace - 64 service classes powering orchestration, budgets, and workflows
- 5 authentication methods — WordPress nonce, assistant credentials, mesh keys, Auth0 JWT, guest tokens
- Toolkit MCP servers — per-toolkit JSON-RPC 2.0 servers exposed under
/wp-json/mcp-ai-pro/v1/mcp/{slug}; discoverable at/.well-known/mcp - 8 inline-async-tick consumers — cooperative tick-lock pattern eliminates WP-Cron startup latency for background jobs (transcript mining, async tool executor, SaaS Apply, Crawl4AI, Docs Hub rebuild, Graphify reindex, Harness eval, Gemini Veo polling)
- 7 LLM Harness layers (+ 1 Pro) — opt-in epistemic layers A–H activated per-assistant via the LLM Harness metabox
- Orchestration Phases 1–7 — HITL approval queue, prompt-injection detector, structured output, OTel exporter, DAG builder, durable runs, triggers/webhooks, sub-agents
📖 For a detailed explanation of how NV oOS extends standard SSE and MCP protocols with novel orchestration features, see ORCHESTRATION-LAYER-ARCHITECTURE.md
Core Orchestration Layer: Overcoming PHP's Limitations
Critical Context: Most real-time AI streaming systems are built with Node.js, Python FastAPI, or Go — platforms designed for asynchronous, event-driven operations. These platforms natively support:
- Long-lived connections and persistent state
- Non-blocking I/O and parallel execution
- Event loops and asynchronous callbacks
- WebSocket protocols and SSE streaming
NV oOS achieves the same capabilities in PHP/WordPress — an environment fundamentally not designed for these patterns — through a sophisticated orchestration layer that creates a "persistent-behavior illusion":
- Real-Time Budget Enforcement - Monitors token/memory usage during streaming, prevents exhaustion through predictive allocation
- Capability-Based Tool Gating - WordPress role-based access control for AI tool execution
- Predictive Optimization - Analyzes usage patterns to prevent resource overruns before they occur
- Distributed Orchestration - Multi-provider support with policy-aware routing
- Auditability & Compliance - Complete governance layer with logging and rate limiting
- Cron-Based Task Orchestration - Extends orchestration to async operations with budget inheritance
Multi-Agent Orchestration Enhancement (DeepSeek V4-Inspired)
Added: January 2026 (v1.1.0)
Building upon the core orchestration layer, NV oOS now includes a sophisticated multi-agent coordination framework inspired by DeepSeek V4's orchestration patterns:
Key Components:
- Agent Role System - Four specialized roles (Planner, Executor, Critic, Specialist) with role-specific capabilities
- Team Composition - Automated team assembly based on task requirements and profession expertise
- Coordinated Workflows - Multi-step workflows with agent delegation, result aggregation, and validation
- Team CPT Integration - Persistent team configurations with orchestration modes (single/sequential/parallel/swarm)
- Profession-Based Discovery - 296 professions auto-assigned agent roles via intelligent seeding across 17 knowledge bases
Example Multi-Agent Workflow:
// 1. Compose research team (planner + executors + critic)
$orchestrator = new WP_MCP_AI_Agent_Team_Orchestrator();
$team = $orchestrator->compose_team( array( 'task_type' => 'research' ) );
// 2. Execute coordinated workflow
// Planner decomposes task → Executors research subtasks →
// Communication service aggregates → Critic validates quality
$result = $orchestrator->execute_team_workflow( $team, $task, $context );
Documentation:
- See Multi-Agent Orchestration for complete technical details
- See DEEPSEEK-V4-README.md for documentation suite overview
- See DEEPSEEK-V4-USAGE-GUIDE.md for practical examples
Why This Architecture Is Novel: Overcoming PHP's Limitations
- Event loops and background workers
PHP/WordPress, by contrast, is fundamentally request-based:
- Every HTTP request spawns a new process that dies after responding
- I/O operations block execution
- No persistent memory between requests
- No native event loop or async coordination
NV oOS solves this by implementing an orchestration layer that creates a "persistent-behavior illusion" — effectively recreating Node.js's event loop behavior within WordPress's synchronous, request-based architecture. This architectural compensation is the system's core technical innovation:
| PHP Limitation | NV oOS Solution |
|---|---|
| No persistent state | Registry & policy engine maintain state via database/cache |
| No event loop | Cron Manager extends orchestration across time-shifted operations |
| Blocking I/O | Predictive budget allocator prevents blocking operations |
| Request-based lifecycle | SSE controller implements streaming within request boundaries |
| No background workers | WordPress cron system simulates async job processing |
This makes NV oOS patent-worthy as a technical workaround — it achieves sophisticated AI orchestration in an environment specifically not designed for such patterns. See ORCHESTRATION-LAYER-ARCHITECTURE.md for the complete technical analysis.
Computer-Implemented Resource Management
The system operates as a computer-implemented method executing on a processor with memory, performing:
-
Dynamic Resource Budget Allocation: The orchestration layer dynamically allocates token and memory budgets to tool execution requests based on real-time system capacity and operation requirements. The
WP_MCP_AI_Resource_Managercontinuously monitors server resources (PHP memory limits, execution time constraints) and automatically adjusts operational parameters. -
Capability-Based Access Control: Tool execution endpoints enforce granular capability-based access controls. Each tool in the registry declares required WordPress capabilities, and the REST API controller validates user permissions before allowing execution. This ensures secure, policy-driven access to all operations.
-
Registry-State-Based Scheduling: The
WP_MCP_AI_Tool_Registrymaintains tool availability state and schedules execution based on policy constraints. Tools are loaded conditionally based on dependency availability, and execution is scheduled according to assistant configuration and user permissions. -
Metrics-Driven Budget Adjustment: The system continuously monitors execution metrics (memory usage, API response times, token consumption) and adjusts resource budgets in response to prevent resource exhaustion and reduce latency. The
WP_MCP_AI_Token_Budget_Managerimplements safety margins and dynamic chunking to prevent API limit overruns.
System Components
The system comprises a processor and memory storing instructions that:
- Monitor real-time resource availability through PHP runtime introspection
- Enforce capability checks at REST endpoint boundaries
- Schedule tool execution through a centralized registry
- Adjust token and memory budgets based on detected system metrics
- Maintain operation logs for audit and optimization
This architecture is embodied in non-transitory computer-readable media (PHP source files) that, when executed by a web server processor, cause the system to perform the complete resource management workflow. The implementation prioritizes stability, security, and efficient resource utilization across diverse hosting environments.
Symfony Process Integration (December 2025)
NV oOS Pro addon integrates the Symfony Process component for secure external command execution. This modern framework replaces direct exec() calls in 6 Pro tools and 2 supporting services, providing:
- Enhanced Security: Proper argument escaping and command validation
- Timeout Management: Configurable timeouts with graceful handling
- Better Error Handling: Comprehensive exception catching and WordPress-friendly error reporting
- Process Control: Real-time output streaming and cancellation support
Migrated Tools & Services:
- FFmpeg operations (video frame extraction, metadata reading)
- Python rembg (background removal)
- WP-CLI execution
- Meta AI Jukebox (music generation)
- Supporting services for video and audio processing
The Process Service (WP_MCP_AI_Process_Service) provides WordPress-friendly wrappers with WP_Error integration, making external process execution consistent with WordPress coding standards.【F:includes/services/class-wp-mcp-ai-process-service.php†L1-L220】【F:docs/history/2025/implementations/symfony-phases/SYMFONY_PHASE2B_PROCESS_INTEGRATION.md†L1-L100】
📜 Release History
The 12 most recent releases are documented in full below. Every older release has a one-line summary in the Previous Releases table, and complete per-release detail lives in CHANGELOG.md.
v1.2.4 — October 11, 2026
MCP Quirk Hardening, Chart Recipes, Model Foundry Phase 1 & the Content Graph SPA Page
- 🛡 MCP client-quirk hardening (PR #7007, Proposal 066). Every advertised
tools/listschema now carries a roottype: objectand hazardous schemas are skipped-with-reason instead of dropping the whole catalog (bracketed property names, >20 KB schemas, root combinators, >64-char slugs — the newWP_MCP_AI_Tool_Schema_Auditor);nvoos_get_profileattachesstructuredContentwhenever itsoutputSchemais advertised (Codex turns declared-outputSchema text-only results into errors); the registry fireswp_mcp_ai_mcp_tools_list_changed(once per request) backinglistChanged; JetEngine MCP + MCP App discovery caches cap at the serverttlMsand invalidate onnotifications/tools/list_changed; the CG-AI standalone mirror ports the hardening. Site Health direct test + debug field; 44 new tests on WP 6.9 + 7.1. - 📈 nvoos-chart recipe rendering (PRs #7003, #7005). Fenced
nvoos-chartJSON renders as real HTML/CSS charts on all three chat surfaces (no SVG/canvas/CDN) — 29 types (v1's bar/column/line/area/dot/donut/heatmap + v2's histogram, box, strip, stem, violin, pie, waffle, unit, diverging, lollipop, dumbbell, slope, bullet, pyramid, waterfall, candlestick, gantt, sparkline, radial, dial, race, grid); invalid fences degrade to escaped code blocks; sanitisation by construction (extracted beforemarked/DOMPurify,createElement+textContent); resource caps (40 labels / 12 series / 120 points / 240 cells); theme-adaptive, dark-mode-aware,prefers-reduced-motion; grouped-bar rendering fixed. +1 base toolcreate_chart_fence(server-side validator mirror) + thedesign-chart-recipesskill + byte-identical conformance fixtures across the three suites. Deferred (plan §12): race replay, SPA CSV copy,render_chart_previewREST, mermaid spike, a11y scan. - 🧠 Model Foundry Phase 1 — Corpus Foundry (PR #7008, Proposal 067). +3 Pro tools —
export_trajectory_corpus(harness traces → OpenAI tool-calling rows),export_preference_pairs(DPO rows, R4,min_marginskip),export_plugin_docs_corpus(docs-hub uploads or a symlink-safe validated dir →docs_v1rows with per-document provenance) — behind the new deactivatablemodel_foundryPro module + theai_mlpreset. TheWP_MCP_AI_Corpus_Governanceengine is consent fail-closed (_wp_mcp_ai_training_consent; caps → exact → fuzzy → opt-in semantic dedup → PII scrub → deterministic content-hash holdout split → R12 provenance → guarded sharded write — holdout rows never enter ; skip-never-truncate). Consent UI ships in Phase 3 ( until then); Phases 0/2–6 deferred in the implementation plan. skill + .
v1.2.3 — October 10, 2026
CORS Same-Origin Enforcement, Standalone SPA WordPress Login & REST Auth Fixes
- 🛡 CORS same-origin enforcement (PR #6986). WordPress core
rest_send_cors_headers()(rest_pre_serve_request, priority 10) reflects anyOriginheader back withAccess-Control-Allow-Credentials: trueon every REST response — which silently overrode the Security → Network "Same Origin" setting, so a hardened site still echoed arbitrary origins. The newWP_MCP_AI_CORS_Guard(12thincludes/security/class) hooks priority 20 and, insitemode, replaces the reflected header with the configured policy: exact-allowlisted origins (site origin + the newcors_allowed_originssetting, one origin per line + thewp_mcp_ai_cors_allowed_originsfilter) are echoed with credentials; everything else gets the site's own origin with credentials off;starmode keeps core's allow-all reflection. Enforcement covers the plugin's REST routes (/mcp-ai/v1by default, extensible viawp_mcp_ai_cors_guard_route_prefixes); the MCP/OPTIONS/SSE/controller emitters share oneresolve_allow_origin(). 20 new tests; 138 related REST/security tests pass. - 🔐 Standalone SPA WordPress login (PR #6993, Proposal 064). A fourth auth mode for
examples/nvoos-pro-spa-vite— WordPress login via an Application Password (Basic auth over REST):wp/v2/users/me?context=editvalidation with a UTF-8-safe Basic header, and the real user + capabilities mounted into the runtime, so the deployed app (chat.nvoos.cloud) gets the full admin surface with real server-side capability enforcement instead of the bearer mode's client-sidemanage_options. The Basic header attaches only to requests targeting the configured site origin (never the media worker or third parties). Plugin-side gaps fixed by live verification:chat_transcripts_permissions_check()skips the nonce for Authorization-header requests (CSRF-safe by construction), andpermissions_check()/permissions_check_assistant_list()gained Application Password branches (same capability gates, admin bypass + rate limiting intact). 39 PHPUnit tests; full live matrix verified. - 🛰 OOS streaming CORS fixed (PR #6993). The OOS engine's SSE emitter (
lib/coreSseHandler) sent no CORS headers — every cross-origin browser chat stream on OOS-routed sites was blocked (pre-existing; bearer/guest modes too).WP_MCP_AI_CORS_Guard::emit_stream_cors_headers()fires from the WP adapter before ; stays framework-agnostic.
v1.2.2 — October 10, 2026
Chat Profiles Read-Only Mode, F&B Assistant Packs & Google OAuth Production Readiness
- 🛡 Chat profiles with server-enforced read-only mode (PR #6977, Proposal 015). Two built-ins —
write(non-restrictive default) andread-only(blocks tools carryingwrite/state-changing/destructive/irreversible/financial-impact/access-control-change/mass-email/data-destructioncapability flags). Profiles resolve server-side per request (user meta → site default → write fail-safe) so a client can never widen its own grant; client-sent profiles honoured only forwp_mcp_ai_change_chat_profile(→manage_options) holders; downgrades allowed for any logged-in user; guests default to read-only. The new 11th security classWP_MCP_AI_Read_Only_Profile_Gatehookswp_mcp_ai_before_tool_executionat priority 0 before the destructive-ops gate (deny → ask → allow; 403WP_MCP_AI_Chat_Profile_Blockedenvelope; audit eventschat_profile_blocked/chat_profile_escalation_attempt; advisory system-prompt hint). RESTGET/POST /mcp-ai/v1/chat-profile(deliberately not a tool — the agent can't self-elevate mid-run),wp mcp-ai chat-profile list|get|set|audit-flags, settings, and the Pro SPA v2 profile selectors. 49/49 tests on WP 6.9 + 7.1; Phase D gaps documented (queue-time async enforcement;confirm_writedeferred). - 🍽 F&B assistant packs A1–A4 (PR #6982, Proposal 062 Phase 4). Four canonical v1
nvoos-assistantbundles (addons/pro/presets/assistant-packs/fnb/— A1 Manager, A2 Kitchen & Bar Stock, A3 Financial, A4 Content) with spec-verbatim G-01…G-12 instructions; seederwp mcp-ai pro fnb seed-assistants(--dry-run/--mode/--status/--porcelain/--include-image-tools) importing through the sharedWP_MCP_AI_Assistant_Portabilityengine; READ + DRAFT tiers, ACT off;fnb_audit_logA1-only; A4 image tools off by default. Standalone 4/4 validator + 45 tests / 192 assertions. Phases 5b/6/8/9/10 still pending. - 🔐 Google OAuth production readiness (PR #6981). Drive scopes unified on the non-sensitive
drive.filescope across all four flows behind thewp_mcp_ai_google_drive_oauth_scopefilter — removes Drive from the CASA verification surface (full-Drive reads remain available via the filter); Calendar defaults to Minimal for new installs; upstream token revocation on Gmail/Drive disconnect; publishing-status warnings on the Gmail/Drive footers; production-verification plan + customer guide docs.
v1.2.1 — October 8, 2026
Food & Beverage Pro Toolkit, Docs Hub Tools & Checkout, MCP Server Identity
- 🍽 Food & Beverage Management Pro Toolkit (PR #6962, Proposal 062). 21
fnb_*Pro tools gated behindenable_fnb_toolkit(default off) — read/search/calculate/compare/variance/stock/waste/days-of-cover/weekend/price/budget/margin/duplicate-invoice/labour/utilities/report/drafts/audit — on a deterministic metric engine (M-01…M-21 + Kasavana & Smith menu-engineering quadrants + as-of price joins + incurred-vs-paid split) with a 17-table registry (column-alias drift tolerance), Drive + CSV fixture readers, report builder R-01…R-13, and a drafts-only writer. Grounded in the Surf Club Midigama spec + demo workbook; 20/20 Check-totals oracle PASS (food cost % 26.88%, beverage % 28.15%, total opex 9,988,745.79, cost per cover 4,092.07; all 59 menu items classified); 18 fixture CSVs + a 243-value oracle ship with a standalonesmoke-run.php+ the ready PHPUnit oracle. 5 schedule presets + 2 workflow presets + SA Toolkit Manager + WP-CLI. Phases 4/5b/6/8/9/10 deferred (assistant packs, schedule install, MCP exposure, demo dry-run — needs Drive folder IDs + service-account scoping + the DeepSeek demo-model confirmation —, native CPT/CCT storage + the Appendix Afnb_pr_*QMS lifecycle, channel/social/booking wiring). The newmcp-ai-wpoos-toolkit-creationskill documents the build pattern. - 📄 Docs Hub content management tools (PR #6964). Five
docs_hub_*Pro tools in the Document Generation toolkit manage the Docs Hub uploads content folder — write (YAML frontmatter + auto index rebuild), read, list, delete (dry-run by default), and rebuild (sync/async) — through a shared traversal-safe validator (no../absolute/drive-letter paths, realpath containment, the 2 MB cap mirroring the Docs Hub scanner); active-plugin integration viauploads_docs_dir()+NV_oOS_Docs_Hub_Rebuild_Job, graceful degradation when inactive;manage_optionsfor writes,edit_postsfor reads. 32 tests / 105 assertions on WP 6.9 + 7.1. - 🪪 MCP server identity discovery (PR #6956). The new base tool
mcp_server_info(+1 base) reports server name, plugin version, mode, Pro-active flag, site name/URL, MCP endpoint, and the optional bridge name — a deliberately non-sensitive payload (readcapability; thewp_mcp_ai_mcp_server_identityfilter docblock forbids secrets).list_mcp_toolsgains the shared_metaidentity block (opt-outinclude_meta=false) and theX-MCP-Bridge-Nameheader flows sanitized + 120-char capped into$context['bridge_name']— informational only, never used for authorization. 9/9 tests; the CG-AI sync is a Pending-sync tracker row.
v1.1.99 — October 7, 2026
SPA UI Stack Enhancement, Gateway OAuth 2.1 & the Docs Hub Playground
- 🧩 SPA UI stack enhancement (PR #6952, Proposal 060). toolkit-shell 0.2.0 → 0.3.0 — Radix Dialog/ConfirmDialog/DropdownMenu/Select/Tabs/Checkbox + CVA Button primitives, a TanStack TableView (sortable headers, ConfirmDialog deletes), a @dnd-kit KanbanView (persisted reorder + cross-column moves via
updateResource(group_by)), a react-hook-form + zod FormView (runtime schema from the manifest, per-fieldrole="alert"errors), sonner toasts, 14--nds-*design-token references, and an ESLint dual-React guard (bundled React 19 off@wordpress/element); schedule-anything-spa → 0.2.0 — Tailwind v3 → v4 (@theme inlineNDS aliases), 16 shadcn-style primitives, @xyflow/react v12, route-level code splitting,@wordpress/i18n, axe + jsx-a11y gate. Shipped suites 31/31 + 23/23 (vitest + jsdom + Testing Library); three bugs caught pre-ship (zod0-coercion, RHF resolver-identity churn, Kanban a11y). - 🔐 MCP Gateway OAuth 2.1 resource server (PR #6945, Phase 1). With
GATEWAY_OAUTH_ISSUERset, the gateway becomes an RFC 9728 protected resource alongside static API keys (inert otherwise): RFC 9728 metadata (GET /.well-known/oauth-protected-resource+/mcpvariant), 401WWW-Authenticatechallenges withresource_metadata+ scopes, zero-dependency JWT validation (node:crypto RS256/384/512 + ES256/384, in-memory JWKS cache with rotation refetch, strict iss/aud/exp/nbf/scope, fail-closed), scope-based site binding (site:<slug>mirrors static-key semantics;site:readadvertised), and no token passthrough (the gateway keeps exchanging for per-site Fleet Operator tokens). 58/58 tests. Phases 2–5 deferred — Auth0 provisioning (RFC 8414 + DCR + PKCE), scripted PKCE e2e + ChatGPT test,server.json+ registry submission, deployment guide. - 🎮 Docs Hub Playground demo + wp.org Live Preview (PRs #6944, #6946–#6949). The "Project Asteria" pattern (#6662) applied to Docs Hub: an idempotent local-first seed (6 Markdown pages + a published
/docs/page embedding[nvoos_docs]), a standalonedemo.json, the Live Previewblueprint.json(already live in SVN r3731775), and a generator script —blueprints/dev-only across all three exclusion lists. Self-activate fix (#6946) — the preview loader installs without activating, so both runPHP stepsactivate_plugin()with aninclude_oncefallback (reproduced + verified with ). — a 10-page wiki seed (the slug fixes the empty Live Preview) and embedding ONLY (no-title template, Additional-CSS full-bleed, demo-scoped skip-link removal). + the Playground badge (#6948).
v1.1.98 — October 6, 2026
Figma-to-Elementor Pipeline, Unified Blueprints Fixes & the Dependabot Sweep
- 🎨 Figma-to-Elementor design-to-build pipeline (PR #6934, Proposals 057–059 — docs + skill, no PHP). The 7-stage agentic pipeline (Scope → Read → Plan → Tokenize → Build → Verify → Handoff) rides the shipped MCP Apps / OAuth / A2A / per-toolkit MCP server machinery — Figma MCP on the read side, Elementor MCP on the write side, single-assistant and split topologies — with the normative stage rules (
get_design_contextfirst, tokenize-before-build, drafts only, never publish, Figma read-only), a build-manifest contract + JSON Schema (reference/build-manifest.schema.json), and the design-file contract. The new bundled skilldesign-figma-to-elementor(Zed +includes/bundled-skills/mirrors, byte-identical) and the user guide ship with it — coding-time skills 62 → 63, base bundled 75 → 76. Proposal 058 (transactional DTCG token import) is the user-facing follow-up; Proposal 057 (SPA toolkit design-file system) is parked by decision as reference; Phase 3 (end-to-end demo + Verify seed test) is deferred on live endpoints (Figma account + Elementor 4.3+ site). - 🧩 Unified Blueprints fixed (PR #6933). (1) The blueprint library was stripped from release builds — the unanchored
examples/(.gitattributes) /examples(.distignore) exclusions matched every directory namedexamples, removing all 65 toolkit blueprint JSONs + the per-toolkit import tools fromgit archive/release ZIPs; both rules are now root-anchored (/examples,/assets/examples). (2) The page listed every toolkit on disk, contradicting its own empty state and the import tools'is_available()gates — a new$toolkit_enable_keysmap mirrors each import tool's gate,get_all_blueprints_grouped()skips disabled toolkits, both AJAX handlers (install,get_details) reject disabled toolkits, and cards fall back topost_titlefor Healthcare-style JSONs. - 🔧 Gateway sync dispatch + changelog (PR #6927). The #6925 merge push produced zero workflow runs (the squashed message absorbed a CI-suppression marker), leaving
nvoos-mcp-gateway:mainon 0.1.0 —sync-mcp-gateway.ymlgains aworkflow_dispatchtrigger and a version guard (syncs skip when the incomingpackage.jsonis older than the mirror tip, so out-of-order runs can never roll the public mirror backwards);addons/mcp-gateway/CHANGELOG.mdnow tracks 0.1.0 → 0.1.1. - 🔒 Dependabot sweep (PR #6931) — 138 of 166 open npm alerts resolved. Bounded in-major bumps across 17 trees: ≥1.20.0 <2 (51), ≥1.1.21 <2 (41), ≥1.2.2 <2 (16), (8), ≥2.0.8 <3 (4), ≥1.8.2 <2 (3), (3), ^0.18.2 (3), ≥2.31.0 <3 (3), ≥4.0.1 <5 + ≥2.0.1 <3 (4), ≥6.2.1 <7 (1), ≥7.1.6 <8, ≥7.4.6 <8 — with npm-pack evidence for every cross-version move. ; the dashboard is dismissed (138 + 28 → 0 open alerts; main clears once alpha-working merges).
v1.1.97 — October 6, 2026
ECC-Inspired Harness Enhancements, OOS Parity Closure & Gateway Protocol Negotiation
- 🤖 Agent-harness enhancements (PR #6912, Proposal 056 — all inert by default). Cascade model routing on both engines — the framework-core
CascadeRouter(extendsProviderRouter, injected into the OOS engine via the WordPressCascadeClassifier/CascadeValidatoradapters) and the live legacy base+Pro path (WP_MCP_AI_Cascade_ExecutorgatingWP_MCP_AI_Language_Model_Router::create_chat_completion(), with Pro Jev classifier wiring via the proposal-045 routing signal); onewp_mcp_ai_cascade_enabledswitch + classifier/validator seam govern both paths, completing the previously dormant tier machinery with post-call validation + escalation.run_assistant_eval(+1 base) — three trajectory judges (tool selection / use / response quality) + deterministic checks + thewp_mcp_ai_eval_judgeseam. Hook profiles — minimal/standard/strict gating, meta → filter → option → constant resolution, master switch + kill list (includes/hooks/).scan_assistant_security(+1 base) — OWASP-informed config audit with masked secret evidence + posture score. Session distiller — session-end transcript → canonicalwp_mcp_ai_memory_storedevent (MemPalace/CCT/Graphify/recall hydrate; zero provider cost by default).suggest_workflows_from_history(+1 Pro) — mines the harness trace store for recurring tool chains (frequency × recency × success). ECC MIT attribution inCREDITS.md+@credittags. - 🛡 OOS parity gaps closed (PR #6913). The four Proposal 029 G2 guardrail gaps that blocked promoting the OOS engine switch: the destructive-ops gate no longer becomes an HTTP 500 on the OOS path (typed catch → canonical 428 confirmation / 429 limits envelopes via
WP_MCP_AI_REST::translate_gate_exception());apply_pre_response_render()runs the Output Guardrail + Citation Verifier at the final payload on all three surfaces (legacy non-streaming, legacy streaming's final SSE event — blocked →errorevent, and the OOS handler); the OOS bridge fireswp_mcp_ai_agentic_iteration_completewith the same(iteration, assistant_id)pair; the before-tool-execute waterfall bridge gains regression tests.bin/check-chat-parity.phpnow tracks all four surfaces (35 → 38 features, 100% parity) with aparity-checkCI job. - 🔧 Gateway protocol negotiation fixed (PR #6914). The MCP Gateway's
initializeno longer hardcodes — echoes the highest mutually supported version ( → ), reads + , and defaults to — so Zed and other strict MCP clients stop aborting with "Unsupported protocol version".
v1.1.96 — October 5, 2026
NV oOS MCP Bridge npx Package, MCP Gateway Addon & Per-Request Memory Cut
- 🔌 nvoos-mcp-bridge npx package (PR #6897, Proposals 054/055).
@nvdigitalsolutions/nvoos-mcp-bridge— a zero-dependency stdio↔HTTP relay npm package (nvoos-mcp+nvoos-mcp-sshbins) that connects Zed / Claude Desktop / Cursor / Codex to any NV oOS site with onenpxcommand; byte-identity CI drift gate against the repobin/, hermeticnode:testsuites (14/14), opt-in Docker E2E, and the public-npm publish workflow. Fleet Operator config generators —generate_zed_json()/generate_claude_json()emit copy-pastecontext_servers/mcpServersblocks through the npx package (the one-time operator result + admin page offer Zed / VS Code / Claude Desktop alongside the Hermes YAML). The public npm publish itself is deferred on the scope claim +NPM_TOKEN. - 🚪 MCP Gateway addon (PR #6897, Proposal 055 — addon 0.1.0, inventory #31).
addons/mcp-gateway/exposes the whole fleet as one public MCP endpoint — a media-worker-style Express service speaking stateless streamable HTTP (MCP 2026-07-28) with public API-key auth + rotation, per-key rate limits,<site-slug>.<tool>tool namespacing, graceful per-site degradation, and fail-closed env config (39/39 node:test suites; subtree-mirror workflow; Velocity deployment guide). The mirror repo, Velocity deployment, and directory submissions are deferred on maintainer credentials. - 🧠 Per-request memory cut + bootstrap hardening (PR #6896). Plain front-end requests no longer load ~350 tool classes — the registry defers defaults until first tool access (
wp_mcp_ai_is_plugin_runtime_context(): REST/admin/AJAX/cron/CLI load eagerly; third-party tools win slug conflicts viaensure_default_tools_loaded()), the OOS engine pre-warm (12 adapters + 12 provider clients + ~140 core tools) is gated off page views, and the model-catalog migration reads the ~250–400 KB JSON only onfilemtimechange. Pro blob options (wp_mcp_ai_pro_remote_sites, workflows, per-workflow execution logs, Ezuite SKUs, approvals, media-worker secrets, pricing buffers capped at 500, slash-command history, license key) writeautoload=falsewith the one-timewp_mcp_ai_pro_repair_option_autoload()repair. A bootstrap-integrity guard + fail-soft loader chain (wp_mcp_ai_require_if_exists()) make missing files after a partial update degrade instead of fataling — skipped files recorded in a non-autoloaded option, one-time admin notice, self-healing prune; updaterVERIFY_FILES+17 paths; new Site Healthwp_mcp_ai_file_integritytest. Nine dead FF/Yahoo registry entries removed and the double-declaration activation fatal fixed ( guard).
v1.1.95 — October 4, 2026
Toolkit Hardening Wave, Real Image Processing, Toolkit Labels & SSE Keepalives
- 🖼 Real image processing (PR #6881, issue #6877 — Media Worker 3.3.0 → 3.4.0). The four placeholder image tools now run real processing through the media worker sidecar: Wave 1 Sharp-native
POST /api/image/enhance+/api/image/upscale(factor 2/4/8, lanczos3, 8192px cap) behind the new ProWP_MCP_AI_Sharp_Image_Processingtrait drivesenhance_image_quality/upscale_image_ai(honestwp_mcp_ai_sharp_unavailablefallback); Wave 2POST /api/image/edit(colorize|style_transfer, Gemini → OpenAI → Replicate auto-resolution) behind the newWP_MCP_AI_Provider_Image_Edittrait drivescolorize_image/apply_artistic_style— success meta written only on real success. All six ported files mirrored byte-identical to CG Pro; Wave 3 (Real-ESRGAN) deferred per the plan. - 🔨 Nine-toolkit hardening wave (PRs #6875–#6893). Confirmed production fatals fixed across ten clusters under the new
mcp-ai-wpoos-toolkit-auditskill: document-generation (unguardedshell_exec(), the nonexistent Geminigenerate_content(), array-content flattening, the repaired fenced-JSON regex, the Anthropic OCR provider); image-production (prompt-optimizer provider bypass, Stability/sidecar guards); CRM (the Geminitrim()fatal, the deadwp_mcp_ai_chat_completion()AI path); ECA management (theresearch_ecapreg_match()fatal); ecommerce (unguardedexec()→WP_MCP_AI_ALLOW_SHELL_TOOLS+ Process Service); media (nestedWP_Errorreads, theyear_monthdirectory traversal closed, the unreferenced-media meta fail-safe); healthcare (HIPAA audit-trail rewire + OpenMed guards); shopify-sync (thecount(null)failure-path fatal + MCP-server descriptor wiring); orchestration (envelope + parser flattening, cross-toolis_wp_error()guards); and the loose incident tools + shared services (never-loadableexecute()signatures, the nonexistent Paper Storemaybe_commit(), Qdrant/gmail/roboflow/data-quality guards). Email-marketing verified clean (tests only). All mirrors byte-identical to CG Pro where they exist. - 🏷 Toolkit labels (PR #6874).
list_mcp_toolsderives toolkits for previously-unlabelled Pro tools via the newWP_MCP_AI_Tool_Registry::get_tool_toolkit()resolver +wp_mcp_ai_tool_toolkitfilter; the Newsletter 9.4.6+ bootstrap fatal is fixed (loader requires it on ), and moves to the canonical / flags.
v1.1.94 — October 3, 2026
ChatGPT Plugin Addon, Decision-Scope Guard & MCP Grant Enforcement
- 🤖 ChatGPT plugin addon + OAuth 2.1 resource-server (PR #6871).
addons/chatgpt-plugin/(0.1.0) packages the site's native MCP bridge for OpenAI agent surfaces —plugin.json+mcp.jsonwith a.codex-pluginoverlay, three runtime skills,bin/stamp/package/validate scripts, subtree-split sync to thenvoos-chatgpt-pluginmirror. Base ships the RFC 9728 contract:WP_MCP_AI_OAuth_Resource_Server,/.well-known/oauth-protected-resource+/.well-known/openai-apps-challenge, 401WWW-Authenticateon the MCP route, per-toolsecuritySchemesintools/list, thenvoos_get_profiletool (+1 base), and RFC-9728-resource-identifier token acceptance in the REST authenticator. - 🛡 Decision-scope guard (PR #6866, Proposal 052). Every Jev dispatch declares a domain (
advisory/content/operations/verification) and an authority ceiling (inform→suggest→act); banned domains fail closed to the deterministic fallback;actauthority requires thewp_mcp_ai_decision_act_domainsfilter. TheWPMCPAI.Decisions.ScopeDeclaredsniff (severity 5) makes undeclared dispatches a CI build failure — six existing sites declared with zero behavior change. - 🔐 Toolkit MCP grants enforced + exposed (PR #6872). The v1.1.88 deny-by-default grant gate now actually runs outside wp-admin (the grant-lookup class definition loads in every context) — non-granted assistant-scoped
tools/callreturns-32601; granted servers' tools flow onto thewp_mcp_ai_chat_effective_toolsseam (chat payload,tools/list, direct execution) and the estimator counts them viawp_mcp_ai_prompt_window_toolkit_tool_slugs. - ⚖ OOS engine chat parity (PR #6872). The OOS chat path runs the same
wp_mcp_ai_attention_tool_slugs→wp_mcp_ai_chat_effective_toolspipeline as the legacy path, and the WordPressEventDispatchertranslates domain events into the documented legacywp_mcp_ai_*argument tuples — fixing theArgumentCountError→ HTTP 500 on every OOS chat. - 🔌 FlowHub MCP OAuth login proxy (PR #6867).
get_oauth_client_options()resolves the connection proxy (via or gateway-URL match) and persists it in the OAuth flow state — discovery, DCR, token exchange, refresh, and revoke all ride the proxy.
v1.1.93 — October 3, 2026
Fleet Status Monitoring, WP-CLI Parity, FlowHub MCP Apps & October Model Catalog
- 📡 Media worker fleet status monitoring (PR #6849 — worker 3.2.0 → 3.3.0). Opt-in (
STATUS_ENABLED=1) status module: heartbeat validation,at_risk→major_outagestate machine, Redis/in-memory store, dead man's switch sweeper, synthetic HTTP/TLS checks through the SSRF guard, HMAC-signed webhook + email alerts, OpenMetrics, public status page. Plugin half:WP_MCP_AI_Media_Worker_Config, heartbeat emitter, alert poller,remote_monitorsource, 2 new base tools (get_fleet_status,get_site_uptime),GET /mcp-ai/v1/status/sites,/status fleetslash sub-command; Pro incident auto-create/resolve + Status Dashboard Fleet section. - 🖥 WP-CLI parity & hardening (PR #6852, Proposal 050).
includes/cli/extraction withmanage_optionsgating,wp mcp-ai tool call, newsecurity/modelBase commands + nine Pro command trees (crm,incident,maintenance,schedule,workflow,vault,remote-site,communication,media-studio),--fields/--format=count, canonicalmcp-ainamespaces with legacy aliases,docs/operations/wp-cli.md, WP-CLI 2.9+. - 🔌 FlowHub MCP Apps (PRs #6854, #6861). FlowHub MCP connections join the assistant MCP Apps "Add from Remote Sites" dropdown with the OAuth login flow and chat-time
connection_refresolution; the connection's proxy now carries into every MCP Apps gateway request (proxy_url/proxy_authviahttp_api_curl, OAuth call sites included) — no direct egress needed on geo-blocked deployments. - 💹 Financial Planner OpenStock parity (PR #6857, Proposal 051, B1–B3).
WP_MCP_AI_Finnhub_Provider(BYO-key, rotation on 401/403/429, SWR cache,cached/realtimemodes) at the yfinance filter seam; +3 Pro tools (watchlist_sync,market_overview_widget, the previously orphanedimport_financial_planning_blueprintregistered);price_alertsdata-mode parity;openstock-market-analystblueprint; masked key inputs. - 🧠 October 2026 model catalog (PR #6863). Catalog v2026.10.03 — 238 models, : /, //, , , Cloudflare Workers AI refresh, Z.AI family; codex-line/Kimi-k2 removals with migration entries; deprecations with sunset dates; defaults refreshed; Cloudflare pricing fixes.
v1.1.92 — October 2, 2026
Media Studio AI Fashion Production, Inline Vision Data URLs & Provider-Content Fixes
- 👗 Media Studio fashion production suite (PRs #6839, #6844 — addon 0.1.0 → 0.6.0). The
fashion-studioAI mode lands in Media Studio:NV_oOS_Media_Studio_AI_Servicedrives eight industry transforms (on-model, model-swap, face-swap, background, recolor, packshot, detail-repair, try-on) through Gemini viaedit_gemini_image; REST/ai/*routes carry the D-1 consent/acknowledgment gate + D-3 cost tripwires ($0.25 per-image / $10 per-job review, $100 hard cap, unknown pricing → review); a lazy-loaded SPA mode (media-library picker, presets, review-confirm dialogs, compliance chips); forced disclosure watermark on face outputs, metadata disclosure floor. Phase 2 (Pro) —mcp_ai_fashion_modelidentity CPT + consent gating,mcp_ai_fashion_jobbatch/review queue (approve/reject/reroll, WooCommerce + media collection export), thefashion_studioPro module, fashion presets. Phase 3 (base) — marketplace output pipeline (amazon/woocommerce/social/web profiles, GD upscaling ≤2×, format conversion, alt text, white-bg validation). Phase 4 (base) — IPTC 2025.1 XMP provenance into JPEG/PNG/WebP + best-effort C2PA. Phase 5 — sidecar-backed fashionvideotransform + 8 new Pro tools (fashion_onmodel_generate,fashion_model_swap,fashion_background_generate,fashion_recolor,fashion_packshot,fashion_virtual_tryon,fashion_batch_job,fashion_identity_manage— registered in the main$pro_toolsmap, self-gate viais_available()) + the Workflow Builder's 10thfashionpreset category. - 🖼 Inline vision data URLs + payload optimization (PR #6846).
submit_document_promptand every OpenAI/DeepSeek vision path no longer hand remote image URLs to provider servers — that fetch failed on hotlink-protected, CDN-fronted, staged, or freshly uploaded media (Failed to download image from …). The newWP_MCP_AI_Image_Data_Urlhelper converts image segments to base64 data URLs with the WordPress server as fetcher (local attachments read off disk, remote URLs downloaded server-side); both OpenAI payload paths + DeepSeek prefer inline bytes with URL fallback; logs truncate data URLs. Oversized JPEG/PNG downscaled to a 2048px vision-tile cap, opaque PNGs re-encoded JPEG q82 (alpha/GIF/WebP preserved), header-only dimension probe, originals never modified, optimized bytes only when smaller. New Chat Client → Features → Inline Image Optimization toggle (default on, three settings layers) + filters.
📋 Previous Releases
| Version | Date | Highlights |
|---|---|---|
| v1.1.91 | Oct 2026 | FlowHub Connection MCP mode (#6836); MCP App OAuth discovery chain (RFC 8414 → RFC 9728 → 401 probe → OIDC → REST, #6835); OAuth redirect allowlists for LinkedIn/QuickBooks/Mailjet/Yahoo (#6831/#6832); JSON envelope DB-error protection (WP_MCP_AI_Db_Output_Guard, #6827); security-events display + orchestration double-render fixes (#6829/#6830); RF-DETR presets + coverage manifest (#6828); nodemailer/fast-uri advisories (#6833/#6834); RF-DETR CG Pro port (#6825) |
| v1.1.90 | Sep 2026 | RF-DETR vision cognition (Proposal 049, 2 Pro tools + the roboflow provider inside analyze_image_objects); Upwork MCP-mode MCP Apps references; memory identity resolution + cross-agent access closure (manage_options gate — the IDOR closed); strict MCP assistant-scope toggle; letterhead personalization; js-yaml/webpack-dev-middleware advisories |
| v1.1.89 | Sep 2026 | Google Classroom ECA integration (Proposal 046 — shared includes/google/ Classroom foundation, 12 flag-gated Pro tools, google-classroom/webhook route); Design System rename 0.1.0 → 0.3.0 + token-driven email templates (Proposals 047/048, 8 addon-provided nds_* tools); Upwork MCP connection mode; vision/remote/EZuite reliability fixes + per-provider migration-map rewrite; MCP legacy-dialect handshake cache; CodeQL closure (0 open alerts) + ip-address/undici/multer advisories |
| v1.1.88 | Sep 2026 | Decision-model orchestration Phase A (TypeSafe Jev → router, Proposal 045); MCP Apps OAuth + credential hardening (Upwork loopback fallback, AES-256 at-rest encryption of inline MCP App/Remote Sites secrets); toolkit MCP servers deny-by-default on assistant grants; strict-gateway 400/SSE transport fallbacks; Upwork job-link canonical round-trip; PayHere/Flowhub guarded requires; SaaS Controller 0.1.0 → 0.3.0 (worker secrets + D1 schema in Plan/Apply) + gateway express bump |
| v1.1.87 | Sep 2026 | mcp-wordpress parity suite (30 native base tools); non-LLM image identification ladder (Proposal 043, 5 base + 2 Pro tools); outbound appointment booking toolkit (Proposal 044, 3 Pro tools); mcp-wordpress gateway addon (addon count 27 → 28); per-session budget warnings + restriction-notice fix; Upwork search + in-place workflow editing |
| v1.1.86 | Sep 2026 | MCP Apps Remote Sites connection type (encrypted central credentials, JSON-RPC Test/Discover, reference mode); Higgsfield video/image provider quartet (+4 base tools, Proposal 042); filters (//); action-items delivery template + smart excerpts; tool-cost labels in final responses; environment-status warning fix; new skill |
🚀 Features
Note: Some features require third-party plugins (WooCommerce, JetEngine, Elementor, etc.). See 🔌 What You Lose Without Third-Party Plugins for details.
Assistant & conversation tools
- 🧠 Create AI Assistants via a custom post type (
mcp_ai_assistant) - 👔 Professional & Team Templates - Deploy assistants from ~311 pre-built profession templates spanning 12 industry categories, or create entire teams of specialists with one click. Includes backend testing for professions, teams, and assistants before public deployment.
- 🚀 Getting Started Wizard - Guided 4-step onboarding (
/wp-admin/admin.php?page=wp-mcp-ai-getting-started) that walks new users through provider setup and use-case selection. Selecting a preset (Content Creator, Customer Support, E-commerce, SEO & Research, Developer Copilot, Media & Creative Studio, Site Administrator, or General Purpose) seeds a fully-configured assistant with tools, system prompt, and tuned temperature — ready to use immediately.【F:includes/admin/class-wp-mcp-ai-onboarding-wizard.php†L1-L53】【F:assets/js/onboarding-wizard.js†L1-L303】 - 🔄 Automatic synchronization to JetEngine Custom Content Types when available (CPT → CCT)
- 💬 Chat interface via
[mcp_ai_chat assistant="ID"] - 🧰 Per-assistant defaults for model, temperature, system prompt, and knowledge attachments with permission-aware download URLs
- ⚡ Build reusable prompt shortcuts with optional tool targeting and inline descriptions so operators can trigger common tasks with one click.【F:includes/assistants/class-wp-mcp-ai-assistant-cpt.php†L893-L1048】【F:includes/class-wp-mcp-ai-shortcode.php†L430-L693】【F:assets/js/chat.js†L600-L666】
- 🧊 Elementor widgets for embedding chat surfaces, onboarding content, and MCP dashboards inside Elementor
Language routing & knowledge management
- 🔁 Route conversations through OpenAI or Gemini using a provider-aware language model router
- 🎯 Enhanced Gemini API integration: list models dynamically, count tokens for budget management, create embeddings for RAG/semantic search, and streaming support for real-time responses【F:docs/reference/api/gemini/gemini-api-enhancements.md†L1-L100】
- 🧠 Assistant knowledge base management with Media Library files and optional vector store IDs
- 📚 OKF (Open Knowledge Format v0.1) engine with 6 MCP tools for curated, deterministic knowledge with cross-link navigation — complementary to vector/RAG stores
- 🔎 Perform lightweight web searches (DuckDuckGo or Brave) without leaving the assistant conversation
- 🌐 Crawl4AI job runner tool for large-scale content gathering workflows
Media generation & transcription
- 🔊 Generate speech audio via OpenAI's Text-to-Speech API and save the result to the Media Library
- 🎵 Generate instrumental music using Google Gemini Lyria with controls for genre, mood, tempo, and instrumentation
- 🎨 Generate on-brand imagery with OpenAI's Images API, honouring the configured response format (including GPT-Image-1's
urlresponses) and storing the files as WordPress attachments - 🖼️ Generate images with Cloudflare Workers AI using Stable Diffusion, Flux-2 Dev, Leonardo AI (Lucid Origin, Phoenix 1.0), and other text-to-image models with configurable dimensions and generation parameters
- 🖼️ Vectorize raster images (PNG, JPEG, WebP, GIF) to SVG format using @neplex/vectorizer with configurable quality settings - perfect for logos and icons
- 🎨 Comprehensive graphic editing with Graphic Editor Plus combining local operations (logo overlay, smart resize) and AI-powered features (style transfer, background removal, enhancement)
- 🏗️ Pro: Generate professional architectural drawings (floor plans, elevations, sections) with building codes, dimensions, and material specifications - designed for construction professionals
- 🎧 Transcribe or translate uploaded audio with OpenAI's speech-to-text endpoints
Commerce & finance workflows
- 🛍 WooCommerce-aware tools (fetch orders or products, requires WooCommerce)
- 📊 Finance-ready QuickBooks Online reporting tool for surfacing Profit and Loss, Balance Sheet, and other statements inside assistant conversations【F:includes/tools/class-wp-mcp-ai-tool-get-quickbooks-report.php†L15-L214】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L906-L955】
- 🖥️ Pro: QuickBooks Desktop sync via QODBC relay API — connect to QuickBooks Desktop through a Windows relay server for data synchronization
- 🛒 Pro: Shopify integration with auto-resolved connections —
connection_idauto-resolved from assistant context, covering products, orders, customers, inventory, and catalog tools - 🚗 Pro: Vehicle estimation tools — VIN decode (NHTSA vPIC), image-to-repair-estimate pipeline, and car wash package pricing engine (always available)
- 📸 Pro: Listing image download tools — bulk-download Google Maps, Facebook, and Instagram business listing images into the Media Library or ZIP
Slash Commands & Workflow Automation ⭐ NEW
- ⚡ 8 Core Commands:
/help,/next-task,/ship,/clean-content,/optimize-perf,/sync-docs,/workflow- Command-line style interface for content management - 🔄 Workflow Orchestrator: Multi-step workflow execution with state management, conditional logic, and human-in-the-loop checkpoints
- 🛠️ 21 Pro Toolkit Commands: Specialized commands for E-commerce (6), Social Media (6), and Video Production (6) toolkits
- 🎯 7 Automated Workflows: Pre-built workflow templates for abandoned cart recovery, social media campaigns, video marketing, inventory management, and more
- 🔐 Security: Capability-based authorization, rate limiting, comprehensive audit logging
- 💡 Integration: JavaScript autocomplete, REST API endpoint, WP-CLI support
- Documentation → | Pro Commands →
Chat Channels & Messaging Integration ⭐ NEW
- 💬 Chat Channels Toolkit (47 Tools): Integrate with 11 platforms - Telegram, WhatsApp, Slack, Discord, Microsoft Teams, Facebook Messenger, Apple Messages for Business, Google Chat/Spaces, Twitter/X, Office 365 (Outlook + OneDrive), iCloud Drive
- 📧 Office 365 Integration ⭐ NEW: Send and retrieve Outlook mail, list/download/upload OneDrive files via Microsoft Graph API (5 tools)
- ☁️ iCloud Drive Integration ⭐ NEW: List, download, and upload iCloud Drive files via a configurable gateway service (3 tools)
- 🌐 Unified Broadcasting: Send messages across multiple platforms simultaneously with
unified_channel_broadcasttool - 🏠 WebChat Rooms: Custom post type for real-time collaborative chat rooms with AI assistant assignment
- 📝 Message Persistence: JetEngine CCT integration for permanent message history
- 🔊 WebRTC Support: Self-hosted WebRTC signaling via WordPress REST API for voice/video
- 🤖 AI-Powered Rooms: Assign dedicated assistants to chat rooms for automated support
- Chat Channels Guide → | WebChat Setup →
Communications & outreach
- ✉️ Mailjet-powered outbound email automation with granular capability enforcement and sender defaults configurable in the MCP settings.【F:includes/tools/class-wp-mcp-ai-tool-send-mailjet-email.php†L19-L405】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L1008-L1054】
- 📅 Google Workspace automations for creating calendar events and searching connected Gmail inboxes directly from assistant workflows.【F:includes/tools/class-wp-mcp-ai-tool-create-google-calendar-event.php†L1-L200】【F:includes/tools/class-wp-mcp-ai-tool-search-gmail.php†L1-L200】
- 🧾 JetFormBuilder orchestration for listing forms, reviewing submissions, and proxying REST calls on behalf of assistants (requires JetFormBuilder)
- 📚 JetEngine REST route reference tool for surfacing endpoint metadata inside AI workflows
- 🧱 Ready for extension with ChatKit integration
Integrations, security & controls
- 🔧 Tool Registry for registering PHP functions callable by the AI
- ⚙️ JetEngine integration for dynamic content queries (requires JetEngine)
- 🔌 JetEngine 3.8 MCP Server Bridge ⭐ NEW - JSON-RPC 2.0 client bridges NV oOS into JetEngine's native MCP Server with 7 new Pro tools for CPT/taxonomy/meta field creation, relations management, site context grounding, and prompt template access. MCP-first dispatch with REST v2 fallback.
- 🤝 Agent-to-Agent (A2A) Protocol ⭐ NEW - Full A2A protocol making NV oOS assistants discoverable and interoperable with any A2A-compliant agent.
/.well-known/agent.jsondiscovery, JSON-RPC 2.0 server with task state machine, A2A client for remote agent delegation, push notification webhooks. - 📊 Agent Command Center ⭐ NEW - Unified agent management dashboard with 7 tabs: Overview (KPI cards, live status), Activity Log, Active Tasks, Approvals (human-in-the-loop), Analytics (Chart.js with real per-agent metrics), Uptime & Health, and Strategy (efficiency scoring with recommendations).
- 💬 Floating Chat Bubble ⭐ NEW - Configurable floating chat bubble widget for Elementor and Gutenberg. 4 position variants, 3 sizes, bounce/pulse animations, dark mode, WCAG focus states, sessionStorage persistence.
- 🧷 Granular control over allowed attachment MIME types for chat uploads
- 🔐 Secure REST API endpoints
- 🔑 Root Security Key - Optional wp-config.php constant that can be enabled during emergency shutdown to require authentication before re-initializing the plugin. Provides an additional layer of protection against unauthorized reactivation after security incidents.【F:docs/features/security/root-security-key.md†L1-L511】【F:includes/class-wp-mcp-ai-root-security-key.php†L1-L360】
- 🛰 Assistant directory endpoint that advertises MCP tool/resource capabilities and negotiates Server-Sent Events handshakes for clients such as LM Studio or Claude Desktop.【F:includes/class-wp-mcp-ai-rest.php†L520-L666】【F:includes/class-wp-mcp-ai-rest.php†L1690-L1772】
- 📝 Full JSON-RPC 2.0 MCP endpoint (
/mcp) for standards-compliant remote client communication - 🔑 Configurable API credentials and defaults for OpenAI, Gemini, and Anthropic (with subscription tier support for Team/Enterprise plans and custom base URLs)
- 🤖 ChatGPT’s connector beta currently requires an Auth0 tenant; the plugin’s assistant credentials are compatible with LM Studio, Claude, and other MCP clients that support bearer headers directly.【F:docs/reference/api/mcp-server-authentication.md†L22-L46】
- 🌐 Mesh networking for distributed compute pooling across multiple WordPress sites. Server-to-server architecture enables anonymous and authenticated users to benefit from shared AI resources, budget pooling, and workload distribution across 100+ trusted peer sites. Backend assistants coordinate mesh operations via secure inter-site keys while maintaining user attribution and audit trails for compliance.【F:docs/features/federation/mesh-compute-pooling.md†L1-L615】【F:includes/tools/class-wp-mcp-ai-tool-query-remote-site.php†L1-L237】
Performance & reliability
- ⚡ Client-side message bundling (800ms window) to reduce API calls and server load【F:docs/user-guides/chat/message-bundling-feature.md†L1-L80】
- 🎯 Intelligent token overflow handling with automatic model switching (gpt-4.1-mini → Gemini 2.0 Flash)【F:docs/features/tools/presets/high-token-tool-handling.md†L1-L80】
- 📡 Server-Sent Events (SSE) support for real-time streaming responses and job notifications【F:docs/features/streaming/ENABLE-SSE-STREAMING.md†L1-L100】
- 🌊 Real-time job status updates via SSE streaming and webhook notifications for async operations【F:docs/features/async-jobs/job-notification-system.md†L1-L100】
- 🔧 Symfony Process Component - Modern process execution framework replacing direct
exec()calls in Pro addon tools for enhanced security, timeout management, and error handling【F:includes/services/class-wp-mcp-ai-process-service.php†L1-L220】【F:docs/history/2025/implementations/symfony-phases/SYMFONY_PHASE2B_PROCESS_INTEGRATION.md†L1-L100】 - 🔄 Server-side WP-Cron polling for long-running tasks (Crawl4AI, background jobs)
- 💾 Chat history persistence with localStorage (24h) and optional JetEngine CCT storage【F:docs/user-guides/chat/chat-history-persistence.md†L1-L50】
- ⚙️ Optimized settings page with external CSS stylesheet (240 lines added to admin-settings.css) and request-level caching for improved admin performance【F:assets/css/admin-settings.css†L1-L984】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L27-L32】
Settings Management ⭐ NEW
- 🔧 Robust Settings System - 7-step save process with automatic backups, validation, and cache management ensures settings persist correctly across all tabs and subtabs【F:includes/admin/class-wp-mcp-ai-settings-dashboard.php†L262-L410】
- 🔍 Health Check - Run 6 diagnostic checks to verify settings integrity, provider configuration, and system status with GOOD/WARNING/CRITICAL status indicators【F:includes/admin/sections/class-wp-mcp-ai-section-advanced.php†L1500-L1650】
- 💾 Export Settings - Download all plugin settings as timestamped JSON files for backup or migration to other sites【F:docs/admin-guides/settings-management.md†L40-L80】
- 📤 Import Settings - Upload and validate settings from previously exported backups with automatic pre-import backup and 5-step validation【F:docs/admin-guides/settings-management.md†L85-L135】
- 🗑️ Clear Cache - One-click clearing of static cache, object cache, and transients when settings changes don't take effect【F:docs/admin-guides/settings-management.md†L140-L165】
- ↩️ Reset to Defaults - Safely reset all settings to default values with automatic backup before reset【F:docs/admin-guides/settings-management.md†L170-L200】
- 🔒 Security - File size validation (max 5MB), MIME type checking, JSON validation, and comprehensive input sanitization【F:includes/admin/class-wp-mcp-ai-settings-dashboard.php†L970-L1030】
- 📊 Automatic Backups - Every save operation creates a timestamped backup (keeps last 5) for emergency recovery【F:includes/admin/class-wp-mcp-ai-settings-dashboard.php†L285-L295】
- 🛡️ Data Protection - 3-layer protection (section filtering, merge strategy, sensitive key filtering) prevents accidental data loss when saving from tabs/subtabs【F:docs/admin-guides/settings-management.md†L230-L280】
- 📖 Pro Toolkits - Enable and configure 8 specialized Pro toolkits (650+ tools) including Project Management, Document Generation, Health & Wellness, CRE Debt & Securitization, and more【F:docs/admin-guides/pro-settings-toolkits.md†L1-L650】
➡️ Complete Documentation: Settings Management Guide | Quick Reference | Visual UI Guide | Pro Toolkits Guide
🧠 Memory & Tool Stack Overview
Model defaults
Global settings capture the default provider, model, and timeout used when assistants are created, ensuring every conversation inherits stable generation behaviour until explicitly overridden. These defaults ship with sensible values for OpenAI and Gemini out of the box and can be tailored from the NV oOS settings screen.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L36-L77】
Base knowledge
Each assistant can preload Media Library files and optionally link to an external vector store, giving the model persistent project context before a chat begins. Editors manage these knowledge sources from the assistant post type via the “Base Knowledge” meta box, which supports multiple attachments and vector store identifiers.【F:includes/assistants/class-wp-mcp-ai-assistant-cpt.php†L892-L1002】
Available tools
The tool registry boots with a curated catalogue of content, commerce, automation, and research utilities, then exposes hooks so developers can register their own providers. During initialisation the registry loads each bundled tool class—ranging from JetEngine accessors to Crawl4AI jobs and Mailjet automations—and makes them callable within conversations.【F:includes/class-wp-mcp-ai-tool-registry.php†L74-L220】
Chat-client Memory Drawer
The chat front-end exposes a persistent Memory Drawer (assets/js/chat-memory-drawer.js) with three tabs:
- Memories — browse, pin, and delete stored context items; 🧠 badge auto-appears on any assistant message that used a memory tool.
- Scope — set the active wing/room scope for subsequent memory operations in the current session.
- Audit — lazy-loaded audit trail from
WP_MCP_AI_REST_Chat_Memory_Controller::audit().
The drawer is wired to the REST proxy at /mcp-ai/v1/chat-memory/ and receives real-time updates via the memory_event SSE frame emitted by the agentic loop. Pagehide auto-capture stores the session state before tab close. Two gates control access: site-wide filter wp_mcp_ai_chat_memory_enabled and per-user meta wp_mcp_ai_chat_memory_enabled. Full reference: docs/features/memory/chat-client-integration.md.
Retroactive Transcript Mining
WP_MCP_AI_Transcript_Mining_Job retrospectively extracts memories from past chat transcripts. Enqueue a job via POST /mcp-ai/v1/transcript-mining/jobs (admin-only), poll progress with GET /jobs/{id}, or cancel with POST /jobs/{id}/cancel. Full reference: docs/features/memory/transcript-mining.md.
LLM Harnessing Subsystem
Seven opt-in per-request layers (includes/harness/) improve response quality without changing existing tool behaviour. Activated per-assistant via the LLM Harness metabox. Layers: A Prompt/Cue → B Reasoning Trace → C Tool Routing → D Retrieval → E Self-Refine → F Memory Scoping + PII Filter → G Eval Scheduler. Pro Layer H exports fine-tune curricula as OpenAI JSONL. Full reference: docs/features/llm-harness.md.
Workflow families & tool combos
The core plugin ships with a centrally registered tool catalogue that lets assistants mix and match capabilities into cohesive workflows without additional coding. Teams can chain authoring, media, research, commerce, marketing, and operational tools to deliver end-to-end outcomes inside a single conversation.
- Content & knowledge production – Combine
submit_document_prompt,search_content, andsearch_attachmentsto gather source material, then follow up withsave_post,create_wpcode_snippet, orget_rankmath_seofor structured drafting and optimisation. - Media generation & transcription – Pair
generate_openai_image,generate_gemini_image,vectorize_image, orgraphic_editor_pluswithgenerate_openai_speechandtranscribe_openai_audioto build multimedia assets that flow into editorial or marketing outputs. Usevectorize_imageto convert logos to scalable vectors, andgraphic_editor_plusfor comprehensive image editing with both local and AI-powered operations. - Research & situational awareness – Chain discovery helpers like
web_search,run_crawl4ai_job,reliefweb_reports,get_gdacs_events, andget_nhc_active_stormsto assemble briefing packs before drafting follow-up actions. - Commerce & finance operations – Use WooCommerce and finance tools such as
create_woo_product,get_woo_products,get_woo_recent_orders,crawl4ai_price_lookup,get_import_duty, andquickbooks_reportto coordinate merchandising, pricing, and bookkeeping reviews. - Marketing & analytics insights – Combine measurement tools including
google_analytics_report,get_google_business_insights,get_facebook_instagram_insights,get_linkedin_insights, andget_tiktok_insightsto guide campaigns and reporting. - Publishing & outreach automations – Trigger distribution via
post_facebook_instagram,post_google_business_update,post_linkedin_update,post_tiktok_video,send_group_email,send_mailjet_email,send_telegram_message,send_whatsapp_message, andschedule_notify_smsonce plans are ready. - Integrations & scheduling – Connect external systems with
create_google_calendar_event,search_gmail,list_jetengine_rest_routes,invoke_jetengine_route, and as part of larger automations.
🛠 Built-in tools & automations
The assistant registry ships with a comprehensive catalogue of editorial, marketing, commerce, and operational helpers. The tables below outline every bundled tool and the slug assistants call when orchestrating workflows.
Content & knowledge workflows
| Tool | Slug | Summary |
|---|---|---|
| Submit Document Prompt | submit_document_prompt | Uploads WordPress attachments or OpenAI file IDs alongside an instruction so multimodal prompts reach the Responses API with the required file context.【F:includes/tools/class-wp-mcp-ai-tool-submit-document-prompt.php†L20-L214】 |
| Search Content | search_content | Queries public post types with optional taxonomy and meta filters to surface structured post metadata for the assistant.【F:includes/tools/class-wp-mcp-ai-tool-search-content.php†L12-L280】 |
| Search Attachments | search_attachments | Scans the Media Library with keyword or MIME filters while honouring attachment capability checks and signed download URLs.【F:includes/tools/class-wp-mcp-ai-tool-search-attachments.php†L15-L207】 |
| Get Recent Posts | get_recent_posts | Returns the latest entries for a given post type with titles, permalinks, excerpts, and timestamps for quick editorial summaries.【F:includes/tools/class-wp-mcp-ai-tool-get-recent-posts.php†L12-L104】 |
| Get Elementor Templates | get_elementor_templates | Lists Elementor library templates with status, type, and edit links when Elementor is available and the caller has access.【F:includes/tools/class-wp-mcp-ai-tool-get-elementor-templates.php†L12-L239】 |
| Get JetEngine Items | get_jetengine_items | Retrieves JetEngine-managed content with capability-aware access checks for each registered custom post type.【F:includes/tools/class-wp-mcp-ai-tool-get-jetengine-items.php†L12-L118】 |
| Get JetFormBuilder Forms | get_jetformbuilder_forms | Proxies JetFormBuilder REST controllers to return paginated form metadata with automatic REST/HTTP fallbacks.【F:includes/tools/class-wp-mcp-ai-tool-get-jetformbuilder-forms.php†L15-L155】 |
| Get JetFormBuilder Submissions | get_jetformbuilder_submissions | Lists recent JetFormBuilder entries with normalised field snapshots and capability enforcement.【F:includes/tools/class-wp-mcp-ai-tool-get-jetformbuilder-submissions.php†L15-L154】 |
| Save Post | save_post | Drafts or updates posts and custom post types with sanitised Gutenberg content, slug/title overrides, and edit links.【F:includes/tools/class-wp-mcp-ai-tool-save-post.php†L15-L268】 |
| Create WPCode Snippet 🌟 |
Media generation & transcription
| Tool | Slug | Summary |
|---|---|---|
| Generate OpenAI Image | generate_openai_image | Calls the OpenAI Images API with configurable defaults, saving the rendered asset to the Media Library with optional overrides.【F:includes/tools/class-wp-mcp-ai-tool-generate-openai-image.php†L17-L218】 |
| Generate Gemini Image | generate_gemini_image | Uses Gemini’s multimodal image endpoint to render creative, aspect-ratio-aware visuals that are persisted as WordPress attachments.【F:includes/tools/class-wp-mcp-ai-tool-generate-gemini-image.php†L17-L200】 |
| Generate Cloudflare AI Image | cloudflareai_text_to_image | Creates images using Cloudflare Workers AI text-to-image models including Stable Diffusion XL, Flux-2 Dev, Leonardo AI (Lucid Origin, Phoenix 1.0), and Dreamshaper with configurable dimensions, steps, and guidance parameters. |
| Vectorize Image | vectorize_image | Converts raster images (PNG, JPEG, WebP, GIF) to SVG vector format with configurable quality settings using @neplex/vectorizer. Perfect for logos, icons, and graphics. Requires Node.js 14+.【F:includes/tools/class-wp-mcp-ai-tool-vectorize-image.php†L1-L430】 |
| Graphic Editor Plus | graphic_editor_plus | Comprehensive image editing with local operations (logo overlay, resize) and AI-powered features (style transfer, background removal, enhancement). Combines speed with intelligent transformations.【F:includes/tools/class-wp-mcp-ai-tool-graphic-editor-plus.php†L1-L784】 |
| Generate Architectural Drawing 🌟 | generate_architectural_drawing | [PRO] Creates professional architectural drawings (floor plans, elevations, sections, details) for construction projects. Supports 10 drawing types, 6 presentation styles (technical, sketched, rendered), dimensional specifications, building codes (IBC, IRC, NBC, Eurocode), and material lists. Outputs PNG or SVG with automatic vectorization. Perfect for architects, engineers, and construction professionals.【F:addons/pro/includes/tools/class-wp-mcp-ai-tool-generate-architectural-drawing.php†L1-L1136】 |
| Generate OpenAI Speech | generate_openai_speech | Converts text to audio via OpenAI’s text-to-speech models, honouring default voice/format selections and storing results in the Media Library.【F:includes/tools/class-wp-mcp-ai-tool-generate-openai-speech.php†L17-L199】 |
| Generate Music | generate_music | Creates instrumental music from text descriptions using Google Gemini Lyria model with controls for genre, mood, duration, and tempo. |
Research & situational awareness
| Tool | Slug | Summary |
|---|---|---|
| Web Search | web_search | Performs lightweight lookups against DuckDuckGo or Brave, normalising related topics and enforcing per-user result caps.【F:includes/tools/class-wp-mcp-ai-tool-web-search.php†L12-L320】 |
| Run Crawl4AI Job | run_crawl4ai_job | Executes Crawl4AI harvests locally or remotely, collecting Markdown, HTML, and error payloads for long-form content ingestion workflows.【F:includes/tools/class-wp-mcp-ai-tool-run-crawl4ai-job.php†L32-L745】 |
| ReliefWeb Reports | reliefweb_reports | Queries ReliefWeb’s humanitarian dataset by country or disaster type and returns structured report metadata for situational updates.【F:includes/tools/class-wp-mcp-ai-tool-reliefweb-reports.php†L15-L234】 |
| Get GDACS Events | get_gdacs_events | Fetches Global Disaster Alert and Coordination System events with optional date filters and capability checks for emergency planning.【F:includes/tools/class-wp-mcp-ai-tool-get-gdacs-events.php†L12-L200】 |
| Get NHC Active Storms | get_nhc_active_storms | Retrieves the National Hurricane Center’s active storm feed, sanitising advisory data for assistant consumption.【F:includes/tools/class-wp-mcp-ai-tool-get-nhc-active-storms.php†L15-L146】 |
| Get Open-Meteo Forecast | get_open_meteo_forecast | Pulls hourly weather data from Open-Meteo with coordinate, timezone, and variable controls for itinerary-aware responses.【F:includes/tools/class-wp-mcp-ai-tool-get-open-meteo-forecast.php†L15-L309】 |
| Vision Product Search | vision_product_search | Searches for similar products using Google Cloud Vision API Product Search feature. Note: Requires proper Google Cloud authentication credentials to succeed.【F:includes/tools/class-wp-mcp-ai-tool-vision-product-search.php†L1-L200】 |
| Vision Object Localization | vision_object_localization | Detects and localizes multiple objects in images using Google Cloud Vision API. Note: Requires proper Google Cloud authentication credentials to succeed.【F:includes/tools/class-wp-mcp-ai-tool-vision-object-localization.php†L1-L200】 |
Commerce & finance operations
| Tool | Slug | Summary |
|---|---|---|
| Create WooCommerce Product Draft | create_woo_product | Builds draft WooCommerce products with merchandising copy, pricing, images, and brand metadata when WooCommerce is active.【F:includes/tools/class-wp-mcp-ai-tool-create-woo-product.php†L15-L258】 |
| Get WooCommerce Products | get_woo_products | Surfaces catalogue listings with pricing, stock status, and optional SKU/status filters for merchandiser reviews.【F:includes/tools/class-wp-mcp-ai-tool-get-woo-products.php†L12-L140】 |
| Get Woo Recent Orders | get_woo_recent_orders | Summarises recent WooCommerce orders with totals, billing details, and ISO timestamps for fulfilment teams.【F:includes/tools/class-wp-mcp-ai-tool-get-woo-recent-orders.php†L12-L117】 |
| Update WooCommerce Product Price 🌟 | update_woo_product_price | Updates regular/sale prices across all product types (simple, variable via variations, grouped, external) with sale-date scheduling, validation, and automatic variable-parent sync. Pro addon tool.【F:addons/pro/includes/tools/ecommerce/class-wp-mcp-ai-tool-update-woo-product-price.php†L1-L50】 |
| Update WooCommerce Product Quantity 🌟 | update_woo_product_qty | Updates stock quantity across all stock-managed types with set/increase/decrease operations, canonical low-stock notifications (suppressible per call via notify: false), and stock-status sync. Pro addon tool.【F:addons/pro/includes/tools/ecommerce/class-wp-mcp-ai-tool-update-woo-product-qty.php†L1-L50】 |
| Wholesale Club Price Lookup | crawl4ai_price_lookup | Uses Crawl4AI’s web search endpoint to compare BJ’s, Sam’s Club, and Costco pricing for a given product query.【F:includes/tools/class-wp-mcp-ai-tool-crawl4ai-price-lookup.php†L17-L189】 |
| Lookup Import Duty 🌟 | get_import_duty | Queries the ITA Tariff Rates API for HS codes or descriptions to surface import duty rates for supported countries. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-import-duty.php†L15-L152】 |
| QuickBooks Online Report 🌟 | quickbooks_report | Requests Profit & Loss, Balance Sheet, or custom QuickBooks Online reports with optional date ranges and accounting methods. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-quickbooks-report.php†L15-L214】 |
Marketing & analytics insights
| Tool | Slug | Summary |
|---|---|---|
| Google Analytics Report 🌟 | google_analytics_report | Runs GA4 Analytics Data API queries with metrics, dimensions, date ranges, and aggregation controls to monitor site performance. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-google-analytics-report.php†L15-L158】 |
| Google Business Insights | get_google_business_insights | Fetches Google Business Profile metrics for a location using OAuth tokens, time ranges, and timezone hints. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-google-business-insights.php†L15-L149】 |
| Meta Social Insights | get_facebook_instagram_insights | Pulls Facebook Page or Instagram business metrics via the Graph API with selectable periods and metric sets. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-facebook-instagram-insights.php†L15-L146】 |
| LinkedIn Insights | get_linkedin_insights | Queries LinkedIn organizational share statistics with optional timeframe and granularity filters. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-linkedin-insights.php†L15-L138】 |
| TikTok Insights | get_tiktok_insights | Calls the TikTok Open API to return account performance metrics across configurable windows and granularities. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-get-tiktok-insights.php†L15-L136】 |
| Get Cross-Platform Analytics 🌟 | get_cross_platform_analytics | [NEW Jan 2026] Unified social media metrics dashboard aggregating data from Facebook, Instagram, Twitter, LinkedIn, and YouTube. Provides engagement rates, follower growth, post performance, and comparative analytics across all platforms. Built-in 12-hour caching. Pro addon tool (623 lines). |
| Track Hashtag Performance 🌟 | track_hashtag_performance | [NEW Jan 2026] Comprehensive hashtag analysis tracking reach, engagement, impressions, and trend data across Facebook, Instagram, Twitter, LinkedIn, and YouTube. Identifies top-performing hashtags and provides optimization recommendations. Pro addon tool (586 lines). |
| Competitor Analysis 🌟 | analyze_competitor_social |
Publishing & outreach
| Tool | Slug | Summary |
|---|---|---|
| Publish Meta Social Post 🌟 | post_facebook_instagram | Publishes Facebook Page or Instagram business posts through the Meta Graph API with message, caption, and media controls. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-post-facebook-instagram.php†L15-L170】 |
| Publish Google Business Update 🌟 | post_google_business_update | Creates Google Business Profile local posts with summaries, language codes, and optional call-to-action links. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-post-google-business-update.php†L15-L168】 |
| Publish LinkedIn Update 🌟 | post_linkedin_update | Sends LinkedIn UGC posts for members or organisations with optional share URLs via the LinkedIn Marketing API. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-post-linkedin-update.php†L15-L160】 |
| Publish TikTok Video 🌟 | post_tiktok_video | Submits hosted video assets to TikTok’s Open API share endpoint with optional captions. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-post-tiktok-video.php†L15-L152】 |
| Send Group Email | send_group_email | Orchestrates structured or free-form email campaigns with capability-based audience limits and logging hooks. Full documentation.【F:includes/tools/class-wp-mcp-ai-tool-send-group-email.php†L16-L650】 |
| Send Mailjet Email 🌟 | send_mailjet_email | Delivers transactional and marketing emails through Mailjet with sender defaults, CC/BCC routing, and response metadata. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-send-mailjet-email.php†L19-L405】 |
| Send Telegram Message 🌟 | send_telegram_message | Posts formatted updates to Telegram chats or channels with capability filters and audit logging. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-send-telegram-message.php†L16-L232】 |
| Send WhatsApp Message 🌟 | send_whatsapp_message |
Integrations & scheduling
| Tool | Slug | Summary |
|---|---|---|
| Create Google Calendar Event | create_google_calendar_event | Builds calendar events with attendees, reminders, and timeout overrides using OAuth tokens or service accounts.【F:includes/tools/class-wp-mcp-ai-tool-create-google-calendar-event.php†L17-L378】 |
| Search Gmail Messages | search_gmail | Performs delegated Gmail queries with optional label filters and pagination, returning normalised message metadata. Pro addon tool.【F:addons/pro/includes/src/Tools/class-wp-mcp-ai-pro-tool-search-gmail.php†L1-L200】 |
| List JetEngine REST Routes | list_jetengine_rest_routes | Enumerates JetEngine REST endpoints with method, callback, and capability metadata for developers.【F:includes/tools/class-wp-mcp-ai-tool-list-jetengine-routes.php†L12-L151】 |
| Invoke JetEngine REST Route | invoke_jetengine_route | Proxies JetEngine CRUD operations using the authenticated user context with REST/HTTP fallbacks.【F:includes/tools/class-wp-mcp-ai-tool-invoke-jetengine-route.php†L12-L133】 |
| Run OpenAI External Action | run_openai_external_action | Triggers OpenAI Responses API workflows or assistants with payload sanitisation, timeout overrides, and structured errors.【F:includes/tools/class-wp-mcp-ai-tool-run-openai-external-action.php†L17-L211】 |
Operations & diagnostics
| Tool | Slug | Summary |
|---|---|---|
| Cron Management Suite | AI agents can autonomously schedule, monitor, and manage WordPress background tasks | |
| Create Cron Job | create_cron_job | Schedules one-off or recurring WP-Cron events with duplicate detection and sanitised hooks/arguments. Agents can automate periodic maintenance, content publishing, or custom workflows by scheduling actions to run at specific times or intervals.【F:includes/tools/class-wp-mcp-ai-tool-create-cron-job.php†L16-L168】 |
| List Cron Jobs | list_cron_jobs | Lists all scheduled WordPress cron jobs with details about schedule, next run time, and creator. Enables agents to provide visibility into scheduled automation tasks and audit what background processes are running.【F:includes/tools/class-wp-mcp-ai-tool-list-cron-jobs.php†L17-L141】 |
| Get Cron Job | get_cron_job | Retrieves detailed information about a specific WordPress cron job by its job ID, including schedule interval details and execution metadata. Allows agents to inspect individual scheduled tasks for troubleshooting or reporting.【F:includes/tools/class-wp-mcp-ai-tool-get-cron-job.php†L17-L145】 |
| Delete Cron Job | delete_cron_job | Deletes a scheduled WordPress cron job and removes it from both the plugin tracking and WP-Cron. Enables agents to cancel outdated or unnecessary automation tasks on behalf of operators.【F:includes/tools/class-wp-mcp-ai-tool-delete-cron-job.php†L17-L90】 |
| Cache Management | AI agents can coordinate multi-layer cache invalidation | |
| Purge Cache | purge_cache | Master cache purge tool that coordinates multi-layer cache clearing (Cloudflare, Varnish, etc.) in the correct order. Agents can ensure content updates are properly reflected across all caching layers.【F:includes/tools/class-wp-mcp-ai-tool-purge-cache.php†L17-L150】 |
| Purge Cloudflare Cache | purge_cloudflare_cache | Sends targeted or full-zone invalidations to Cloudflare with configurable timeouts and admin-only access controls.【F:includes/tools/class-wp-mcp-ai-tool-purge-cloudflare-cache.php†L17-L292】 |
| Purge Varnish Cache | purge_varnish_cache | Purges the local Varnish cache with support for full-cache bans and specific URL purges. Agents can clear server-side caching to ensure immediate content updates.【F:includes/tools/class-wp-mcp-ai-tool-purge-varnish-cache.php†L17-L150】 |
What the Cron Manager means to AI agents
The Cron Management Suite transforms AI assistants from reactive responders into proactive automation orchestrators. By providing full control over WordPress's background task scheduler, agents can:
Autonomous Task Scheduling
- Schedule content publishing workflows to go live at optimal times without human intervention
- Automate recurring maintenance tasks like cache clearing, database optimization, or backup operations
- Coordinate multi-step operations that span hours or days by chaining scheduled hooks
Intelligent Monitoring & Self-Management
- List and inspect all scheduled tasks to understand what automation is currently active
- Audit who created each task and when it's scheduled to run next
- Identify and remove outdated or redundant scheduled tasks to maintain system health
Real-World Agent Workflows
- Content Calendar Automation - An agent helping with content strategy can schedule posts to publish at researched optimal engagement times, set up recurring social media cross-posts, and schedule follow-up email campaigns.
- Site Maintenance Orchestration - When troubleshooting performance issues, agents can schedule off-peak cache purges, coordinate database cleanup tasks, and set up recurring health check notifications.
- Business Process Automation - Agents can schedule recurring report generation, periodic data syncs with external systems, and automated backup verification checks.
Technical Implementation
The cron manager tracks all scheduled tasks in wp_mcp_ai_cron_jobs option with full audit trails including:
- Job ID for unique identification
- Hook name and sanitized arguments
- Schedule type (single-run or recurring interval)
- Creation timestamp and user attribution
- Next execution time for monitoring
Jobs are automatically pruned when they complete (single-run) or are manually removed (recurring), keeping the tracking database clean. All cron operations require manage_options capability, ensuring only authorized users can delegate automation authority to agents.【F:includes/class-wp-mcp-ai-cron-manager.php†L12-L280】
Each tool inherits the assistant context and authenticated user from the REST layer, making it easy to layer custom permissions or extend behaviour via the documented filters and actions.【F:includes/class-wp-mcp-ai-rest.php†L236-L360】【F:includes/class-wp-mcp-ai-rest.php†L1124-L1198】
Need per-tool prerequisites or capability callouts? Consult docs/reference/tools/tool-reference.md for a detailed matrix of every bundled integration.
Tool Status Labels
The Tools Manager page displays status labels beside tool names to indicate their development stage and stability:
| Status | Display Label | Description | Auto-Disable |
|---|---|---|---|
| stable | STA | Production-ready, fully tested tools safe for all environments | No |
| beta | BET | Testing phase, mostly stable but may have minor issues | No |
| dev | DEV | In active development, may have bugs or incomplete features | No |
| experimental | EXP | New features that may change significantly | No |
| bug | BUG | Known issues exist, use with caution | Yes |
| deprecated | DEP | Will be removed in future versions | No |
Status labels are displayed as 3-letter abbreviations (e.g., "STA" for stable, "BET" for beta) to keep the UI compact.
Important: Tools marked with the bug status are automatically disabled when the plugin loads. This prevents problematic tools from being used until issues are resolved. Administrators can manually re-enable them from the Tools Manager if needed for testing.
Status labels are managed via the tool-status.txt file in the repository. To assign a status label to a tool:
- Open
docs/tool-status.txtin a text editor - Add a line in the format:
tool_slug = status_label - Save the file - changes appear immediately in the Tools Manager
Example:
create_post = stable
web_search = beta
generate_openai_image_validated = experimental
problematic_tool = bug
This file-based approach allows quick status updates without code changes, making it easy for maintainers to reflect tool maturity as development progresses. The automatic disabling of buggy tools provides an additional safety layer to prevent issues in production environments.
🗨 Front-end chat surfaces
NV oOS ships multiple ways to embed assistants on the front end:
- Classic chat shortcode –
[mcp_ai_chat]renders the bundled interface with attachment uploads, tool invocation feedback, and optional guest access viaallow_guests="true". When guest mode is enabled, the shortcode provisions a temporary token and injects it into the JavaScript bootstrap so visitors without WordPress accounts can continue chatting while still respecting capability checks and attachment safety limits.【F:includes/class-wp-mcp-ai-shortcode.php†L132-L258】【F:includes/class-wp-mcp-ai-shortcode.php†L188-L226】 - Floating chat bubble ⭐ NEW – A configurable floating button that sits at a screen corner and opens a chat panel powered by the
[mcp_ai_chat]shortcode. Available as both an Elementor widget and a Gutenberg block. Supports 4 position variants, 3 sizes, auto-open delay, session persistence, dark mode, and WCAG keyboard navigation.【F:includes/elementor/class-wp-mcp-ai-elementor-chat-bubble-widget.php†L1-L200】【F:includes/blocks/chat-bubble/block.json†L1-L50】 - Elementor widgets – Drop the chat UI anywhere Elementor is active, pair it with intro/FAQ blocks, and surface dashboard telemetry without custom code. The chat widget mirrors the shortcode controls (including
allow_guests), and companion widgets expose onboarding content, usage timers, provider quick links, and activity feeds for operational views.【F:includes/elementor/class-wp-mcp-ai-elementor-widget.php†L79-L138】【F:includes/class-wp-mcp-ai-elementor-integration.php†L48-L98】【F:includes/elementor/class-wp-mcp-ai-elementor-chat-intro-widget.php†L47-L140】【F:includes/elementor/class-wp-mcp-ai-elementor-chat-usage-timer-widget.php†L48-L226】【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-activity-feed-widget.php†L48-L167】
Guest tokens are honoured by the REST endpoints through the X-WP-MCP-AI-Guest header or guest_token parameter, allowing the chat shortcode and Elementor widget to make authenticated requests on behalf of public visitors without exposing persistent credentials.【F:includes/class-wp-mcp-ai-rest.php†L289-L307】【F:includes/class-wp-mcp-ai-rest.php†L2088-L2104】
Chat History Persistence
The chat interface automatically persists conversation history to the browser's localStorage, preventing data loss when users navigate away or refresh the page. Conversations are:
- Automatically saved after each user message and assistant response
- Automatically restored when returning to the chat page (within 24 hours)
- Stored per assistant so different assistant conversations remain separate
- Server-side storage available with JetEngine - See note below about optional JetEngine integration
Server-Side Chat Transcript Storage (Requires JetEngine)
⚠️ Third-Party Plugin Required: JetEngine (not included with NV oOS)
Without JetEngine, chat conversations are only stored in browser localStorage (client-side, 24-hour retention). To enable permanent server-side chat transcript archiving:
- Install and activate the JetEngine plugin (third-party, paid plugin from Crocoblock)
- Enable the Custom Content Types module in JetEngine settings
- NV oOS will automatically provision the
ai_chat_transcriptsCCT for permanent storage
What you get with JetEngine:
- ✅ Permanent server-side chat transcript storage
- ✅ Cross-device conversation access
- ✅ Admin visibility into chat history
- ✅ Database-backed chat logs for compliance/auditing
Without JetEngine:
- ⚠️ Chat history only stored in browser localStorage
- ⚠️ Limited to 24-hour retention
- ⚠️ No cross-device synchronization
- ⚠️ Lost if browser data is cleared
See docs/user-guides/chat/chat-history-persistence.md for complete details on the persistence mechanism, data structure, and troubleshooting.
📦 Installation
ℹ️ Plugin Directory Status
This plugin is currently pending approval in the WordPress Plugin Directory. We are committed to maintaining high quality and security standards throughout the review process. You can install the plugin manually from our GitHub repository or wait for the official WordPress Plugin Directory listing.
🚀 Getting Started Wizard
After activating the plugin, you'll be redirected to a 4-step setup wizard that walks you through connecting an AI provider, choosing a use case, and creating your first assistant — all in under 2 minutes. The wizard creates fully-configured assistants with tools, system prompts, and tuned temperatures so your site is working out of the box. You can access the wizard any time at NV oOS → Getting Started or directly at/wp-admin/admin.php?page=wp-mcp-ai-getting-started.
🌱 Try It on Your PC
No live site. No API costs. No risk. The primary way to test NV oOS is a one-command demo that boots WordPress and the Complete bundle locally via WordPress Playground and wires the chat to your local Ollama — no API key, no server, and no prompts leave your machine.
⚡ Fastest: One Command (Playground + Local Ollama)
One-time prerequisites:
- Install Ollama and pull a model:
ollama pull llama3.1:8b - Allow the local origin, then restart Ollama:
- Windows:
setx OLLAMA_ORIGINS "https://playground.wordpress.net,http://localhost,http://127.0.0.1", then quit Ollama from the system tray and relaunch it. - macOS / Linux:
OLLAMA_ORIGINS="https://playground.wordpress.net,http://localhost,http://127.0.0.1" ollama serve
- Windows:
Then run this command (requires Node.js 20+):
npx -y @wp-playground/cli@3.1.54 server --blueprint=https://raw.githubusercontent.com/nvdigitalsolutions/mcp-ai-wpoos/alpha-working/blueprints/ollama-demo.json --login
Open the printed local URL (e.g. http://127.0.0.1:9400/ollama-test-lab/). The first boot takes a few minutes while it downloads and installs the whole stack — after that you land on the Ollama Test Lab: a live status banner plus a chat that answers from your local model. Admin login: admin / password.
Full walkthrough, browser quick-preview link, and troubleshooting: docs/user-guides/playground-demo.md.
🧰 Classic 3-Step Install (Local, Studio, XAMPP, etc.)
Prefer a traditional local WordPress install? Follow the full walkthrough on the NV Digital Solutions blog: How to Test NV oOS on Your Own PC Using Local + Downloading the Plugin →
-
Install a local WordPress environment — Local by WP Engine or WordPress Studio is the easiest option (one-click install, no server config). Alternatives: XAMPP, MAMP, or DevKinsta.
-
Download the NV oOS plugin zip — grab the latest release from GitHub Releases (look for
mcp-ai-wpoos-x.x.x.zip), or use the Code → Download ZIP button for the current development snapshot. -
Upload, activate, and run the wizard — in your local WordPress dashboard go to Plugins → Add New → Upload Plugin, select the zip, activate it, and follow the 🚀 Getting Started Wizard. For a free local AI model (no API key needed), install LM Studio and point the wizard at
http://localhost:1234.
🗺 Single-file auto-installer (roadmap) — A single cross-platform installer that bootstraps the entire stack automatically is on the roadmap. See the App / Plugin Distribution Proposal for current status and the plan.
Requirements
Minimum Requirements:
- WordPress 6.0+
- PHP 7.4+ (PHP 8.0+ recommended)
- MySQL 5.7+ or MariaDB 10.3+
Optional Requirements for Enhanced Features:
- Node.js 14+: Required for image vectorization tools (
vectorize_imagetool) - PHP Functions:
proc_open,proc_close,proc_terminate(for Node.js integration and Process Service)- These functions are often disabled on shared hosting for security
- Can be enabled on Cloudways via Application Settings (see troubleshooting guide)
- JetEngine Plugin: For CCT storage and advanced content management tools
- WooCommerce: For e-commerce integration tools
- Elementor: For visual page builder widgets
Note: The plugin works without optional requirements, but some features will be disabled. See deployment troubleshooting for enabling disabled PHP functions.
For Developers (GitHub Clone)
✅ Production-Ready Repository
This repository includes production-optimized vendor dependencies with classmap-authoritative autoloading configured by default in composer.json. You can clone and activate immediately without running composer. Thecomposer installcommand is only needed if you want to update dependencies or add development tools.
⚡ Use a shallow clone
A full clone of this repository is ~10 GB due to its long history. Use--depth 1to download only the latest snapshot (~500 MB) — much faster and smaller. If you later need the full history, rungit fetch --unshallow.git clone --depth 1 https://github.com/nvdigitalsolutions/mcp-ai-wpoos.git
If you're cloning from GitHub:
Option 1: Cloudways and Managed Hosting (Recommended)
For Cloudways and similar managed hosting platforms, clone directly into the WordPress plugins directory:
# SSH into your server
# Navigate to WordPress plugins directory
cd /home/master/applications/YOURAPP/public_html/wp-content/plugins/
# Clone the repository (production-ready, no composer needed!)
# Use --depth 1 for a fast shallow clone (recommended for production)
git clone --depth 1 https://github.com/nvdigitalsolutions/mcp-ai-wpoos.git
cd mcp-ai-wpoos
# Verify you're in the correct directory
pwd # Should show the plugins path
# Optional: Only needed for frontend asset rebuilding or development
# npm install && npm run build
# Optional: Only run if you need to update dependencies or add dev tools
# Note: Autoloader optimization is now configured by default in composer.json
# composer install --no-dev
⚠️ Cloudways Important Notes:
- Always clone directly into
/home/master/applications/YOURAPP/public_html/wp-content/plugins/ - Do NOT clone elsewhere and then move/copy - this causes
getcwd() failederrors - Replace
YOURAPPwith your actual Cloudways application name
Option 2: Local Development or VPS
For local development or standard VPS hosting:
# Option A: Clone directly into WordPress plugins directory (recommended, production-ready!)
cd /path/to/wordpress/wp-content/plugins/
# Use --depth 1 for a fast shallow clone (recommended for production)
git clone --depth 1 https://github.com/nvdigitalsolutions/mcp-ai-wpoos.git
cd mcp-ai-wpoos
# Ready to activate! No composer or npm needed for production use.
# Option B: Clone and copy (also production-ready!)
# Use --depth 1 for a fast shallow clone (recommended for production)
git clone --depth 1 https://github.com/nvdigitalsolutions/mcp-ai-wpoos.git
cd mcp-ai-wpoos
cp -r . /path/to/wordpress/wp-content/plugins/mcp-ai-wpoos/
For Development Only:
# Only if you need to rebuild assets or modify dependencies:
npm install && npm run build
# Note: Autoloader optimization is now configured by default in composer.json
composer install --no-dev
Optional: Strip Dev Files for Production
If you are deploying via git clone to a production server with anti-malware / EDR scanning, the working tree will contain test fixtures that embed verbatim attack-payload literals (XSS canaries, SQL-injection samples, prompt-injection strings) used by the security test suite. These can occasionally trip signature-based scanners.
For a clean production tree, run the bundled strip script after cloning:
# Preview what would be removed
bin/strip-dev-files.sh --dry-run
# Remove tests/, docs/, bin/, .github/, .bmad/, .context/, examples/,
# phpunit.xml.dist, phpcs.xml.dist, dev configs, etc.
bin/strip-dev-files.sh
The script mirrors the exclusion list in .distignore (used for the WordPress.org SVN deploy) and the export-ignore rules in .gitattributes (used for GitHub-distributed ZIPs). It is idempotent and refuses to run on a working tree with uncommitted changes (override with --force).
Note: Do not run this on a development checkout — it removes the test suite, docs, and build tooling. It is intended for deploy targets that only run the plugin.
Final Steps
- Activate Open Operator System Complete (NV oOS) from WordPress admin
- You now have the complete version with all ~1,692 tools (~353 base + ~1,339 Pro; live count via
WP_MCP_AI_Tool_Registry::get_tools()is authoritative)
What you get from the repository clone:
- ✅ The full codebase — all ~1,692 built-in tools ready to use (~353 base + ~1,339 Pro; live count via
WP_MCP_AI_Tool_Registry::get_tools()is authoritative) - ✅ Single plugin activation (not separate base + pro)
- ✅ Pro features automatically available (no separate Pro plugin to install)
Notes:
- The repository includes
mcp-ai-wpoos-base.phpandaddons/pro/mcp-ai-wpoos-pro.phpwhich are used for building separate distributions but do NOT appear as separate plugins when cloning - Only the main plugin file (
mcp-ai-wpoos.php) has a plugin header in the repository - The build script adds headers to the other files when creating standalone distributions
Standard Installation
- Upload
mcp-ai-wpoos.zipto/wp-content/plugins/ - Activate NV oOS from the WordPress admin
- Go to Settings → NV oOS
- Enter your OpenAI API key
- Create a new “AI Assistant” in AI Assistants
- Add
[mcp_ai_chat assistant="123"]to a page or post
Optional: JetEngine Integration
⚠️ Third-Party Plugin (Not Included): JetEngine is a paid plugin from Crocoblock
JetEngine is completely optional - NV oOS works perfectly without it. However, if you want server-side chat transcript storage:
- Purchase and install JetEngine separately
- Enable the Custom Content Types module in JetEngine settings
- NV oOS will automatically provision the
ai_chat_transcriptsCCT for permanent chat storage
What works WITHOUT JetEngine:
- ✅ All core AI assistant features
- ✅ Chat interface and conversations
- ✅ ~300 base tools (more with optional third-party plugins)
- ✅ MCP server functionality (
/wp-json/mcp-ai/v1/) - ✅ Browser-based chat history (localStorage, 24 hours)
- ✅ OpenAI/Gemini/Anthropic/Ollama/Hugging Face/Cloudflare integrations
What requires JetEngine:
- ❌ Server-side chat transcript storage (chat history only in browser without it)
- ❌ 5 JetEngine-specific tools (see 🔌 Optional Tools & Dependencies)
🔌 What You Lose Without Third-Party Plugins
NV oOS works perfectly with vanilla WordPress, but certain features require third-party plugins (sold separately). Here's exactly what you lose without each plugin:
Without JetEngine (Crocoblock - Paid Plugin)
Lost Features:
- ❌ AI metaboxes for JetEngine CPTs/Taxonomies - No AI assistant integration on JetEngine edit screens
- ❌ Research & Add pages - No AI-powered content creation with automatic field mapping
- ❌ Server-side chat transcript storage - Chat history only stored in browser localStorage (24 hours)
- ❌ Cross-device chat synchronization - No database-backed conversation history
- ❌ Admin chat history access - Cannot view/audit conversations from admin panel
- ❌ Assistant CCT synchronization - Assistants only in WordPress CPT (MCP server still works perfectly)
Lost Tools (5 tools):
get_jetengine_items- Query JetEngine custom post typeslist_jetengine_rest_routes- List JetEngine REST API routesinvoke_jetengine_route- Execute JetEngine REST operationsget_jetformbuilder_forms- List JetFormBuilder forms (also requires JetFormBuilder)get_jetformbuilder_submissions- Get form submissions (also requires JetFormBuilder)
✅ Still Works: All core features, MCP server, ~300 base tools, AI conversations
Without WooCommerce (Free Plugin)
Lost Features:
- ❌ E-commerce automation - Cannot create or manage products via AI
- ❌ Order management - Cannot query or analyze orders
- ❌ Product catalog access - Cannot search or update product data
Lost Tools (3 tools):
create_woo_product- Build draft WooCommerce products with AI-generated descriptions, pricing, and imagesget_woo_products- Search and retrieve product catalog with pricing and stock statusget_woo_recent_orders- Summarize recent orders with billing details and totals
Use Cases Lost: E-commerce content generation, order fulfillment assistance, product merchandising
Without Elementor (Freemium Plugin)
Lost Features:
- ❌ Template management - Cannot list or reference Elementor templates via AI
- ❌ Elementor widgets - Cannot use pre-built chat/dashboard widgets (shortcodes still work)
Lost Tools (2 tools):
get_elementor_templates- List Elementor library templates with status, type, and edit linksimport_elementor_template_kit- Import Elementor template kits
Lost UI Components:
- Elementor Chat Widget
- Elementor Chat Intro Widget
- Elementor Dashboard Widgets (Tool Matrix, User Capabilities, Activity Feed, etc.)
✅ Still Works: Standard [mcp_ai_chat] shortcode, all AI features
Without Rank Math SEO (Freemium Plugin)
Lost Features:
- ❌ SEO analysis - Cannot query SEO scores or optimization recommendations
- ❌ Schema data access - Cannot retrieve structured data for posts
Lost Tools (1 tool):
get_rankmath_seo- Get SEO scores, focus keywords, robots metadata, and schema details for posts
Use Cases Lost: AI-powered SEO content optimization, SEO audit assistance
Without WPCode (Freemium Plugin)
Lost Features:
- ❌ Code snippet management - Cannot create or update code snippets via AI
- ❌ Custom functionality automation - Cannot automate adding hooks, filters, or custom code
Lost Tools (1 tool):
create_wpcode_snippet- Create or update code snippets with validation and activation control
Use Cases Lost: AI-assisted custom development, automated code snippet generation
Without Simple JWT Login (Free Plugin)
Lost Features:
- ❌ JWT token generation - Cannot generate JWT bearer tokens for headless WordPress integrations
Lost Tools (1 tool):
generate_simple_jwt_token- Generate JWT bearer tokens for authenticated API access
Use Cases Lost: Headless WordPress authentication, mobile app integration, SPA authentication
Summary: Third-Party Plugin Dependencies
| Plugin | Type | Tools Lost | Key Feature Lost |
|---|---|---|---|
| JetEngine | Paid (Crocoblock) | 5 | Server-side chat transcript storage |
| WooCommerce | Free | 3 | E-commerce automation |
| Elementor | Freemium | 2 + Widgets | Elementor template integration |
| Rank Math | Freemium | 1 | SEO analysis |
| WPCode | Freemium | 1 | Code snippet management |
| Simple JWT Login | Free | 1 | JWT token generation |
Total Impact: Without these plugins, you lose 13 tools but retain ~300 base tools and all essential AI assistant functionality.
Base Version (Default)
NV oOS runs in Base Version mode by default, providing ~300 essential tools that work with vanilla WordPress without requiring any third-party plugins:
Base Version includes ~300 essential tools that work with vanilla WordPress:
- Content management (search, save posts, attachments)
- AI media generation (images via OpenAI/Gemini, speech, transcription, video)
- Research tools (web search, weather, disaster alerts)
- Site operations (health checks, logs, cron jobs, cache management)
- WordPress-native email (via wp_mail)
- Image manipulation (resize, crop, rotate, convert, vectorize to SVG)
- Graphic editing (local operations and AI-powered transformations)
- Profession and assistant management
- GitHub integration tools
- Google Maps Platform tools
Base Version excludes 31 tools requiring third-party plugins or external APIs:
- Third-party WordPress plugins (13 tools) - See 🔌 What You Lose Without Third-Party Plugins for details
- WooCommerce tools (3)
- JetEngine/JetFormBuilder tools (5)
- Elementor tools (2)
- RankMath/WPCode/Simple JWT Login tools (3)
- External API services (18 tools) - Require API credentials
- Google services (5)
- Social media integrations (8)
- External messaging services (4)
- QuickBooks (1)
Full Version Installation (Opt-in)
To enable the Full Version with all third-party integrations and external API tools, add this constant to your wp-config.php file:
define( 'WP_MCP_AI_BASE_VERSION', false );
📖 See BASE-VERSION.md for the complete tool list and customization options.
When to use Base Version:
- Starting fresh with WordPress
- Testing or development environments
- Simpler installations without external dependencies
- Sites that don't need e-commerce or advanced integrations
- Don't want to purchase/install third-party plugins
When to use Full Version:
- Production sites with WooCommerce, JetEngine, or Elementor already installed
- Sites needing social media automation (requires API credentials)
- Advanced workflows requiring external APIs
- Need server-side chat transcript storage (requires JetEngine)
📖 See detailed breakdown: 🔌 What You Lose Without Third-Party Plugins
📚 Documentation
NV oOS includes comprehensive documentation covering all aspects of the plugin. Documentation reorganized June 2026 — Unix-theory separation of concerns. All docs sorted into 12 purpose-driven directories with zero content loss.
📖 Documentation Hub
- Documentation Hub ⭐ Start here - Central navigation with organized categories
- Documentation Index - Complete map of all 1,600+ documentation files
- Architecture Overview - System architecture (18 providers, ~1,692 tool classes, 36 REST controllers)
- Request Flow Walkthrough - End-to-end chat request lifecycle trace
- Quick Reference Guide - Fast access to common tasks and commands
Essential References
- Tool Reference - All ~1,692 tools documented (~353 base + ~1,339 Pro; live count via
WP_MCP_AI_Tool_Registry::get_tools()is authoritative) - REST API Documentation - Complete API reference with examples
- Testing & Quality Report - Test results and code quality analysis
📦 Archive
- Historical Documentation — 50+ archived files from 2024-2025 development
- Docs Archive - Consolidated implementation history and superseded documentation
For New Users
- 🚀 Getting Started Wizard ⭐ NEW — 4-step guided setup that connects your AI provider, selects a use case, and creates a ready-to-use assistant in under 2 minutes. 8 presets available: Content Creator, Customer Support, E-commerce, SEO & Research, Developer Copilot, Media & Creative Studio, Site Administrator, General Purpose.
- Use Cases & Quickstart Guides ⭐ NEW - Comprehensive guide covering 7 major use cases with step-by-step quickstarts
- 5-Minute Quick Start - Get started immediately: from zero to first chat
- Setup Checklist - Step-by-step installation and configuration
- Remote Client Quickstart - Connect Claude Desktop, LM Studio, or other MCP clients
- Best Practices - Recommended usage patterns and optimization tips
For Developers
- Testing & Quality Report - Test suite results (2,106 tests, 73.4% pass rate), code quality analysis, security audit
- Code Review Master - Comprehensive code quality analysis (95/100 score)
- Action Items - Prioritized development tasks (180+ hours)
- Authentication Guide - Authentication methods and security
- MCP JSON-RPC 2.0 Endpoint - Model Context Protocol implementation
For Administrators
- Deployment Troubleshooting - Common issues and solutions
- Multisite Support - WordPress multisite configuration
- Rate Limit Protection - API rate limiting setup
- Mesh Routing Guide - Intelligent compute routing across sites and providers
- Federation & Discovery - Decentralized AI capability network with peer discovery and well-known endpoints
Performance & Optimization
- Message Bundling - Client-side message optimization
- High Token Tool Handling - Agentic loop token management
- Job Notification System - Real-time async job updates
- Chat Performance Optimizations - Complete performance guide
- Mesh Routing Guide - Intelligent compute routing across sites and providers
Historical Documentation
- Archive Directory - 95+ historical documents organized by category:
implementations/- Implementation summaries and technical detailsphases/- Development phase documentsfixes/- Bug fix summaries and issue resolutionsfeatures/- Feature documentationcode-reviews/- Code review reportstesting/- Test infrastructure documentation
⚙ Configuration Checklist (Action Items)
Complete these after installation to unlock every integration point:
- Add your OpenAI API key in Settings → NV oOS → OpenAI API Key so API calls are authorised.
- Add your Gemini API key in Settings → NV oOS → Gemini API Key if you plan to route assistants through Gemini.
- Confirm or override the default model via Settings → NV oOS → Default Model (
gpt-4.1ships as the default). - Set a default Gemini model under Settings → NV oOS → Default Gemini Model when Gemini is enabled.
- Choose the default provider from Settings → NV oOS → Default Provider so new assistants know whether to use OpenAI or Gemini by default.
- Adjust the request timeout under Settings → NV oOS → Request Timeout (minimum 5 s, default 30 s) to match your hosting environment.
- Select a default assistant with Settings → NV oOS → Default Assistant so REST and shortcode requests have a fallback.
- Decide on logging with Settings → NV oOS → Enable Logging when you need verbose diagnostics.
- Monitor token usage in Settings → NV oOS → Token Usage Statistics to track API consumption across users, providers, and models for billing and budget management.
- Choose your uninstall behaviour via Settings → NV oOS → Remove Data on Uninstall if this site should purge assistants and settings during cleanup.
- Configure Crawl4AI access in Settings → NV oOS → Tools when you want the Crawl4AI tool to be available to assistants.
- Review attachment MIME overrides in Settings → NV oOS → Attachments before enabling file uploads for end users.
- in to choose the capability and recipient cap for the group email automation.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L348-L359】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L938-L953】
🧠 Language Model Providers (OpenAI, Gemini, Anthropic, Baseten, DeepSeek, OpenRouter, Kimi, DigitalOcean, NVIDIA NIM, Ollama, LM Studio, Hugging Face, Cloudflare)
A dedicated router transparently forwards chat completions to the active provider, allowing each request to target OpenAI, Gemini, Anthropic, DeepSeek, OpenRouter, Baseten, Kimi, DigitalOcean, NVIDIA NIM, a local Ollama instance, LM Studio, Hugging Face, or Cloudflare Worker AI while sharing the same assistant UX.【F:includes/class-wp-mcp-ai-language-model-router.php†L12-L86】 Configure the required API keys, default models, and the global default provider in Settings → NV oOS so new assistants inherit sensible defaults and administrators can switch providers without code changes.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L124-L333】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L505-L530】 Assistants can still override provider, model, and generation parameters on a per-post basis.
Privacy & Terms: All AI providers have specific terms and privacy policies:
- OpenAI: Terms | Privacy
- Google Gemini: Terms | Privacy
- Anthropic: Terms | Privacy
- NVIDIA NIM: Terms | Privacy
- Cloudflare: Terms | Privacy
- Hugging Face: Terms | Privacy
- Ollama/LM Studio: Self-hosted (no external data transmission)
- Baseten: Terms | Privacy
LM Studio Support
LM Studio with Function Calling - Full support for OpenAI-compatible function calling with local LM Studio instances:
- OpenAI-compatible message structure preserved for tool calls
- Tools/functions can be invoked by LM Studio models (e.g., qwen/qwen3-coder-30b)
- Streaming automatically disabled when tools are present for reliable execution
- Full backward compatibility with non-tool scenarios
- Connect via JSON-RPC endpoint (recommended) or SSE streaming
- See LM Studio setup guide for configuration details
Provider Priority List & Automatic Fallback
The plugin includes an intelligent provider priority system that automatically tries alternative providers when the primary one fails or is unavailable. In Settings → NV oOS, you can:
- Drag and drop providers to set your preferred order
- Automatic fallback - if the first provider fails, the system tries the next one
- Visual management - see all available providers (OpenAI, Gemini, Anthropic, Baseten, DeepSeek, OpenRouter, Kimi, DigitalOcean, NVIDIA NIM, Ollama, LM Studio, Hugging Face, Cloudflare) in one sortable list
- Flexible prioritization - adjust based on cost, performance, or availability needs
The first provider in the list serves as the default. If any provider returns an error, the router automatically attempts the next provider in the list until one succeeds. This ensures maximum uptime and resilience without manual intervention. All fallback attempts are logged for debugging and monitoring.
Local AI with Ollama
The Ollama provider enables privacy-focused, cost-free AI processing by connecting to a local Ollama or LM Studio instance running on your server or development machine. This is ideal for:
- Privacy-sensitive deployments where data must stay on-premises
- Development and testing without incurring API costs
- Custom or fine-tuned models not available through cloud providers
- Air-gapped environments without internet access
To configure Ollama:
- Install Ollama on your server or local machine
- Pull a model (e.g.,
ollama pull llama2) - Navigate to Settings → NV oOS → Ollama Configuration
- Enter your Ollama endpoint URL (default:
http://localhost:11434) - Click "Test Connection" to verify connectivity
- Click "Fetch Models" to see available models
- Select a model from the list or manually enter a model name
- Set "Default Provider" to "Ollama (Local AI)" if you want it as the system default
The Ollama client supports the standard chat completion flow and automatically normalizes responses to match the OpenAI format for downstream compatibility. Note that some advanced features like tool calling may vary depending on the specific Ollama model you're using.
OpenAI model coverage
The plugin ships with presets for OpenAI’s current Responses, Reasoning, Audio, and Image APIs so site owners can choose the right model for each workflow. Token windows describe the maximum request size (messages, attachments, and tool payloads) the OpenAI API will accept for that model, while output limits reflect the largest single response the service will stream back. Leave a safety margin below each ceiling so assistants can add system instructions, tool calls, and knowledge snippets without hitting provider limits.
| Capability | Model | Max context tokens | Max output tokens | Notes |
|---|---|---|---|---|
| Responses (flagship) | gpt-5.2 | 400,000 | 128,000 | Latest flagship multimodal model with 400K context window (Dec 2025). Ideal for large documents and complex workflows. |
| Responses (pro reasoning) | gpt-5.2-pro | 400,000 | 128,000 | Advanced reasoning variant with enhanced capabilities for mission-critical tasks requiring maximum accuracy. |
| Responses (high throughput) | gpt-5.2-instant | 400,000 | 128,000 | High-volume optimized variant for customer support and content generation at scale. |
| Responses (deep analysis) | gpt-5.2-thinking | 400,000 | 128,000 | Deeper analysis variant with reasoning time dial for multi-step analysis and research tasks. |
| Responses (general) | gpt-4.1 | 128,000 | 16,384 | Flagship multimodal model that balances quality and latency for production chat, tool, and multimodal calls. |
| Responses (cost optimised) | gpt-4.1-mini | 128,000 | 16,384 | Budget-friendly 4.1 variant recommended for day-to-day assistants and background automations. |
| Responses (advanced) | gpt-4o | 128,000 | 16,384 | Previous generation multimodal model with strong reasoning capabilities. |
| Responses (legacy) | gpt-4o-mini | 128,000 | 16,384 | Lower-latency 4o tier that keeps the larger context window while reducing cost for iterative workflows. |
| Reasoning | o1-preview | 128,000 | 32,768 | Deliberate reasoning model suited to multi-step planning and analysis; expect slower responses while it “thinks”. |
| Reasoning (fast) | o1-mini | 128,000 | 32,768 | Lighter o1 variant that trades some reasoning depth for responsiveness in operational assistants. |
Media and multimodal defaults
| Capability | Model | Size or duration limits | Notes |
|---|---|---|---|
| Image generation | gpt-image-2 (default) / gpt-image-1.5 / gpt-image-1 / dall-e-3 | Up to 2048×2048 output (square) or 2048×1152 / 1152×2048 (16:9 / 9:16) for gpt-image-2; proportional 1024 / 512 variants for older models | gpt-image-2 ("Images 2.0") is the default as of v1.1.13 — native 2K resolution, multi-image coherency, and accurate multilingual text rendering. Older models remain selectable. Respect OpenAI's safety filters when prompting. |
| Text-to-speech | gpt-4o-mini-tts | Up to ~4,096 input tokens per request | Generates natural-sounding speech in multiple voices; longer scripts should be chunked into multiple calls. |
| Speech-to-text | gpt-4o-mini-transcribe | Optimised for recordings ≤ 90 minutes | Handles multilingual transcription and translation; large files are automatically chunked client-side before upload. |
OpenAI regularly revises token policies and media limits, so review the model specification dashboard before rolling out new assistants or increasing attachment budgets. Updating your defaults in Settings → NV oOS keeps every assistant aligned with the latest provider guidance.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L36-L105】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L2298-L2398】
🧱 ChatKit Integration
The ChatKit module now ships with the core NV oOS plugin, so no separate add-on installation is required. Once enabled it self-registers through ChatKit’s filter and action APIs as soon as both plugins load, exposing the mcp-ai/v1 REST namespace while advertising chat, tool invocation, attachment download, and guest token support without any manual bootstrapping. Return false from the wp_mcp_ai_chatkit_is_available filter if you need to disable the automatic registration for bespoke environments.【F:includes/class-wp-mcp-ai-chatkit-integration.php†L30-L204】【F:includes/class-wp-mcp-ai-rest.php†L16-L2104】
From the ChatKit dashboard configure the NV oOS integration and supply at least one assistant ID so ChatKit knows which conversation to join. Optional fields let you override the system prompt or preload tool shortcut payloads for operators; capability checks inherit the wp_mcp_ai_chat_capability filter, so you can align ChatKit access with the same policies used for shortcodes or REST calls.【F:includes/class-wp-mcp-ai-chatkit-integration.php†L182-L210】【F:mcp-ai-wpoos.php†L25-L72】
Consult docs/developer/integration/chatkit-integration.md for a full configuration walkthrough, JSON examples for shortcut presets, and notes on extending the definition via filters.
🌐 Crawl4AI Integration
Administrators with manage_options capabilities can run the Run Crawl4AI Job tool without any external service: when no Crawl4AI endpoint is configured the plugin performs the crawl directly on the WordPress server using the built-in HTTP client, extracts headings and text as Markdown, and records the raw HTML and response metadata for the assistant.【F:includes/tools/class-wp-mcp-ai-tool-run-crawl4ai-job.php†L32-L745】 Errors for individual URLs are captured in the response metadata so partial crawls still return useful context. When a remote Crawl4AI endpoint is configured the request now returns immediately with a task token while WP-Cron powered background polling captures the final payload and makes it available to the assistant UI once the crawl finishes.【F:includes/crawler/class-wp-mcp-ai-crawler.php†L1-L214】【F:assets/js/chat.js†L1-L2200】
Configure remote endpoints or API keys under Settings → NV oOS → Tools to tailor how the Crawl4AI integration runs across environments.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L248-L521】
Supplying a Crawl4AI base URL (and optional API key) switches the tool back to proxying crawl jobs to the remote Crawl4AI REST API, preserving backwards compatibility with existing deployments.【F:includes/tools/class-wp-mcp-ai-tool-run-crawl4ai-job.php†L206-L339】【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L248-L521】 Local environments can still feed a custom endpoint to the integration through the WP_MCP_AI_CRAWL4AI_BASE_URL or CRAWL4AI_BASE_URL environment variable when you want to test against a dedicated Crawl4AI service.【F:mcp-ai-wpoos.php†L54-L96】
📡 Job Notification System
NV oOS includes a general-purpose infrastructure for real-time notifications on async WordPress jobs, providing SSE streaming and webhook support for external integrations.【F:docs/features/async-jobs/job-notification-system.md†L1-L100】
Architecture
Async Job → WordPress Action → Job Notifier → [SSE | Webhooks]
↓ ↓
Frontend External
Automatic Crawl4AI Integration
The system automatically hooks into Crawl4AI jobs via the wp_mcp_ai_crawl4ai_job_completed action, providing real-time status updates as crawls progress. No additional code is needed—Crawl4AI jobs automatically trigger notifications.【F:includes/crawler/class-wp-mcp-ai-crawler.php†L1-L214】
Frontend SSE Subscription
JavaScript clients can subscribe to job status updates using Server-Sent Events:
const jobId = 'crawl_abc123';
const eventSource = new EventSource(
`/wp-json/mcp-ai/v1/jobs/${jobId}/stream?max_duration=300&poll_interval=2`
);
eventSource.addEventListener('status', (e) => {
const status = JSON.parse(e.data);
console.log('Job status:', status.status, status.progress);
updateProgressBar(status.progress);
});
eventSource.addEventListener('complete', (e) => {
const data = JSON.parse(e.data);
console.log('Job completed:', data.final_status);
eventSource.close();
});
Webhook Registration
External systems can receive HTTP callbacks when jobs complete:
WP_MCP_AI_Job_Notifier::register_webhook(
'crawl_abc123',
'https://example.com/webhook',
array( 'completed', 'failed' )
);
➡️ See docs/features/async-jobs/job-notification-system.md for complete implementation details.
🧊 Elementor Widgets
Sites running Elementor automatically register a suite of MCP blocks so you can assemble onboarding pages, operational dashboards, and standalone chat layouts without writing markup.【F:includes/class-wp-mcp-ai-elementor-integration.php†L12-L98】 The integration only boots when Elementor is present, so non-Elementor installs avoid any overhead.【F:includes/class-wp-mcp-ai-elementor-integration.php†L29-L46】
Chat surfaces and companion blocks
- NV oOS Chat – Renders the assistant interface with the same controls exposed by the
[mcp_ai_chat]shortcode, including theallow_gueststoggle for minting temporary visitor tokens.【F:includes/elementor/class-wp-mcp-ai-elementor-widget.php†L17-L138】 - NV oOS Chat Bubble ⭐ NEW – Floating chat bubble that sits at a configurable screen corner and opens a chat panel powered by the existing
[mcp_ai_chat]shortcode. Also available as a Gutenberg block (wp:mcp-ai-wpoos/chat-bubble). 5 control sections: Chat Settings, Bubble Settings (position/size/animation/tooltip/badge/auto-open), Panel Settings, Bubble Style, Panel Style. BEM CSS with 4 positions, 3 sizes, bounce/pulse animations, dark mode, full-screen mobile (<480px),prefers-reduced-motion, WCAG focus states. Public API atwindow.wpMcpAiChatBubble.【F:includes/elementor/class-wp-mcp-ai-elementor-chat-bubble-widget.php†L1-L200】【F:includes/blocks/chat-bubble/block.json†L1-L50】 - NV oOS Chat Intro – Adds a configurable hero block above the conversation with headings, talking points, and an optional call-to-action button to guide visitors before they engage the model.【F:includes/elementor/class-wp-mcp-ai-elementor-chat-intro-widget.php†L47-L190】
- NV oOS Chat FAQ – Surfaces a repeater-driven FAQ list alongside the chat so product teams can document policies and best practices in context.【F:includes/elementor/class-wp-mcp-ai-elementor-chat-faq-widget.php†L47-L150】
- NV oOS Usage & Timer – Combines a focus timer with per-user token totals, gracefully handling logged-out visitors, disabled tracking, and empty usage histories.【F:includes/elementor/class-wp-mcp-ai-elementor-chat-usage-timer-widget.php†L48-L340】
Operations dashboards
- NV oOS Tool Matrix – Pulls the tool registry, groups integrations by focus area, and highlights the required capability for each assistant tool so administrators can plan enablement safely. The Send Group Email row now mirrors the capability and recipient limit configured in the MCP settings so editorial policies stay front-of-mind.【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-tool-matrix-widget.php†L48-L440】
- NV oOS User Capability Snapshot – Summarises the signed-in operator’s profile, common capabilities, JetEngine access, and multisite memberships to support governance reviews. It also surfaces the configured Send Group Email capability and limit so administrators immediately know whether the current user can trigger bulk mail jobs.【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-user-capability-widget.php†L48-L392】
- NV oOS Theme Preview – Renders a mock conversation using the saved chat color tokens and optionally displays a legend of every branding token for quick QA during rollouts.【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-theme-preview-widget.php†L48-L198】
- NV oOS Provider Quick Links – Reuses the OpenAI usage/log tools to populate external billing and telemetry shortcuts that open in new tabs for rapid debugging.【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-provider-links-widget.php†L48-L166】
- NV oOS Activity Feed – Streams the latest MCP log entries (tool runs, chat interactions, and optional provider requests), collapsing raw context into expandable JSON blocks for deeper analysis.【F:includes/elementor/class-wp-mcp-ai-elementor-dashboard-activity-feed-widget.php†L48-L210】
🧮 Usage Tracking
Privacy-First Analytics (v1.2.0+)
The plugin includes optional, privacy-first activation tracking to help us understand plugin usage and improve development priorities. This feature is:
Privacy Features:
- ✅ No PII collected - No personal information or identifiable data
- ✅ Site URLs hashed - Non-reversible SHA-256 hash with WordPress salts
- ✅ No IP storage - IP addresses are not logged or stored
- ✅ Local dev excluded - Automatically disabled for localhost and common dev domains
- ✅ Opt-out available - Easy to disable via settings or filter hook
- ✅ GDPR compliant - Meets all privacy regulations
- ✅ Fully transparent - All code is open source and documented
Data Collected:
- Plugin variant (complete, base, pro, or core)
- Plugin version number
- WordPress version
- PHP version
- Site locale (language)
- Multisite status
- Hashed site identifier (non-reversible)
- Timestamp
How to Opt Out:
- Via Settings: Settings → NV oOS → General → Log Management → Disable Activation Tracking
- Via Filter Hook:
add_filter( 'wp_mcp_ai_enable_usage_tracking', '__return_false' );
Full Privacy Details: See EXTERNAL_SERVICES.md for complete documentation.
The plugin records aggregate token usage per user, provider, and model whenever responses include usage metadata, simplifying internal reconciliation or billing workflows. Usage data is stored as user meta and automatically purged when accounts are deleted, and hooks are exposed for custom reporting pipelines.【F:includes/class-wp-mcp-ai-usage-tracker.php†L12-L119】
Token Usage Management Dashboard
Administrators with manage_options capability can view comprehensive token usage statistics in Settings → NV oOS:
Global Statistics (All Users):
- Total requests across all users
- Total tokens consumed (prompt + completion)
- Prompt tokens used
- Completion tokens generated
- Cached tokens (for providers supporting prompt caching)
- Reset all usage data button (with confirmation)
Individual User Statistics:
- Your personal token consumption
- Per-user breakdown of requests and tokens
- Reset personal usage data button
Detailed Breakdown:
- Usage by provider (OpenAI, Gemini, Anthropic, NVIDIA NIM, Ollama, LM Studio, Hugging Face, Cloudflare)
- Usage by specific model (e.g.,
gpt-4.1-mini,gemini-2.0-flash) - Request counts per provider/model combination
- Last used timestamp for each model
- Comprehensive table view with all metrics
The usage tracking system automatically:
- Records usage from all API responses that include usage metadata
- Aggregates data by user, provider, and model
- Updates in real-time as conversations occur
- Supports the Open OpenAI Usage tool for quick access to provider dashboards
- Provides AJAX-powered reset functionality for administrators
🧷 Attachment MIME Controls
Administrators can override the default image and file MIME allowlists used by the chat uploader. The settings screen accepts one MIME type per line, and the attachment helper merges the overrides with its defaults before enforcing them on upload and shortcode configuration.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L225-L669】【F:includes/class-wp-mcp-ai-message-attachments.php†L503-L559】 Leave the fields empty to fall back to the bundled safe defaults.
⚡ Message Bundling
NV oOS implements client-side message bundling to optimize API usage and reduce server load. When enabled, messages sent within an 800ms window are automatically grouped into a single API request, reducing costs and improving performance for users who send multiple messages in quick succession.【F:docs/user-guides/chat/message-bundling-feature.md†L1-L80】
How It Works
- User sends a message → Displayed immediately in the chat UI
- 800ms timer starts → System waits for additional messages
- More messages arrive → Timer resets with each new message
- Timer expires → All queued messages sent together in one request
Visual Feedback
- "Preparing to send…" - Messages are being queued during the bundling window
- "Sending…" - Bundled messages are being transmitted to the server
Benefits
- Reduced API costs - Fewer requests mean lower costs for pay-per-request APIs
- Lower server load - Fewer requests to process and respond to
- Better mobile experience - Ideal for users who type in short bursts
- Backward compatible - Server code unchanged, same payload format
Configuration
Message bundling is enabled by default and requires no configuration. To disable for debugging:
window.wpMcpAiChatDebugMode = true;
➡️ See docs/user-guides/chat/message-bundling-feature.md for configuration options and implementation details.
🎯 Agentic Loop Token Management
NV oOS includes intelligent handling for tools that return large responses, preventing token overflow errors during agentic loops (where the AI automatically calls multiple tools).【F:docs/features/tools/presets/high-token-tool-handling.md†L1-L80】
The Problem
Tools like run_crawl4ai_job can return 100,000+ tokens of content. In agentic loops, each API call includes all previous messages, causing token counts to grow rapidly and exceed model limits (e.g., gpt-4.1-mini's 200k TPM limit).
The Solution: Three-Tier Strategy
Tier 1: Token Limit Detection
- Estimates total tokens before each API call
- Checks against model's TPM (Tokens Per Minute) limit
- Prevents requests that would exceed limits
Tier 2: Automatic Model Switching
- When limits exceeded, auto-switches to fallback model
- Default fallback: Gemini 2.0 Flash (1-2 million token capacity)
- Preserves full context without data loss
- Transparent to the user
Tier 3: Message Truncation
- If even fallback model can't handle tokens
- Truncates older messages from conversation
- Always preserves system prompts and recent context
- Logs what was truncated for debugging
Configuration
Automatic model switching is enabled by default. Configure fallback model under Settings → NV oOS:
// Default fallback model
'fallback_model' => 'gemini-2.0-flash-exp'
➡️ See docs/features/tools/presets/high-token-tool-handling.md for complete technical details and examples.
🔄 Chat Performance Optimizations
NV oOS includes several performance optimizations to enhance the chat experience:
- Message bundling - Reduces API calls by grouping rapid user inputs
- Token budget management - Prevents API limit overruns with safety margins【F:docs/features/performance/tpm-limit-validation.md†L1-L50】
- Chat history persistence - LocalStorage (24h) + optional JetEngine CCT storage【F:docs/user-guides/chat/chat-history-persistence.md†L1-L50】
- Automatic model switching - Seamlessly handles token overflow scenarios
- Rate limit protection - Intelligent retry with exponential backoff【F:docs/features/performance/rate-limit-protection.md†L1-L50】
➡️ See docs/features/chat/chat-performance-optimizations.md for detailed performance tuning guide.
🌐 Mesh Compute Routing
NV oOS includes intelligent mesh compute routing that automatically distributes AI workload across multiple sites OR multiple providers using AI-powered decision-making. This feature works in two modes:
- Multi-Site Mesh: Distribute load across multiple WordPress installations
- Single-Site Multi-Provider: Balance load across OpenAI, Gemini, Anthropic, NVIDIA NIM, Hugging Face, Cloudflare, and Ollama on one site
Both modes use the same AI-powered routing engine to optimize for cost, performance, and reliability.
Key Capabilities
- AI-Optimized Routing - Analyzes prompt complexity and routes to optimal provider/site
- Cost Optimization - Use GPT-4o-mini for simple queries, GPT-4o for complex tasks
- Automatic Failover - Switch providers on rate limits or outages
- Compute Hubs - Designate powerful servers for heavy workloads
- Rate Limit Management - Auto-switch to alternative providers when limits hit
- Privacy Control - Route sensitive data to local Ollama instances
Quick Start Examples
Single-Site Setup (No mesh required):
- Configure multiple AI providers (OpenAI + Gemini + Anthropic + Hugging Face + Cloudflare + Ollama)
- Set assistant routing strategy to "AI Optimized"
- Save 90% on costs by routing simple queries to cheaper models
Multi-Site Setup (Distributed compute):
- Enable mesh networking on all sites
- Designate compute hubs with larger models
- Automatic load balancing across peer sites
- Cross-server compute pooling for Cloudways, SiteGround, etc.
➡️ See docs/features/federation/mesh-routing-guide.md for complete setup guide, routing strategies, and use cases. ➡️ See docs/features/federation/mesh-compute-pooling.md for architecture and authentication details.
🔗 Federation & Discovery System
NV oOS includes a decentralized AI capability network that allows WordPress sites to publish their capabilities and discover peer sites. Think of it as "npm for AI tools" — sites can advertise what they offer and find complementary capabilities from trusted peers.
Overview
The Federation & Discovery system provides three deployment modes:
- Publisher Mode: Publish your site's capabilities via
/.well-known/ai-peer - Directory Mode: Run a discovery service for peer registration and search
- Consumer Mode: Query directories to find and use peer capabilities
Quick Start
Enable Federation (Publisher Mode):
- Navigate to Settings → NV oOS → Federation & Discovery
- Check Enable federation
- Configure regions (e.g.,
us, eu, ap) and data tags (e.g.,no_pii, gdpr_ok) - Your capabilities are now published at
https://yoursite.com/.well-known/ai-peer
Enable Directory Service (Optional):
- In the same settings section, check Enable directory service
- Your directory API is now available at
https://yoursite.com/wp-json/ai-dir/v1 - Automatic hourly health checks verify registered peers
Key Features
- 📡 Well-Known Endpoints - Standards-based capability publishing
- 🔍 Peer Discovery - Search by capability, region, and data policy
- ✅ Health Monitoring - Automatic cron-based peer verification
- 🏆 Smart Ranking - Scores peers by region, latency, and policy match
- 🔐 JWKS Verification - Built-in security with public key discovery
- ⚙️ Conditional Loading - Zero overhead when disabled
API Endpoints
Directory REST API (/wp-json/ai-dir/v1):
POST /peers/register- Register a new peerGET /peers- List all peers with health statusGET /peers/{id}- Get peer detailsGET /search- Search peers by capability/region/policyPOST /reverify/{id}- Manually trigger health checkPOST /report/{id}- Report peer issues
Well-Known Endpoints:
GET /.well-known/ai-peer- Your site's capability manifestGET /.well-known/jwks.json- Public keys for verification
Use Cases
Private Organization Network:
- Multiple WordPress sites within one organization
- Share AI capabilities across internal sites
- Central directory for discovery
- Private peer network with secure authentication
Public Directory Service:
- Community-run capability discovery
- Accept registrations from external sites
- Provide search API for consumers
- Build an ecosystem marketplace
Capability Consumer:
- Query public directories for needed capabilities
- Integrate with mesh router for automatic peer selection
- No need to publish your own capabilities
- Access specialized tools from the network
Configuration Options
- Regions: Geographic locations (e.g.,
us, eu, ap, global) - Data Tags: Compliance policies (e.g.,
no_pii, gdpr_ok, hipaa_like) - QPS Limit: Queries per second (default: 5)
- Burst Capacity: Simultaneous requests (default: 10)
➡️ Complete Documentation: docs/features/federation/federation-discovery.md ➡️ Implementation Summary: FEDERATION-IMPLEMENTATION-SUMMARY.md
🕵 Code Review
The 2025-10-31 internal review confirms the hardening of the group email automation (header filtering and attachment caps) and the case-sensitive variable handling in the OpenAI external action tool, and only flags a low-severity performance concern around guest token transient churn for public chat embeds. These findings have been consolidated into the master code review document. One follow-up action item recommends re-using or rate-limiting guest tokens to keep the options table tidy on cache-less hosts.
➡️ See docs/developer/best-practices/CODE-REVIEW-MASTER.md for the complete code quality assessment.
🔒 MCP Server Authentication
Remote MCP assistants should authenticate with Auth0-issued bearer tokens (Authorization: Bearer YOUR_TOKEN) whose audience and scope align with the values configured under Settings → NV oOS. Same-origin experiences (the dashboard editor and shortcode UI) continue to rely on the X-WP-Nonce header tied to the logged-in WordPress session. Review docs/reference/api/mcp-server-authentication.md for a complete setup guide plus a breakdown of the structured error responses returned on failure, and keep the deployment troubleshooting checklist handy when diagnosing capability or credential regressions.
MCP transports (v1.1.55+): POST /wp-json/mcp-ai/v1/mcp speaks JSON-RPC 2.0 over Streamable HTTP by default. Legacy HTTP+SSE clients (SSE-only Accept: text/event-stream or ?stream=true) get a credential-bound session handshake from GET /mcp and receive responses as event: message on the GET stream — enable with WP_MCP_AI_LEGACY_SSE_ENABLED. JSON-RPC errors return HTTP 200 with the {"jsonrpc","id","error"} envelope so agent SDKs that drop non-2xx bodies relay tool errors instead of hanging; auth/permission failures keep real HTTP statuses. Assistant credential headers may be sent as Authorization: Bearer cred_xxxxx.SECRET or raw Authorization: cred_xxxxx.SECRET. Tool-call traffic is governed by the settings-driven tool rate limiter (credential tokens exempt by default), and GET/HEAD discovery probes never consume the request quota. See docs/developer/implementation-plan-mcp-agent-compat.md and docs/developer/legacy-sse-transport-plan.md for the full rationale.
Using NV oOS as an MCP server
- Install the plugin and create assistants. Each WordPress instance that activates NV oOS exposes an MCP-ready assistant directory backed by the
ai_assistantcustom post type, so every published assistant becomes available to remote clients once credentials are issued.【F:includes/assistants/class-wp-mcp-ai-assistant-cpt.php†L460-L620】 - Configure the REST and connector settings. Populate the Auth0, model provider, and optional integration credentials under Settings → NV oOS so the REST controller can advertise the correct namespace URLs and enforce bearer tokens per your tenant, scope, and provider defaults.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L36-L118】
- Expose the MCP directory endpoints. The REST layer publishes
/assistants,/chat,/tools, and an SSE-compatible/ssehandshake inside thewp-json/mcp-ai/v1namespace, automatically scoping responses to the authenticated assistant or returning every assistant the caller may read.【F:includes/class-wp-mcp-ai-rest.php†L234-L703】 Hand-held clients can subscribe to the streaming directory event or call the JSON routes directly using the base URLs returned in the directory payload.【F:includes/class-wp-mcp-ai-rest.php†L653-L703】 - Register any additional tools. Extend the server’s capabilities by hooking into
wp_mcp_ai_register_toolsand loading custom tool classes; registered slugs flow through the assistant directory and tool execution endpoint without extra wiring.【F:includes/class-wp-mcp-ai-tool-registry.php†L75-L195】 - Verify the deployment before sharing credentials. Run
wp mcp-ai remote https://example.com/wp-json/mcp-ai/v1 --token=YOUR_TOKENfrom any WP-CLI environment to confirm authentication, assistant scope, and chat probes succeed before you hand tokens to operators or client teams.【F:includes/class-wp-mcp-ai-cli-command.php†L137-L220】
Operating multiple MCP deployments
Provision a separate WordPress site (or network site) for each MCP server you need, activate NV oOS, and repeat the configuration steps above with environment-specific Auth0 audiences, scopes, and provider keys. Because the assistant directory response includes the resolved REST base and namespace metadata, MCP clients can be pointed at different deployments simply by swapping the base URL and the bearer credential minted for that site’s assistants.【F:includes/admin/class-wp-mcp-ai-admin-settings.php†L48-L118】【F:includes/class-wp-mcp-ai-rest.php†L653-L703】
Sites that enable the Simple JWT Login integration can now reuse those bearer tokens alongside Auth0 credentials. The plugin validates tokens with Simple JWT Login’s native services, falls back to manual JWT decoding when the dependency cannot resolve a user, and automatically scopes REST requests to the assistant encoded in the token so cross-assistant hops are blocked with actionable errors.【F:includes/class-wp-mcp-ai-simple-jwt-login-integration.php†L47-L214】【F:includes/integrations/class-wp-mcp-ai-integration-simple-jwt.php†L240-L378】【F:includes/class-wp-mcp-ai-rest.php†L2769-L2808】
🌐 Connecting Remote MCP Clients
NV oOS works seamlessly with popular MCP clients including Claude Desktop, LM Studio, and ChatGPT connectors. Each client connects to your WordPress site via the MCP REST API at /wp-json/mcp-ai/v1 and can access assistants, execute tools, and interact with your WordPress data remotely.
SSE Support: All MCP endpoints support Server-Sent Events (SSE) for real-time streaming. Enable SSE in your client configuration for better response times and real-time updates. See the SSE Streaming Support section for details.
Quick Start
- Generate an assistant credential from any published assistant's API Credentials meta box
- Copy the token (format:
cred_xxxxx.SECRET) — shown only once! - Configure your MCP client with your site's base URL and the credential
- Test the connection using the provided test script or WP-CLI command
Claude Desktop setup
Claude Desktop supports MCP servers through a JSON configuration file. Add your WordPress site:
{
"mcpServers": {
"wordpress-site": {
"url": "https://your-site.com/wp-json/mcp-ai/v1",
"headers": {
"Authorization": "Bearer cred_xxxxx.SECRET"
},
"sse": true
}
}
}
See the complete Claude Desktop setup guide and example configurations for multi-assistant deployments.
LM Studio Setup
⚠️ Having SSE content-type errors? Use the JSON-RPC endpoint instead!
LM Studio can connect using two methods:
Method 1: JSON-RPC (Recommended - No SSE)
Use this if you're getting SSE error: Invalid content type, expected "text/event-stream":
{
"servers": [
{
"id": "wordpress-mcp",
"name": "WordPress Site",
"url": "https://your-site.com/wp-json/mcp-ai/v1/mcp",
"auth": {
"type": "bearer",
"token": "cred_xxxxx.SECRET"
},
"timeout": 30000
}
]
}
Configure in LM Studio:
- Server Name: WordPress Site
- URL:
https://your-site.com/wp-json/mcp-ai/v1/mcp - Auth Type: Bearer Token
- Token:
cred_xxxxx.SECRET - Do NOT enable SSE
Method 2: SSE Streaming (Optional)
If you want to use SSE for real-time updates:
- Base URL:
https://your-site.com/wp-json/mcp-ai/v1 - Enable SSE: ✓ (checked)
- SSE Endpoint:
/sse
See the complete LM Studio setup guide and example configurations:
- lmstudio-mcp-without-sse.json - Recommended
- lmstudio-config.json - With SSE
ChatGPT connector setup
⚠️ Note: ChatGPT connectors currently require Auth0 authentication. Assistant-issued credentials are not yet supported by OpenAI's ChatGPT platform.
To connect via ChatGPT:
- Configure Auth0 in Settings → NV oOS
- Generate an Auth0 access token with the configured audience
- Add the MCP server in ChatGPT's connector settings
See the ChatGPT connector guide for detailed Auth0 setup steps.
Testing your connection
Use the built-in test script to verify connectivity:
./bin/test-remote-connection.sh \
-u https://your-site.com/wp-json/mcp-ai/v1 \
-t cred_xxxxx.SECRET
Or use WP-CLI:
wp mcp-ai remote https://your-site.com/wp-json/mcp-ai/v1 \
--token=cred_xxxxx.SECRET
Expected output confirms the server is reachable and lists available assistants.
Complete documentation
For comprehensive setup guides, troubleshooting, and advanced configurations, see:
- MCP Client Configurations – ⭐ NEW: Complete guide for all MCP clients (LM Studio, Claude Desktop, Cursor, Continue.dev, Cline, OpenAI)
- Remote Client Setup Guide – Step-by-step instructions for Claude Desktop, LM Studio, and ChatGPT
- MCP Server Authentication – Authentication methods and credential management
- REST API Reference – Endpoint documentation and payload examples
- Example Configurations – Ready-to-use config files for all major MCP clients
🎫 Token Management UI
NV oOS 1.0.0 introduces a centralized Token Manager for managing all external agent access tokens across your assistants. Access it via NV oOS → Token Manager in the admin menu.
Features
- Centralized Control - Manage all assistant credentials in one place
- Security Best Practice - Tokens shown only once after creation (cannot be retrieved later)
- Lifecycle Management - Create, view, revoke, and delete credentials
- Audit Trail - Track who created/revoked each token and when
- Metadata Display - See creation date, status (active/revoked), associated assistant
- Bulk Visibility - View credentials across all assistants at a glance
How It Works
The Token Manager follows industry standards similar to GitHub Personal Access Tokens, Stripe API keys, and Auth0 credentials:
- Create Token - Generate new credentials from the assistant editor
- Copy Immediately - Token shown once and cannot be retrieved later
- Use in MCP Clients - Configure external applications (Codex CLI, MCP clients, custom integrations)
- Revoke When Needed - Disable compromised tokens without deleting audit history
- Delete When Done - Permanently remove tokens and all metadata
Security Notes
- Tokens are hashed before storage (only hash stored, never plaintext)
- Requires
manage_optionscapability - All actions logged with user attribution
- Revoked tokens cannot be reactivated (must create new)
- HTTPS strongly recommended for token transmission
Usage Example
# In assistant edit
*(README truncated for size)*