MemberPress AI Foundation aplica cuatro medidas de seguridad a las operaciones de escritura del Protocolo de Contexto del Modelo (MCP). Estas medidas protegen un sitio frente a cambios involuntarios o no autorizados cuando un cliente de IA se conecta a través del servidor MCP. Funcionan de forma conjunta. Una sola llamada de escritura puede pasar por comprobaciones de ámbito, valores predeterminados de vista previa, una puerta de confirmación y el interruptor de emergencia antes de modificar los datos.
En esta guía se explica cada medida, contra qué protege y cómo la aplica el servidor MCP. Hay dos medidas que se activan cuando un cliente de IA invoca una herramienta: los tokens de confirmación y los valores predeterminados de simulación. Una medida regula el vocabulario de ámbito que lleva un token de conexión: los ámbitos granulares. Otra medida permite al administrador detener al instante cualquier escritura destructiva: el «kill switch».
Cómo funciona la capa de seguridad
Las cuatro medidas se corresponden con cuatro preguntas distintas sobre una operación de escritura:
| Medida | Nombre | La pregunta a la que responde |
|---|---|---|
| A | Tokens de confirmación | ¿Qué puede HACER un token cuando se ejecuta una herramienta destructiva? |
| B | Valores predeterminados de la simulación | ¿En qué modo se inicia por defecto una herramienta de escritura cuando se ejecuta? |
| C | Ámbitos granulares | ¿Qué vocabulario de ámbito contiene un token de conexión? |
| D | Interruptor de emergencia | ¿Puede un administrador detener todas las operaciones de escritura destructivas a la vez? |
Las medidas A, B y D se ejecutan en el momento de la llamada a la herramienta. El servidor MCP las evalúa dentro de Server::handle_tool_call en cada solicitud de escritura. La Medida C actúa en dos momentos. En el momento de la llamada a la herramienta, el servidor compara el ámbito requerido por la herramienta con los ámbitos concedidos por el token. En el momento de la emisión del token, el límite de acceso predeterminado restringe los ámbitos que recibe una nueva conexión.
Las cuatro medidas se recogen en el MemberPressAI\MCP espacio de nombres y se ejecutan en el lado del servidor. Un cliente de IA no puede eludirlas modificando la forma en que se formula la solicitud, ya que la aplicación de las restricciones se produce después de que la solicitud llegue al servidor, no en el cliente.
Medida A — Tokens de confirmación
Los tokens de confirmación protegen las operaciones destructivas mediante un flujo obligatorio de dos llamadas. Una herramienta destructiva no puede ejecutarse con una sola llamada. La primera llamada devuelve una vista previa y un token de un solo uso; la segunda llamada debe incluir ese token para poder ejecutarse.
Existe una excepción muy limitada: Las acciones reversibles se saltan la puerta. memberpress_gestionar_suscripción con acción: "reanudar" y memberpress_manage_sub_account con acción: "añadir" deshacer en lugar de destruir, y ejecutarse sin token. Una única lista de permitidos compartida rige la exención tanto en el punto final de MCP como en la interfaz de capacidades de WordPress, por lo que ambos controles no pueden divergir. Cualquier otra llamada destructiva requiere el token.
Hay seis herramientas que son destructivas y requieren este proceso:
| Herramienta | Para qué sirve |
|---|---|
memberpress_delete_member | Elimina a un miembro |
transacción de reembolso de MemberPress | Reembolsa una transacción |
memberpress_delete_webhook | Elimina un webhook |
memberpress_reset_course_progress | Restablece el progreso de un alumno en el curso |
memberpress_manage_sub_account | Gestiona una subcuenta corporativa |
memberpress_gestionar_suscripción | Gestiona una suscripción |
Cómo funciona el flujo de dos llamadas
- El cliente de IA invoca la herramienta destructiva con sus argumentos. El servidor devuelve una vista previa del efecto, además de un token de confirmación.
- El cliente de IA vuelve a llamar a la misma herramienta con los mismos argumentos, además de un
confirmarparámetro establecido en el valor del token. El servidor verifica el token y ejecuta la operación.
El token cuenta con tres medidas de protección. Caduca tras 60 segundos (el TTL constante en Tokens de confirmación). Es de un solo uso: el servidor lo consume en la llamada que se está ejecutando. El servidor lo vincula a la combinación exacta de nombre de la herramienta, argumentos e ID de usuario. Un token emitido para una operación no puede autorizar otra diferente.
La justificación del diseño, según el equipo de desarrollo: “Limitarse a pasar un valor booleano no constituye un consentimiento lo suficientemente firme para una acción que no se puede deshacer”. Un token de confirmación demuestra que el usuario que realiza la llamada ha visto la vista previa específica de esa operación concreta antes de confirmarla.
La respuesta a la primera llamada
La primera llamada devuelve una vista previa del efecto, de un solo uso token_de_confirmación, y el tiempo de vida restante del token. A continuación se muestra la respuesta de un transacción de reembolso de MemberPress Llamada de prueba:
{
"preview": {
"dry_run": true,
"action": "refund_transaction",
"preview": {
"transaction_id": 432,
"amount": "100,00",
"total": "100,00",
"user_id": "",
"product_id": 2332,
"subscription_listing_may_show_inactive": true,
"subscription_listing_note": "Si esta era la última transacción asociada a la suscripción, la lista de suscripciones del administrador de WordPress mostrará la suscripción como "Activa: No"; esa columna se deriva del estado de la última transacción, no del propio registro de la suscripción. El registro de la suscripción no se modifica a menos que elijas cancelar la suscripción como parte de este reembolso."
}
},
"confirmation_token": "ct_",
"expires_in": 60,
"next_step": "Vuelve a llamar a memberpress_refund_transaction con los mismos argumentos y añade confirm: \"ct_\" para ejecutarla."
}
El token llega a token_de_confirmación. En caduca en El campo indica el tiempo de vida restante en segundos. El siguiente paso El campo indica exactamente cómo ejecutarlo. El interior vista previa.vista previa El objeto describe el efecto de la operación; sus campos varían según la herramienta. El subscription_listing_* Los campos que se muestran aquí son específicos de los reembolsos; los documentos «Referencia de herramientas» y «Errores» recogen los detalles de las respuestas relativas a los reembolsos.
Cuando un token no es válido
Un token que haya caducado, que ya se haya utilizado o que se presente con argumentos modificados genera un único error. El servidor no distingue entre estas tres causas:
{
"code": -32603,
"message": "El token de confirmación no es válido, ha caducado o los argumentos han cambiado. Ejecuta la herramienta sin `confirm` para obtener una vista previa y un token nuevos.",
"data": {
"mp_error_code": "CONFIRMATION_INVALID"
},
"request_id": "req_"
}
Partido en data.mp_error_code (CONFIRMACIÓN_NO VÁLIDA), no el JSON-RPC genérico -32603 código. El procedimiento de recuperación es siempre el mismo: vuelve a ejecutar la herramienta sin confirmar para recibir una vista previa actualizada y un nuevo token.
Medida B — Parámetros predeterminados de la simulación
Las herramientas de escritura están configuradas por defecto en modo de vista previa. Una herramienta de escritura no modifica los datos a menos que quien la invoque opte explícitamente por ejecutarla. Esto evita que un cliente de IA ejecute una mutación que solo pretendía inspeccionar.
Las herramientas de escritura se clasifican en dos tipos:
Escrituras no destructivas (9 herramientas) llevar un ejecutar parámetro. La herramienta muestra una vista previa de forma predeterminada y devuelve una carga útil de vista previa sin guardarla. Al pasar ejecutar: true gestiona la operación en tiempo real. Entre estas herramientas se incluyen memberpress_create_member, memberpress_update_member, memberpress_create_coupon, memberpress_create_subscriptiony memberpress_create_webhookentre otros.
Operaciones destructivas (6 herramientas) no llevar ni lo uno ni lo otro ejecutar ni un parámetro de prueba heredado. Se previsualizan de forma predeterminada y requieren que se ejecute el flujo de token de confirmación de la Medida A. La puerta de dos llamadas es su único mecanismo de ejecución.
Esta distinción permite al lector determinar el nivel de riesgo de una herramienta a partir de sus parámetros. Una herramienta con ejecutar es reversible; una herramienta que no tiene ejecutar y un requisito de confirmación resulta perjudicial.
La vista previa no destructiva de la forma
Una herramienta de escritura no destructiva que se ejecuta sin ejecutar: true devuelve una carga útil de vista previa en formato plano. A continuación se muestra la respuesta de un memberpress_create_member Llamada de prueba:
{
"dry_run": true,
"action": "create_member",
"preview": {
"email": "mcp-preview-test@example.com",
"username": "mcppreviewtest",
"first_name": "MCP",
"last_name": "PreviewTest"
},
"validation": "passed"
}
Este sobre es plano: prueba_sin_carga, acción, vista previay validación se encuentra en el nivel superior y no hay ningún token de confirmación. Se diferencia de una vista previa destructiva, en la que el vista previa El objeto está anidado un nivel más abajo (vista previa.vista previa) y un token_de_confirmación está presente. El validación El campo indica si la entrada previsualizada superaría la validación al ejecutarse.
Medida C — Ámbitos de aplicación detallados
Los tokens de conexión tienen ámbitos específicos, en lugar de un acceso general. Un token con ámbito de lectura de miembros no puede escribir datos de facturación. Esto limita el alcance de cualquier conexión individual exactamente a las operaciones que permiten sus ámbitos.
Vocabulario sobre el ámbito de aplicación
El servidor MCP define los siguientes ámbitos en ScopeMatcher:
| Alcance | Subvenciones |
|---|---|
leer | Acceso de lectura a todos los datos mediante herramientas de lectura |
escribir:contenido | Acceso de escritura al contenido: normas de acceso y cupones |
escribir:miembros | Acceso de escritura a los miembros |
escribir:facturación | Acceso de escritura a la facturación: gestión de suscripciones y reembolsos de transacciones |
escribir:importaciones | Acceso de escritura a las importaciones de miembros |
escribir:webhooks | Acceso de escritura a los webhooks y a los recordatorios por correo electrónico |
escribir:cursos | Acceso de escritura a las operaciones del curso |
completo | Todos los ámbitos de escritura (que cumplan cualquier escribir:* (requisito) |
En leer El ámbito está implícito en cada token. El servidor compara el ámbito requerido por una herramienta con los ámbitos concedidos al token antes de la distribución a través de Server::current_token_has_scope.
El ámbito por sí solo no es el único requisito. Cada herramienta de edición también declara la capacidad de WordPress que necesita (por ejemplo, create_users o editar_usuarios), y el servidor verifica esa capacidad antes del envío. Un token con completo El ámbito sigue sin poder crear usuarios si el propietario del token carece del create_users capacidad. Las dos puertas devuelven errores distintos, y la puerta de ámbito se ejecuta primero: si falta un ámbito, se produce un error con SCOPE_INSUFFICIENT; si falta una capacidad, se produce un error con CAPACIDAD_INSUFICIENTE.
Límite máximo de acceso predeterminado
El límite de acceso predeterminado restringe los ámbitos que el servidor puede asignar a una nueva conexión. El administrador lo configura a través del “Nivel máximo de acceso para nuevas conexiones” ajuste en el Configuración de MCP pestaña. El límite máximo determina el alcance máximo que tiene cualquier nuevo token, independientemente de lo que solicite el cliente que se conecta.
Esta configuración tiene dos opciones: Solo lectura y Acceso completo.
Cuando se configura en Solo lectura, el asistente oculta por completo las casillas de selección de ámbito de escritura —no aparecen atenuadas— y el servidor limita todas las nuevas conexiones al ámbito de lectura. El paso «Acceso» del asistente muestra únicamente el ámbito de lectura, que siempre se concede, con el siguiente aviso:
El administrador del sitio ha establecido el nivel máximo de acceso en «Solo lectura». No se podrán asignar permisos de escritura a las nuevas conexiones hasta que se amplíe este nivel en la configuración de MCP.
Cuando se configura en Acceso completo, en el paso «Acceso» del asistente aparecen las casillas de selección de ámbito de escritura, ya marcadas por defecto, y el administrador desmarca aquellas que no sean necesarias para una conexión. A continuación, la nueva conexión recibe ámbitos de escritura hasta el límite que permiten las capacidades de WordPress del usuario que se conecta.
El límite se aplica del lado del servidor en las cuatro vías de emisión de tokens. Una solicitud creada manualmente no puede eludir la interfaz del asistente para solicitar un ámbito más amplio:
- Creación de fichas de mago;
- OAuth
/autorizar; - OAuth
/tokenintercambio; - Registro dinámico de clientes (RFC 7591).
El límite máximo es una extensión del vocabulario de los ámbitos, no un mecanismo independiente. Solo existe porque la Medida C define los ámbitos a los que se aplica dicho límite.
Medida D — Interruptor de emergencia
El «kill switch» permite al administrador detener al instante cualquier operación de escritura destructiva. Cuando está activo, el servidor rechaza cualquier llamada a herramientas destructivas y devuelve el ESCRITURA_EN_PAUSA error, independientemente de los ámbitos del token de llamada o de cualquier token de confirmación válido.
Un administrador cambia la posición del interruptor de la Clientes conectados a MCP página de administración. El control es un Pausar todas las operaciones de escritura botón. Mientras las escrituras destructivas están activas, la página muestra este estado:
Las operaciones de escritura destructivas están activas: se suspenden los reembolsos, las cancelaciones, las eliminaciones y las importaciones masivas para todos los clientes conectados. Las herramientas de lectura siguen funcionando.
Esta configuración se mantiene incluso tras los guardados periódicos de la configuración, por lo que una actualización rutinaria de la configuración no la desactiva sin previo aviso. El servidor registra admin.writes_paused y admin.writes_resumed registrar eventos en el registro de auditoría cuando el conmutador cambie de estado.
El «kill switch» es la medida de mayor alcance. Las medidas A, B y C limitan operaciones concretas; el «kill switch», en cambio, anula todas ellas de un solo golpe en caso de llamadas destructivas. Es la respuesta adecuada cuando un administrador sospecha que una conexión se está comportando de forma inesperada y desea detener toda actividad destructiva antes de investigar.
La respuesta WRITES_PAUSED
Mientras el «kill switch» esté activo, todas las llamadas a herramientas destructivas fallarán con esta respuesta, independientemente de los ámbitos del token de llamada o de cualquier token de confirmación válido:
{
"code": -32603,
"message": "Las escrituras destructivas han sido suspendidas por un administrador. Inténtalo de nuevo más tarde o ponte en contacto con el propietario del sitio.",
"data": {
"mp_error_code": "WRITES_PAUSED"
},
"request_id": "req_"
}
El conmutador controla toda la ruta de escritura destructiva: incluso la primera llamada (de vista previa) a una herramienta destructiva devuelve ESCRITURA_EN_PAUSA, por lo que el proceso de confirmación no puede iniciarse. Al igual que con todos los errores de la herramienta, comprueba si coincide con data.mp_error_code (ESCRITURA_EN_PAUSA), no el genérico -32603.
Funcionalidades relacionadas
Las capacidades de WordPress salen a la luz
En WordPress 6.9 y versiones posteriores, AI Foundation también registra herramientas a través de la API de capacidades de WordPress, accesible mediante el adaptador MCP de WordPress.org. Se trata de una segunda interfaz programática que permite acceder a las mismas operaciones subyacentes que el punto final MCP, con tres diferencias técnicas:
- Control de vista previa. Las operaciones de escritura en la superficie de Abilities exponen un
prueba_sin_cargaparámetro: se previsualizan por defecto, y el llamante pasadry_run: falsepara ejecutarse en tiempo real — donde el punto final MCP utilizaejecutar: trueen cambio; - Puerta de escritura. El acceso de escritura a través de la interfaz «Abilities» está restringido a la
mpai_use_mcp_writecapacidad; - Cobertura. La superficie registra las familias de herramientas principales; las superficies de herramientas complementarias solo se muestran a través de MCP.
El modelo de seguridad se mantiene: la superficie impone los mismos requisitos de capacidades de WordPress por herramienta, las operaciones destructivas requieren el mismo flujo de token de confirmación (incluida la misma exención de acción reversible) y el «kill switch» detiene las escrituras destructivas de «Abilities» del mismo modo que detiene las escrituras de MCP. El hecho de acceder a las operaciones a través de un protocolo diferente no suelta las restricciones.
Registro de actividades
El registro de actividades recoge los eventos de la herramienta MCP con fines de auditoría y resolución de problemas. Se encuentra en el Clientes conectados a MCP pestaña y muestra cada evento en cuatro columnas: Tiempo, Cliente, Herramientay Resultado. En Resultado La columna muestra el código de resultado almacenado para cada llamada — éxito, error, se requiere confirmación, confirmación_no_válida, confirmación_carrera_perdida, alcance_insuficiente, capacidad_insuficiente, escritura_en_pausa, y un pequeño conjunto de códigos de error relacionados con la vista previa y la codificación.
El registro permite auditar el flujo de confirmación de operaciones destructivas: los registros de llamadas de vista previa de una herramienta destructiva se requiere confirmación, y sus registros de ejecución éxito — ambas llamadas se pueden distinguir. Tanto la vista previa como la ejecución en tiempo real de una herramienta no destructiva se registran éxito; los argumentos de las llamadas nunca se registran en el registro de forma deliberada, por lo que el registro no recoge si ejecutar se aprobó. El plazo de conservación de los registros viene regulado por la Conservación de registros ajuste en el Configuración de MCP pestaña (por defecto 30 días).
Nota sobre el comportamiento de los clientes de IA
Algunos clientes de MCP completan automáticamente el flujo de confirmación de dos llamadas sin mostrar el paso de confirmación al usuario. Un cliente puede mostrar una vista previa y, a continuación, realizar la segunda llamada internamente, de modo que la operación parezca ejecutarse en un solo paso. Se trata de un comportamiento del flujo de trabajo del lado del cliente, no de una brecha en la capa de seguridad. El servidor sigue exigiendo el requisito de las dos llamadas, y el cliente proporciona un token válido en la segunda llamada.
Para observar directamente la puerta de confirmación, utiliza una herramienta que envíe cada solicitud de forma explícita, como Postman o rizo. Un cliente que abstrae el flujo oculta las dos llamadas, pero el servidor sigue necesitando ambas.
Documentación relacionada
- Guía general y de configuración de MemberPress AI Foundation — qué es AI Foundation, cómo instalarlo y cómo conectar los clientes de IA;
- Referencia de herramientas MCP de MemberPress AI Foundation — el catálogo completo de herramientas, incluyendo cuáles son destructivas y qué alcance requiere cada una;
- Errores y resolución de problemas de la certificación MCP de MemberPress AI Foundation — el catálogo completo de errores, que incluye
ESCRITURA_EN_PAUSAyCAPACIDAD_INSUFICIENTE; - Conexión de clientes de IA a MemberPress — cómo el servidor establece las conexiones y asigna los ámbitos durante la configuración.