Agentes de IA y MCP
Los agentes de IA están en producción y necesitan pedir permiso a personas con seguridad, trazabilidad y poca fricción. notific.me les da dos caminos: el SDK y el servidor MCP oficial.
El servidor MCP tiene dos funciones:
- Humano en el circuito. El agente pide aprobación o hace una pregunta y espera la respuesta firmada. También avisa lo que está haciendo.
- Administración del workspace. Configura y audita todo el workspace (servicios, tokens, reglas, hooks, webhooks, auditoría, uso), siempre limitado a los alcances del token y, por defecto, con aprobación humana en cada escritura.
Conexión
Sección titulada «Conexión»| Elemento | Valor |
|---|---|
| Transporte | Streamable HTTP, sin sesión, respuestas JSON |
| URL | https://<api>/v0/mcp |
| Autenticación | Authorization: Bearer nm_svc_… (token de servicio) |
| Herramientas | Solo las que permiten los alcances del token (tools/list ya viene filtrado) |
Crea un servicio de tipo agente de IA en Servicios y tokens y luego un token. La pantalla Agentes de app.notific.me muestra los comandos exactos de tu cuenta.
claude mcp add --transport http notificme https://api.notific.me/v0/mcp --header "Authorization: Bearer nm_svc_..."{ "mcpServers": { "notificme": { "type": "http", "url": "https://api.notific.me/v0/mcp", "headers": { "Authorization": "Bearer nm_svc_..." } } }}Herramientas
Sección titulada «Herramientas»| Herramienta | Alcance | Qué hace |
|---|---|---|
whoami |
cualquiera | Workspace, servicio, alcances, alcances bloqueados, límites y herramientas disponibles. |
request_approval |
asks:write (+asks:read para esperar) |
Pregunta sí/no con resumen, detalles, riesgo, nivel y plazo. Espera hasta 55 s por llamada y devuelve approved, status, note y as_text. |
ask_human |
asks:write |
Grupo de preguntas completo (sí/no, opciones, texto, número, fecha), con espera opcional. |
get_answer |
asks:read |
Estado y respuesta de una pregunta (long-poll hasta 55 s). |
notify |
events:write |
Envía un evento: título, resumen, severidad, tipo, card_id para tarjetas vivas, dedup_key, ttl, expires_when. |
Con workspace:read, el agente puede leer todo (list_rules, simulate_event, search_events, get_usage…). Con alcances de escritura obtiene create_rule, put_hook, create_token, resend_webhook y otras. audit:read agrega search_audit y list_agent_activity.
Recursos: notificme://guide (la guía del agente: cómo preguntar, niveles, buenas prácticas, qué es texto no confiable), notificme://schemas/{event,question-set,card,reply} y notificme://workspace.
Prompts: human_approval_gate, audit_review y design_rules.
Aprobación humana para escrituras
Sección titulada «Aprobación humana para escrituras»Cada token tiene approval_scopes: alcances de escritura que necesitan la aprobación de una persona cada vez que se usan. Los tokens de servicios ai_agent nacen con la aprobación activada en todos sus alcances de escritura. El bloqueo lo aplica la API, no solo el MCP, así un agente no puede evitarlo llamando a la REST directamente.
- El token intenta una escritura bloqueada y recibe
403 approval_requiredcon el alcance y unrequest_hash. - Pide aprobación con
POST /v0/approvals(método, ruta, cuerpo y motivo). El servidor crea una pregunta para los dueños del workspace mostrando lo que va a pasar, el cuerpo con los secretos enmascarados y el motivo marcado como texto del agente no verificado. - Una persona aprueba o rechaza en la app.
- El token repite exactamente la misma petición con la cabecera
Notificme-Approval: <approval_id>. El servidor verifica token, método, ruta y hash del cuerpo, consume la aprobación (un solo uso, válida 15 minutos) y la ejecuta.
Por MCP esto es automático: la herramienta de escritura devuelve {"status": "approval_pending", "approval_id": …} y wait_for_approval espera la decisión y, si se aprueba, ejecuta la operación guardada.
Reglas de seguridad
Sección titulada «Reglas de seguridad»- Fail closed: cualquier ruta del workspace sin alcance asignado responde 403 a los tokens.
- Un token solo ve su propio workspace.
- Las personas responden, los tokens no:
POST /v0/repliessiempre exige la sesión de una persona. - Invitar personas, cambiar roles, quitar miembros y crear workspaces exigen una persona (
403 user_session_required). - Un token emitido por otro token solo puede tener un subconjunto de sus alcances, debe mantener sus bloqueos de aprobación y vence en 90 días como máximo.
- El texto libre de personas (
note,free_text) y de eventos se marca como no confiable en los resultados de las herramientas. - Cada llamada a una herramienta queda en Agentes → Actividad durante 90 días, sin secretos, y cada escritura aparece en la Auditoría con
via: "mcp"y elapproval_id.