Skip to content

MCP in Lite - #3294

Open
Crabcyborg wants to merge 10 commits into
masterfrom
mcp
Open

Crabcyborg wants to merge 10 commits into
masterfrom
mcp

Conversation

@Crabcyborg

@Crabcyborg Crabcyborg commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Pro functionality https://github.com/Strategy11/formidable-pro/pull/6580
Views functionality https://github.com/Strategy11/formidable-views/pull/751
Landing pages functionality https://github.com/Strategy11/formidable-landing/pull/57
Coupons functionality https://github.com/Strategy11/formidable-coupons/pull/33
API add-on compatibility https://github.com/Strategy11/formidable-api/pull/237

Lite includes the following abilities:

DOMAIN         #   ABILITIES
forms          5   list-forms  get-form  create-form  update-form  delete-form
fields         4   list-fields  create-field  update-field  delete-field
entries        3   list-entries  get-entry  delete-entry
styles         3   list-styles  get-style  update-style
form-actions   5   list-form-actions  get-form-action  create-form-action update-form-action  delete-form-action

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 318 files, which is 218 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 23441da0-0356-463c-9e36-5c0e488ba822

📥 Commits

Reviewing files that changed from the base of the PR and between 1b64c62 and 34ede8e.

📒 Files selected for processing (318)
  • .github/workflows/syntax.yml
  • .gitignore
  • _typos.toml
  • classes/controllers/FrmAbilitiesController.php
  • classes/controllers/FrmAbilitiesEntriesController.php
  • classes/controllers/FrmAbilitiesFieldsController.php
  • classes/controllers/FrmAbilitiesFormActionsController.php
  • classes/controllers/FrmAbilitiesFormsController.php
  • classes/controllers/FrmAbilitiesStylesController.php
  • classes/controllers/FrmHooksController.php
  • classes/controllers/FrmMcpController.php
  • classes/controllers/FrmMcpMissingAbilityController.php
  • classes/controllers/FrmMcpSettingsController.php
  • classes/helpers/FrmAbilitiesHelper.php
  • classes/models/FrmMcpAbilityRegistry.php
  • classes/models/FrmMcpCompat.php
  • classes/models/FrmMcpConnection.php
  • classes/models/FrmSettings.php
  • classes/models/FrmStyle.php
  • classes/views/frm-settings/mcp.php
  • lib/composer.json
  • lib/vendor/autoload.php
  • lib/vendor/automattic/jetpack-autoloader/LICENSE.txt
  • lib/vendor/automattic/jetpack-autoloader/src/AutoloadFileWriter.php
  • lib/vendor/automattic/jetpack-autoloader/src/AutoloadGenerator.php
  • lib/vendor/automattic/jetpack-autoloader/src/AutoloadProcessor.php
  • lib/vendor/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php
  • lib/vendor/automattic/jetpack-autoloader/src/ManifestGenerator.php
  • lib/vendor/automattic/jetpack-autoloader/src/autoload.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-autoloader-handler.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-autoloader-locator.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-autoloader.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-container.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-hook-manager.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-latest-autoloader-guard.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-manifest-reader.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-path-processor.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-php-autoloader.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-plugin-locator.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-plugins-handler.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-shutdown-handler.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-version-loader.php
  • lib/vendor/automattic/jetpack-autoloader/src/class-version-selector.php
  • lib/vendor/composer/ClassLoader.php
  • lib/vendor/composer/InstalledVersions.php
  • lib/vendor/composer/LICENSE
  • lib/vendor/composer/autoload_classmap.php
  • lib/vendor/composer/autoload_namespaces.php
  • lib/vendor/composer/autoload_psr4.php
  • lib/vendor/composer/autoload_real.php
  • lib/vendor/composer/autoload_static.php
  • lib/vendor/composer/installed.json
  • lib/vendor/composer/installed.php
  • lib/vendor/composer/platform_check.php
  • lib/vendor/wordpress/mcp-adapter/.gitignore
  • lib/vendor/wordpress/mcp-adapter/LICENSE.md
  • lib/vendor/wordpress/mcp-adapter/includes/Abilities/DiscoverAbilitiesAbility.php
  • lib/vendor/wordpress/mcp-adapter/includes/Abilities/ExecuteAbilityAbility.php
  • lib/vendor/wordpress/mcp-adapter/includes/Abilities/GetAbilityInfoAbility.php
  • lib/vendor/wordpress/mcp-adapter/includes/Abilities/McpAbilityExposure.php
  • lib/vendor/wordpress/mcp-adapter/includes/Abilities/McpAbilityHelperTrait.php
  • lib/vendor/wordpress/mcp-adapter/includes/Autoloader.php
  • lib/vendor/wordpress/mcp-adapter/includes/Cli/McpCommand.php
  • lib/vendor/wordpress/mcp-adapter/includes/Cli/StdioServerBridge.php
  • lib/vendor/wordpress/mcp-adapter/includes/Core/McpAdapter.php
  • lib/vendor/wordpress/mcp-adapter/includes/Core/McpComponentRegistry.php
  • lib/vendor/wordpress/mcp-adapter/includes/Core/McpServer.php
  • lib/vendor/wordpress/mcp-adapter/includes/Core/McpTransportFactory.php
  • lib/vendor/wordpress/mcp-adapter/includes/Core/McpVersionNegotiator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Contracts/McpComponentInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Prompts/Contracts/McpPromptBuilderInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Prompts/McpPrompt.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Prompts/McpPromptBuilder.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Prompts/McpPromptValidator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Prompts/RegisterAbilityAsMcpPrompt.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Resources/McpResource.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Resources/McpResourceValidator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Resources/RegisterAbilityAsMcpResource.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Tools/McpTool.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Tools/McpToolValidator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Tools/RegisterAbilityAsMcpTool.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/AbilityArgumentNormalizer.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/ContentBlockHelper.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/McpAnnotationMapper.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/McpNameSanitizer.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/McpValidator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Domain/Utils/SchemaTransformer.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/HandlerHelperTrait.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/Initialize/InitializeHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/Prompts/PromptsHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/Resources/ResourcesHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/System/SystemHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Handlers/Tools/ToolsHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/ErrorHandling/Contracts/McpErrorHandlerInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/ErrorHandling/ErrorLogMcpErrorHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/ErrorHandling/McpErrorFactory.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/ErrorHandling/NullMcpErrorHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/ConsoleObservabilityHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/Contracts/McpObservabilityHandlerInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/ErrorLogMcpObservabilityHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/FailureReason.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/McpObservabilityHelperTrait.php
  • lib/vendor/wordpress/mcp-adapter/includes/Infrastructure/Observability/NullMcpObservabilityHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Plugin.php
  • lib/vendor/wordpress/mcp-adapter/includes/Servers/DefaultServerFactory.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Contracts/McpRestTransportInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Contracts/McpTransportInterface.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/HttpTransport.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/HttpRequestContext.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/HttpRequestHandler.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/HttpSessionValidator.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/JsonRpcResponseBuilder.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/McpTransportContext.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/McpTransportHelperTrait.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/RequestRouter.php
  • lib/vendor/wordpress/mcp-adapter/includes/Transport/Infrastructure/SessionManager.php
  • lib/vendor/wordpress/mcp-adapter/mcp-adapter.php
  • lib/vendor/wordpress/php-mcp-schema/.gitignore
  • lib/vendor/wordpress/php-mcp-schema/LICENSE.md
  • lib/vendor/wordpress/php-mcp-schema/phpstan.neon
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/BooleanSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitRequestFormParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitRequestFormParamsRequestedSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitRequestURLParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitationCompleteNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/ElicitationCompleteNotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/LegacyTitledEnumSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/NumberSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/StringSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/TitledMultiSelectEnumSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/TitledMultiSelectEnumSchemaItems.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/TitledSingleSelectEnumSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/UntitledMultiSelectEnumSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/UntitledMultiSelectEnumSchemaItems.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/DTO/UntitledSingleSelectEnumSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Factory/ElicitRequestParamsFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Factory/EnumSchemaFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Factory/MultiSelectEnumSchemaFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Factory/PrimitiveSchemaDefinitionFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Factory/SingleSelectEnumSchemaFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Union/ElicitRequestParamsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Union/EnumSchemaInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Union/MultiSelectEnumSchemaInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Union/PrimitiveSchemaDefinitionInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Elicitation/Union/SingleSelectEnumSchemaInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilities.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilitiesElicitation.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilitiesRoots.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilitiesSampling.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilitiesTasks.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Lifecycle/Union/ClientResultInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Roots/DTO/ListRootsRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Roots/DTO/ListRootsResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Roots/DTO/Root.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Roots/DTO/RootsListChangedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/CreateMessageRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/CreateMessageRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/CreateMessageResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/ModelHint.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/ModelPreferences.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/SamplingMessage.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/ToolChoice.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/ToolResultContent.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Sampling/DTO/ToolUseContent.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Tasks/DTO/CreateTaskResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Tasks/DTO/RelatedTaskMetadata.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Tasks/DTO/Task.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Tasks/DTO/TaskMetadata.php
  • lib/vendor/wordpress/php-mcp-schema/src/Client/Tasks/Enum/TaskStatus.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/AbstractDataTransferObject.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/AbstractEnum.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Content/DTO/AudioContent.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Content/DTO/ImageContent.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Content/DTO/TextContent.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/BaseMetadataInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/IconsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/JSONRPCNotificationInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/JSONRPCRequestInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/NotificationParamsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/PaginatedRequestInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/PaginatedResultInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/RequestParamsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/ResourceContentsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/ResourceRequestParamsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/ResultInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/TaskAugmentedRequestParamsInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/WithArrayTransformationInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Contracts/WithJsonSchemaInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Core/DTO/Icon.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/Error.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/JSONRPCErrorResponse.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/JSONRPCNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/JSONRPCRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/JSONRPCResultResponse.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/Notification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/NotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/Request.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/RequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/DTO/RequestParamsMeta.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/Union/JSONRPCMessageInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/JsonRpc/Union/JSONRPCResponseInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Lifecycle/DTO/Implementation.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/McpConstants.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/Annotations.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/BaseMetadata.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/BlobResourceContents.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/CancelledNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/CancelledNotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/EmbeddedResource.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/EmptyResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/GetTaskPayloadRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/GetTaskPayloadRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/GetTaskPayloadResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/Icons.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/InitializeRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/InitializeRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/InitializeResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/InitializedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/PaginatedRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/PaginatedRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/PaginatedResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/PingRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/ProgressNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/ProgressNotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/Result.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/TextResourceContents.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/URLElicitationRequiredError.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Enum/Role.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Factory/ClientNotificationFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Factory/ClientRequestFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Factory/ContentBlockFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Factory/SamplingMessageContentBlockFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Factory/ServerRequestFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Union/ClientNotificationInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Union/ClientRequestInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Union/ContentBlockInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Union/SamplingMessageContentBlockInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Protocol/Union/ServerRequestInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/CancelTaskRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/CancelTaskRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/CancelTaskResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/GetTaskRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/GetTaskRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/GetTaskResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/ListTasksRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/ListTasksResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/TaskAugmentedRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Tasks/DTO/TaskStatusNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Common/Traits/ValidatesRequiredFields.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteRequestParamsArgument.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteRequestParamsContext.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/CompleteResultCompletion.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/PromptReference.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Core/DTO/ResourceTemplateReference.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/DTO/ServerCapabilities.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/DTO/ServerCapabilitiesPrompts.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/DTO/ServerCapabilitiesResources.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/DTO/ServerCapabilitiesTasks.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/DTO/ServerCapabilitiesTools.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/Factory/ServerNotificationFactory.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/Union/ServerNotificationInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Lifecycle/Union/ServerResultInterface.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Logging/DTO/LoggingMessageNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Logging/DTO/LoggingMessageNotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Logging/DTO/SetLevelRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Logging/DTO/SetLevelRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Logging/Enum/LoggingLevel.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/GetPromptRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/GetPromptRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/GetPromptResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/ListPromptsRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/ListPromptsResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/Prompt.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/PromptArgument.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/PromptListChangedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Prompts/DTO/PromptMessage.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ListResourceTemplatesRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ListResourceTemplatesResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ListResourcesRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ListResourcesResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ReadResourceRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ReadResourceRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ReadResourceResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/Resource.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceContents.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceLink.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceListChangedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceTemplate.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceUpdatedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/ResourceUpdatedNotificationParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/SubscribeRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/SubscribeRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/UnsubscribeRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Resources/DTO/UnsubscribeRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/CallToolRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/CallToolRequestParams.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/CallToolResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ListToolsRequest.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ListToolsResult.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/Tool.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ToolAnnotations.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ToolExecution.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ToolInputSchema.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ToolListChangedNotification.php
  • lib/vendor/wordpress/php-mcp-schema/src/Server/Tools/DTO/ToolOutputSchema.php
  • stubs.php
  • tests/phpunit/abilities/test_FrmAbilitiesContract.php
  • tests/phpunit/abilities/test_FrmAbilitiesFormActionsController.php
  • tests/phpunit/entries/test_FrmAbilitiesEntriesController.php
  • tests/phpunit/fields/test_FrmAbilitiesFieldsController.php
  • tests/phpunit/forms/test_FrmAbilitiesFormsController.php
  • tests/phpunit/styles/test_FrmAbilitiesStylesController.php

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@deepsource-io

deepsource-io Bot commented Sep 2, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 1b64c62...34ede8e on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

Important

Some issues found as part of this review are outside of the diff in this pull request and aren't shown in the inline review comments due to GitHub's API limitations. You can see those issues on the DeepSource dashboard.

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
PHP Sep 17, 2026 7:17p.m. Review ↗
JavaScript Sep 17, 2026 7:17p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

*
* @var string
*/
const CATEGORY = 'formidable-forms';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `CATEGORY` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var array
*/
const REQUIRED_CLASSES = array(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `REQUIRED_CLASSES` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var array
*/
const CREATE_SERVER_PARAMS = array(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `CREATE_SERVER_PARAMS` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var array
*/
const REQUIRED_ABILITY_FUNCTIONS = array(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `REQUIRED_ABILITY_FUNCTIONS` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var int
*/
const MIN_PHP_ID = 70400;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `MIN_PHP_ID` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var string
*/
const SERVER_ID = 'formidable-mcp';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `SERVER_ID` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

/**
* @var string
*/
const ROUTE_NAMESPACE = 'mcp';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `ROUTE_NAMESPACE` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

* @return bool
*/
private static function logged_recently( $ability_name, $status ) {
$key = 'frm_mcp_missing_' . md5( $ability_name . '|' . $status );

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use of insecure md5() function found


Using md5(), sha1() function is not recommended to generate secure passwords. Due to its fast nature to compute passwords too quickly, these functions can become really easy to crack a password using brute force attack.

It is recommended to use PHP's password hashing function password_hash() to create a secure password hash.

*
* @var string
*/
const SKILL_RELEASE_TRANSIENT = 'frm_mcp_skill_release';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `SKILL_RELEASE_TRANSIENT` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

*
* @var string
*/
const SKILL_DOWNLOAD_META = 'frm_mcp_skill_download';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility should be explicitly set for `SKILL_DOWNLOAD_META` constant


Visibility (also know as Access Modifiers) can be used to define where it can be accessed. There are three access modifiers available in PHP:

  • public - The class members can be accessed from everywhere. This is default.
  • protected - The class members can be accessed within the class and by classes derived from that class.
  • private - The class members can only be accessed within the class.

The class members(properties, constants, or methods) declared without any explicit visibility keyword are by default considered as public. It is recommended to set visibility explicitly, which increases code readability. In addition, it gives the developer a mental model of where the class member would be accessible, which also leads to a better API design and makes sure that you are not making something public which isn't supposed to be.
Also, as per PSR-12: Extended Coding Style, visibility should be explicitly declared with all class properties, constants and methods.

@Crabcyborg
Crabcyborg marked this pull request as ready for review September 3, 2026 00:25
@garretlaxton

garretlaxton commented Sep 8, 2026

Copy link
Copy Markdown

delete-style and get-style also seem to operate on any WordPress post, not just Formidable styles.

Initialize an MCP session:

SID=$(curl -s -i -u "admin:YOUR_APP_PASS" -X POST "http://ff.local/wp-json/mcp/formidable-mcp" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' \
  | grep -i '^mcp-session-id:' | awk '{print $2}' | tr -d '\r')
echo "$SID"

Call get-style with that unrelated post's ID (read-only):

curl -s -u "admin:YOUR_APP_PASS" -X POST "http://ff.local/wp-json/mcp/formidable-mcp" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"formidable-forms/get-style","parameters":{"id":1}}}}'

This will return "success":true with a fabricated style object named "Hello world!" / post_name: "hello-world", instead of a 404 "invalid style ID" error.

Call delete-style with the same ID:

curl -s -u "admin:YOUR_APP_PASS" -X POST "http://ff.local/wp-json/mcp/formidable-mcp" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SID" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"formidable-forms/delete-style","parameters":{"id":1}}}}'

This returns "success":true claiming a style was deleted, but the post was actually moved to the trash.


assign-style-to-form has a similar issue.

  • Assign the Sample Page's ID (id=2) as your form's style:
curl -s -u "admin:YOUR_APP_PASS" -X POST "http://ff.local/wp-json/mcp/formidable-mcp" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"formidable-forms/assign-style-to-form","parameters":{"form_id":YOUR_FORM_ID,"style_id":2}}}}'

Returns "success": true, "style_id": 2 but it should have rejected 2 since it's not a style.


add-item-to-application reports false success for mismatched item types.

Add a real form's ID, but with the WRONG item_type (it's a form, tag it as view):

curl -s -u "admin:YOUR_APP_PASS" -X POST "http://ff.local/wp-json/mcp/formidable-mcp" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SID" \
  -d '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"formidable-forms/add-item-to-application","parameters":{"application_id":APP_ID,"item_id":YOUR_FORM_ID,"item_type":"view"}}}}'

This returns "success": true, "message": "Item added to application successfully." You can check the application as well to see nothing was ever added.

@garretlaxton

Copy link
Copy Markdown

Every ability fails on empty parameters ({}). list-forms, list-views, list-view-layouts, and list-coupons all fail with a generic error when called with parameters: {}, but succeed instantly if you add literally any key, even a made-up one like {"zzz": 1}.

@Crabcyborg Crabcyborg added this to the 6.36 milestone Sep 16, 2026
@vivi-the-going-merry vivi-the-going-merry Bot added vivi-working Vivi is actively working this and removed vivi-pickup labels Sep 17, 2026
@vivi-the-going-merry

Copy link
Copy Markdown
Contributor

Scoped both non-bot findings on this PR:

delete-style/get-style operating on any post (garretlaxton, Sep 8): already fixed on this branch — FrmAbilitiesStylesController::get_style() guards with is_style_post() before returning. delete-style itself isn't registered here at all; this PR's Styles controller only registers list/get/update-style, matching the PR description. Delete lives in Pro (formidable-pro#6580), tracked separately there.

Empty {} params failing on list-forms/list-views/list-view-layouts/list-coupons (garretlaxton, Sep 10): traced to AbilityArgumentNormalizer::normalize() in the vendored mcp-adapter package (lib/vendor/wordpress/mcp-adapter), not Formidable's own code. For a schema with properties but no top-level default, it returns [] for both null and {} input — the ability's own execute callback never sees a distinction. list-forms (the only one of the four actually registered in this repo) has no top-level default, so it hits this path. list-views/list-view-layouts/list-coupons aren't registered here at all (formidable-views/formidable-coupons). Out of scope for a fix in this repo — either a mcp-adapter fix upstream, or each affected ability adding a top-level schema default (which changes normalizer behavior to return null, letting WP_Ability apply that default instead).

Not claiming further action on either — clearing labels back.

@vivi-the-going-merry vivi-the-going-merry Bot removed the vivi-working Vivi is actively working this label Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants