Secani MCP
Conecte clientes de IA al servidor de protocolo de contexto de modelo autenticado de Secani.
Secani MCP permite que un cliente de IA aprobado trabaje con Secani a través del Protocolo de contexto modelo. El servidor está diseñado para flujos de trabajo de cumplimiento autenticados, con aprobación humana explícita para los cambios.
Qué ofrece Secani MCP
Secani MCP es un servidor MCP remoto para usuarios de Secani. Utiliza autenticación de portador Streamable HTTP y OAuth 2.0 a través de WorkOS.
El punto final de producción es:
https://mcp.secani.com/mcpEl servidor expone una superficie de herramienta pequeña y progresiva:
whoamidescubre organizaciones visibles, espacios de trabajo, alcances de gobernanza y acceso efectivo.discover_capabilitiesencuentra capacidades relevantes para una intención o habilidad;load_skillcarga la guía de flujo de trabajo correspondiente.inspect_schema,search_entities,inspect_entity, yexpand_entityforman el plano de lectura universal. El primer adaptador admite objetos del espacio de trabajo V3.create_inventory_objectyrevise_inventory_objectcrear objetos de inventario o nuevas revisiones inmutables.- Las herramientas de evidencia encuentran, inspeccionan, crean, versionan, califican y asignan evidencia. Se pueden enviar archivos de hasta 512 KiB en línea; Los archivos más grandes, de hasta 10 MiB, utilizan una carga de corta duración y vinculada a hash.
connection_checkyhuman_approval_number_testsiguen estando disponibles como herramientas de diagnóstico aisladas.
Detalles de conexión
| Configuración | Valor |
|---|---|
| Transporte | HTTP transmitible |
| URL del servidor MCP | https://mcp.secani.com/mcp |
| Metadatos de recursos protegidos | https://mcp.secani.com/.well-known/oauth-protected-resource/mcp |
| Autenticación | Token de portador de OAuth 2.0 |
| Alcance requerido | openid |
| Transporte al portador | Authorization encabezamiento |
El punto final de metadatos de recursos protegidos le indica a su cliente MCP qué servidor de autorización de WorkOS utilizar. Configure la URL del servidor en su cliente y luego complete el flujo de OAuth en el cliente cuando se le solicite.
Conectar un cliente MCP
Configuración remota genérica de MCP
Para los clientes que aceptan una definición de servidor MCP remoto, agregue:
{
"mcpServers": {
"secani": {
"url": "https://mcp.secani.com/mcp"
}
}
}El archivo de configuración exacto y la interfaz de usuario de OAuth dependen de su cliente. usa el nombre Secani o secani, asegúrese de que la URL sea exactamente https://mcp.secani.com/mcp, y apruebe la solicitud de inicio de sesión de WorkOS.
Código Claude
Agregue Secani como servidor HTTP MCP remoto:
claude mcp add --transport http secani https://mcp.secani.com/mcpInicie Claude Code y abra su flujo de administración de MCP para autorizar la conexión. El inicio de sesión del navegador es parte de OAuth; no pegue un token de portador en la configuración de su proyecto.
CLI del códice
Agregue el servidor con la URL HTTP:
codex mcp add secani --url https://mcp.secani.com/mcpCuando Codex detecte compatibilidad con OAuth, siga el flujo de autorización del navegador y regrese a la CLI.
Cursor
Agregue el servidor a su configuración MCP:
{
"mcpServers": {
"secani": {
"url": "https://mcp.secani.com/mcp"
}
}
}Inicie el servidor desde el panel MCP del Cursor. El cursor debería pedirle que se autentique antes de que las herramientas protegidas estén disponibles.
Conector personalizado ChatGPT
Si su espacio de trabajo ChatGPT admite conectores MCP remotos personalizados:
- Habilite el modo de desarrollador en la configuración del conector.
- Cree un conector personalizado llamado
Secani. - Establezca la URL del servidor MCP en
https://mcp.secani.com/mcp. - Seleccione autenticación OAuth.
- Complete el flujo de autorización de WorkOS.
La disponibilidad y los nombres de los menús dependen de su plan ChatGPT y la configuración del espacio de trabajo.
Herramientas disponibles
whoami
Llame a esto primero para descubrir áreas de trabajo visibles, hasta 50 ámbitos de gobernanza autorizados por área de trabajo, preparación básica y el estado efectivo de solo lectura o escritura del conector.
discover_capabilities
Opcionalmente, describa la intención actual con intent o seleccione una habilidad registrada. La respuesta contiene solo capacidades relevantes disponibles en el modo de conector actual, herramientas de habilidades no disponibles y recuentos de conjuntos de herramientas compactos. Convex todavía aplica la autorización en cada llamada posterior.
load_skill
Carga la guía de flujo de trabajo de Secani versionada, como explore-workspace-context, change-inventory-object, o curate-evidence, incluyendo enlaces de referencia enfocados. Una habilidad organiza herramientas públicas pero no otorga permisos adicionales ni expone herramientas adicionales. Secani usa las mismas habilidades y nombres de herramientas.
inspect_schema
Carga clases de objetos y metadatos de campos orientados a agentes para un ámbito de gobernanza autorizado. La respuesta incluye sugerencias de volatilidad, recuperación y sensibilidad del contrato de contexto del agente V3 existente.
search
Busca objetos del espacio de trabajo, tareas, requisitos del marco y artefactos de evidencia en una sola llamada y devuelve referencias compactas agrupadas por tipo de entidad con señales explícitas por sección (ok, unauthorized, unavailable, skipped). scope: "auto" selecciona el límite nativo por tipo de entidad: espacio de trabajo para inventario y tareas, alcance de gobernanza actual para requisitos y evidencia. Usar entityKinds para limitar el descubrimiento y establecer scope sólo cuando se requiere explícitamente un límite. Las consultas estructuradas pertenecen al list_* herramientas y golpes decisivos al emparejamiento inspect/get herramienta.
search_entities
Ejecuta la búsqueda híbrida léxica y semántica existente dentro de una línea base de alcance de gobernanza autorizada y devuelve referencias clasificadas en lugar de registros completos. Las referencias decisivas deben inspeccionarse antes de razonar o proponer un cambio.
inspect_entity
Carga el estado actual compacto y con integridad comprobada para una entidad incluida en la línea base de alcance de gobernanza autorizada y anuncia un contexto opcional sin cargarlo en el contexto del modelo.
expand_entity
Carga un segmento acotado anunciado por inspect_entity: relaciones autorizadas, estado volátil o necesidad de protección. Otros dominios permanecen detrás de proyecciones seguras dedicadas en lugar de acceso a registros sin procesar.
list_implementations, get_implementation, y list_implementation_coverage
list_implementations enumera las implementaciones activas (medidas) del espacio de trabajo con título, tipo, modo de provisión y pines de revisión, opcionalmente filtrados por kind o provisionMode. get_implementation carga exactamente una implementación y acepta el título exacto además del ID de Convex. list_implementation_coverage responde "¿cómo se implementa el requisito X?": enumera los objetivos de requisitos de un enlace de marco (referenciados por ID, frameworkKey, o nombre) con la implementación vinculada y el estado del vínculo (unimplemented, partial, implemented, unresolved), opcionalmente restringido por un código/title buscar o linkStatus.
list_findings y get_finding
list_findings enumera los hallazgos de la evaluación activa del espacio de trabajo con gravedad, disposición, categoría, pines de origen y el problema de corrección vinculado, opcionalmente filtrado del lado del servidor por severity, disposition, o category. get_finding carga exactamente un hallazgo y acepta el formato legible por humanos findingKey además del ID de Convex.
list_risks y get_risk
list_risks enumera los riesgos activos del espacio de trabajo con título, categoría, inherentes/residual puntuaciones y niveles, estrategia y estado, opcionalmente filtrados del lado del servidor por category, status, strategy, o residualLevel. get_risk carga exactamente un riesgo, incluidos sus campos de gobernanza, y acepta la versión legible por humanos. riskKey o el título exacto además del ID de Convex.
get_isms_status, list_obligations, y get_obligation
get_isms_status devuelve el estado del SGSI de un ámbito de gobernanza como isms-status/v1: límites, marcos con aplicabilidad y distribución de implementación, riesgos, evidencia, evaluaciones, hallazgos, aseguramiento y las etapas derivadas con la siguiente herramienta para cada uno. list_obligations hojear el registro de obligaciones del espacio de trabajo; get_obligation carga exactamente una obligación por ID de Convex o título exacto.
Construcción SGSI: create_scope, attach_framework, save_risk, save_measure, set_applicability, save_obligation, y record_assessment
Estas acciones construyen y mantienen el SGSI después de una aprobación explícita y escriben a través de los mismos comandos de dominio que la aplicación Secani con el usuario como actor. Cada uno espera organizationSlug, workspaceSlug, a governanceScopeId para herramientas de alcance limitado y un elegido por el cliente requestId (UUID); repetir una llamada con el mismo requestId se reanuda de forma idempotente. attach_framework adjunta un marco disponible por frameworkKey o nombre e informa uno ya adjunto con alreadyAttached. save_risk, save_measure, y save_obligation crear sin id y actualizar con id (solo cambian los campos indicados). save_measure vincula hasta diez códigos de requisitos a través de implements. set_applicability decide hasta 25 requisitos en una sola aprobación; not_applicable y conditional requieren un rationale, que se almacena cifrado. record_assessment inicia y completa una ejecución de evaluación manual para un requisito y, opcionalmente, genera un hallazgo para not_satisfied. Informe de acciones de varios pasos PARTIAL_FAILURE con los pasos aplicados en caso de fallo parcial.
list_tasks y get_task
list_tasks enumera las tareas actuales del espacio de trabajo (elementos de trabajo) con título, estado del flujo de trabajo, prioridad, correo electrónico del asignado y pines de revisión; todos los filtros (workflowState, priority, assignee como un correo electrónico o "me", lifecycleStatus, updatedAfter) ejecutar en el lado del servidor. get_task carga exactamente una tarea con los pines de revisión actuales autorizados para escrituras posteriores.
create_inventory_object
Crea exactamente un objeto nuevo (por ejemplo, una aplicación) en el inventario del espacio de trabajo determinado después de la aprobación explícita. El servidor utiliza el mismo comando de dominio V3 que el cuadro de diálogo de inventario de Secani, escribe un evento de auditoría con un actor de IA y nunca agrega el objeto a un alcance de gobernanza automáticamente.
Aporte:
{
"organizationSlug": "acme",
"workspaceSlug": "cloud-platform",
"governanceScopeId": "<from whoami>",
"objectClassCode": "application",
"name": "test",
"description": "optional",
"requestId": "<uuid>"
}El servidor solicita la aprobación del formulario MCP antes de escribir. Rechazar o cancelar no cambia nada. Los clientes que no pueden responder a las aprobaciones de formularios reciben un error y no se escribe nada. requestId es la clave de idempotencia: repetir la llamada con el mismo ID y contenido devuelve el objeto existente en lugar de un duplicado. El ámbito de gobernanza se utiliza sólo para autorización (inventory.create en ese ámbito); Los conectores de sólo lectura no pueden ejecutar la acción.
revise_inventory_object
Crea una nueva revisión inmutable de un objeto de inventario existente después de la aprobación. La llamada requiere el ID del objeto más el ID de la revisión actual y el hash de contenido devuelto por inspect_entity. Puede cambiar o eliminar el nombre, la descripción y los atributos relevantes para la revisión. Si el estado actual cambia entre la inspección y la escritura, Secani regresa STALE_CURRENT en lugar de sobrescribir otro cambio.
Flujo de trabajo de evidencia
Para declaraciones de formato libre sobre un dominio de información, search_framework_requirements devuelve candidatos delimitados del título, declaración, guía y sus partes OSCAL anidadas dentro de un enlace de marco seleccionado. El rango de descubrimiento no es confianza ni una decisión de cumplimiento. Cargue cada candidato utilizado en una conclusión con inspect_framework_requirement; sus detalles autorizados incluyen texto de catálogo ensamblado delimitado, parámetros, propiedades, aplicabilidad y pines de destino y encuadernación actuales. Revelar partial, truncated, o textTruncated resultados y dejar la elección a un humano cuando varios candidatos sean plausibles.
La superficie Evidencia mantiene distintos cuatro estados de dominio:
list_evidence_artifactsyinspect_evidence_artifactlocalizar evidencia existente y su versión inmutable actual.create_evidence_artifactcrea una referencia o archivo HTTPS;add_evidence_versionactualiza su contenido agregando una versión sin sobrescribir el historial.record_evidence_factcalifica una versión de artefacto anclado como una declaración admitida sobre una revisión de objeto anclado.link_evidence_usageasigna ese hecho a un requisito de marco fijado. Sólo este paso exitoso constituye una asignación de dominio.
list_framework_bindings, list_requirement_targets, search_framework_requirements, inspect_framework_requirement, y list_evidence_subjects proporcione los pines actuales requeridos y el contexto del catálogo. Las herramientas de lectura con alcance vinculante aceptan la frameworkKey (p.ej. iso27001) o el nombre del marco como scopeFrameworkBindingId además del ID de Convex, y inspect_framework_requirement también acepta el código de requisito (p. ej. A.8.5) como requirementTargetId; la resolución ocurre en el lado del servidor, las referencias ambiguas fallan con AMBIGUOUS_REFERENCE y una lista de candidatos, y las respuestas siempre llevan la identificación canónica resuelta. list_requirement_targets y list_evidence_artifacts apoyo adicional fields para limitar cada fila a los atributos seleccionados más los pines de identificación siempre incluidos, y whoami ofrece una llamada de identidad ligera sin expansión de alcance a través de includeScopes=false. Para preguntas sobre la estructura del catálogo, list_requirement_hierarchy devuelve exactamente un nivel del grupo de un enlace y la jerarquía de control (grupos de nivel superior sin parentElementId, los hijos de un elemento con él), y get_requirement_element lee exactamente un elemento con declaración, orientación, parámetros y, para controles evaluables, las referencias de destino fijadas. Los cuatro escritos de evidencia requieren aprobación, son idempotentes por requestId, y registrar la procedencia de la IA. Los archivos de hasta 512 KiB utilizan base64 canónica. Para archivos más grandes, la acción devuelve un ticket de carga de dos minutos después de la aprobación; el cliente envía los bytes sin cambios con el mismo portador de OAuth. Secani verifica el tamaño exacto y SHA-256 antes de almacenar cualquier cosa.
connection_check
Utilice esta herramienta de solo lectura para verificar la conexión después de la autorización de OAuth.
Aporte:
{
"echo": "optional diagnostic text"
}La respuesta confirma el usuario autenticado de Secani y la identidad del cliente MCP. Es útil como primera llamada después de conectar un nuevo cliente.
human_approval_number_test
Utilice esta herramienta para probar un flujo de trabajo completo con intervención humana. Propone un número entero y pide al usuario que acepte, rechace o cancele el cambio.
Aporte:
{
"value": 42,
"fieldLabel": "MCP-Testwert"
}Después de la aprobación, Secani almacena el valor en el campo de prueba del cuadro de diálogo Configuración. Si el cliente no puede mostrar la obtención del formulario MCP, el valor solicitado se trata como aprobado por el respaldo de compatibilidad del servidor. La herramienta aún requiere un usuario Secani autenticado y un secreto de prueba configurado.
Flujo de trabajo recomendado
- Agregar
https://mcp.secani.com/mcpa su cliente. - Complete la autorización OAuth con la cuenta de WorkOS que debe acceder a Secani.
- Llamar
whoamiy seleccione un espacio de trabajo visible y un alcance de gobernanza listo para la línea base. - Usar
discover_capabilitiespara la intención actual. - Inspeccione el esquema cuando el significado del campo no esté claro; iniciar el descubrimiento no estructurado con
search, luego usa la combinacióninspect/getherramienta.search_entitiespermanece disponible como punto final de compatibilidad del alcance de la gobernanza. - Usar
create_inventory_objectpara objetos nuevos o, después de una inspección actual,revise_inventory_objectpara cambios. - Carga
curate-evidencepara el trabajo de evidencia, conserve cada revisión y hash devueltos, y mantenga distintos los artefactos, hechos y usos. - Usar
connection_checkohuman_approval_number_testsolo para su propósito de diagnóstico específico, y aprobar cambios solo para pruebas intencionales.
Solución de problemas
El cliente informa 401 Unauthorized
El servidor requiere un token portador de OAuth válido para las solicitudes de MCP. Vuelva a abrir el flujo de autorización MCP del cliente y confirme que la cuenta haya completado el inicio de sesión en WorkOS. No reemplace la URL de MCP con la URL del emisor de OAuth.
El descubrimiento de OAuth falla
Verifique que el cliente esté utilizando el punto final de producción y pueda alcanzar:
https://mcp.secani.com/.well-known/oauth-protected-resource/mcpLa respuesta de metadatos dirige al cliente al servidor de autorización correcto y declara la información requerida. openid alcance.
El mensaje de aprobación no aparece
Es posible que el cliente no admita la obtención del formulario MCP. Actualice el cliente si es posible. Secani tiene un respaldo de compatibilidad para esta herramienta de prueba, pero aún así debe revisar el valor propuesto antes de permitir que continúe la llamada.
El punto final se abre como una página web.
El punto final de MCP es un transporte de máquina a máquina, no un panel de control de cara humana. Utilice un cliente MCP y el flujo OAuth en lugar de una sesión de navegador normal. La información de MCP legible por humanos está disponible en secani.com/docs/mcp.
Guía de seguridad
- Verifique el nombre de host antes de autorizar:
mcp.secani.comes el anfitrión oficial de Secani MCP. - Utilice OAuth a través de su cliente MCP; nunca confirme ni pegue tokens de portador en archivos fuente, mensajes o rastreadores de problemas.
- Revise el nombre del cliente, la cuenta solicitada y el alcance antes de aprobar el acceso.
- Trate las acciones de escritura de inventario, evidencia y diagnóstico como herramientas mutantes y mantenga habilitadas las aprobaciones de formularios.
- Mantenga habilitada la confirmación humana para los flujos de trabajo que pueden realizar cambios.
- Conecte únicamente clientes MCP y extensiones en los que confíe. Un cliente autorizado puede enviar solicitudes como usuario Secani conectado.
Permisos y acceso API
Cómo Secani aplica privilegios mínimos entre organizaciones, espacios de trabajo, ámbitos de gobernanza, agentes y claves API de OSCAL.
Descripción general
Conozca el estándar OSCAL y cómo encajan el conjunto de herramientas de Secani, la CLI planificada y las habilidades de los agentes.