secureFlows MCP Server
Servidor MCP de secureFlows
Servidor MCP desplegable en la nube que envuelve la superficie OpenAPI de secureFlows etiquetada como ai-safe y ai-optional.
Este repositorio es un espejo público, publicado periódicamente desde el monorepo privado de secureFlows donde realmente ocurre el desarrollo. Los problemas y las solicitudes de extracción son bienvenidos; los cambios grandes pueden tardar un ciclo de lanzamiento en llegar primero a la fuente.
¿Qué es un servidor MCP?
Un servidor MCP es un pequeño servicio HTTP que expone un conjunto de "herramientas" que un cliente de IA puede llamar de manera estándar.
En este repositorio:
El servidor MCP de secureFlows expone herramientas que se generan automáticamente a partir de sus especificaciones YAML de OpenAPI.
Cuando un cliente llama a una herramienta, el servidor MCP reenvía la llamada a su backend real de secureFlows (
connection.host) y devuelve la respuesta en un resultado de herramienta normalizado.
Esto permite que un cliente de IA:
descubra las operaciones disponibles de secureFlows mediante
listToolslas llame mediante
callToolsin codificar la superficie de la API ni el cableado manual de autenticación/encabezados
Qué hace
Dos tipos de herramientas, registradas juntas en src/server.ts:
Herramientas generadas (src/tools/build-tools.ts) — una por operación de OpenAPI:
Carga:
docs/openapi/session/secure-flows-session-api.yamldocs/openapi/user/secure-flows-user-api.yamldocs/openapi/docs/secure-flows-docs-api.yaml
Expone solo las operaciones etiquetadas como
ai-safeoai-optionalcomo herramientas MCPReenvía las solicitudes a un host de secureFlows proporcionado por el llamador — un envoltorio HTTP delgado y genérico sin juicio específico de secureFlows. Cada una de estas requiere un token
auth.*activo, por lo que solo son útiles una vez que ya existe una sesión (consulte Modelo de ejecución a continuación).Asigna los encabezados de autenticación de secureFlows desde las entradas de la herramienta MCP:
auth.firebaseTokenauth.sessionTokenauth.userToken
Herramientas estáticas (src/tools/static-tools.ts) — escritas a mano, no generadas a partir de la especificación:
secureflows_build_login_url/secureflows_build_logout_url— construyen las URL de inicio de sesión alojado y de cierre de sesión con redirección correctamente por construcción (siempre/app/sessions/login, nunca la heredada/app/login; rechaza unredirect_uriposterior al cierre de sesión que apunte a/callbacko que filtresession_token). No se requiere token de secureFlows.secureflows_lint_integration— verifica el código fuente de la aplicación generada contra las reglas de integración e informa hallazgos estructurados en lugar de dejarlos como prosa que el agente debe auto-vigilar. No se requiere token de secureFlows. Dos tipos de hallazgo:scope: "file"— una construcción prohibida está presente, en unafile:lineexacta: constantes de configuración de variables de entorno, token enlocalStorage,/app/loginheredado, cierre de sesión confetch/XHR, decodificación de JWT en el cliente, revocación al cerrar sesión,catch {}vacío, restauración desetSession(null)en errores que no son de autenticación, CTA de continuar condicionado asession === null, …scope: "project"— el manejo requerido está ausente en todos los archivos pasados: detectar401/410pero nunca borrar el token, nunca manejar403, o manejar403sin la excepciónBILLING_GRACE_LOCK.
Las comprobaciones de ausencia existen porque las reglas de patrones estructuralmente no podían capturar la clase de defecto que domina las aplicaciones generadas reales. Medido: en la aplicación de una prueba real que el juez LLM del arnés de evaluación calificó con 4/10 — citando "token obsoleto nunca borrado al cerrar sesión", "variantes de 403 sin manejar", "sin manejo de errores" — las reglas de patrones solas produjeron cero hallazgos, porque cada uno de esos errores es una ausencia, y una expresión regular solo puede ver lo que está presente. Con las comprobaciones de ausencia produce 3, incluida la de severidad
errorsobre el borrado de token. Ambos tipos de comprobación se validan contra el iniciador canónicotemplates/web-app-secureflows, que debe permanecer con cero hallazgos.Sigue siendo análisis de texto heurístico, no un analizador sintáctico ni un verificador de tipos: omite lo que no tiene regla, una comprobación de proyecto puede satisfacerse con la palabra clave correcta en el lugar incorrecto, y no puede cubrir las comprobaciones que necesitan una aplicación en ejecución (carreras de montaje del guard de autenticación, la comprobación de recarga fresca). Un primer pase rápido — no un reemplazo de la lista de verificación de implementación del agente en SKILL.md.
Estas herramientas estáticas existen porque las herramientas generadas no pueden ayudar con la parte de una integración que ocurre antes de que exista una sesión — el andamiaje del código de redirección/callback/ciclo de vida del token — que es exactamente donde ocurren la mayoría de los errores de integración de secureFlows.
Utiliza un transporte MCP HTTP sin estado, por lo que el servidor no persiste la configuración del inquilino ni los secretos.
Modelo de ejecución
Cada llamada de herramienta recibe:
connection.host: URL base de secureFlowsconnection.workspaceName: espacio de trabajo predeterminado opcionalconnection.appId: id de aplicación predeterminado opcionalauth.*: el token que necesite el endpoint seleccionado
workspaceName y appId se tratan como configuración estable de la aplicación. El servidor los inyecta en las formas de solicitud conocidas de secureFlows cuando el llamador los omite.
Para agentes (la única ruta de cliente compatible)
Apunte el cliente MCP a la URL alojada — mismo host que el producto, ruta /mcp (no un subdominio):
Entorno | URL MCP |
Producción |
|
Staging |
|
Salud |
|
{
"mcpServers": {
"secureflows": {
"url": "https://www.secure-flows.com/mcp"
}
}
}No les diga a los agentes que ejecuten npx ni que usen localhost — eso divide la historia y rompe a cualquiera que nunca inicie un proceso local. Conectado en la imagen Docker web (Node en 127.0.0.1:8787, nginx location = /mcp; consulte docs/ROUTING.md). El proceso Node instala guardas de uncaughtException / unhandledRejection para que una sola solicitud incorrecta no salga del proceso; docker/entrypoint.sh también reinicia MCP si el proceso aún sale.
Desarrollo local (mantenedores de este paquete)
cd mcp-server
npm install
npm run build
npm test
npm run devEl servidor se inicia en http://0.0.0.0:8787 de forma predeterminada (POST /mcp, GET /health). Esto es para
cambiar el propio servidor MCP — no la ruta que los agentes del producto deben configurar.
Variables de entorno
PORT: puerto HTTP, predeterminado8787(en el contenedor web, el entrypoint establecePORT=8787solo para el hijo MCP para que nginx mantenga el$PORTpúblico de Render)HOST: host de enlace, predeterminado0.0.0.0(el contenedor web usa127.0.0.1)ALLOWED_HOSTS: lista de hosts permitidos opcional separada por comas para la validación del encabezado Host de MCPMCP_ALLOWED_HOSTS: anulación del entrypoint paraALLOWED_HOSTSal iniciar el proceso en la imagen
Endpoints
POST /mcp: endpoint HTTP transmisible de MCPGET /health: verificación de salud (expuesta públicamente comoGET /mcp/healtha través de nginx)
Incrustar secureFlows en una aplicación
Las aplicaciones de producto se integran directamente con las API HTTP de secureFlows y el inicio de sesión alojado. Comience desde:
docs/integration/quickstart.md— aprovisionamiento (espacio de trabajo + aplicación) e inicio de sesión alojado en tiempo de ejecucióndocs/integration/CONCEPT.md— orden de línea base: inicio de sesión → crear espacio de trabajo antes de las funciones avanzadasdocs/openapi/integration-auth.yaml—/app/sessions/login(aplicaciones de sesión) vs/app/login(heredado/consola)
Las aplicaciones de producto aún se integran directamente con las API HTTP anteriores, no a través de este servidor. Las
herramientas generadas aquí son para agentes/automatización que ya tienen un token (pruebas, verificación
scriptada). Las herramientas estáticas (secureflows_build_login_url, secureflows_build_logout_url,
secureflows_lint_integration) no necesitan token y están destinadas a ser llamadas por un agente de codificación mientras
aún está andamiando la integración — consulte Qué hace arriba.
Pruebas de este servidor MCP
npm testenmcp-server/— pruebas unitarias más prueba de humo HTTP (test/http-smoke.test.ts): inicia la aplicación Express en un puerto efímero, verificaGET /health,GET /mcp→ 405, y un cliente real de Streamable-HTTPlistTools+callTool(secureflows_build_login_url).Después del despliegue: Playwright
tests/smoke/mcp-health.spec.tsgolpea el públicoGET /mcp/healthyGET /mcpen el host objetivo (trabajo de humo de producción).Bucle local del mantenedor:
npm run dev, luegocurl -sS http://127.0.0.1:8787/health.Opcional: cliente MCP contra
POST /mcpconconnection.host+auth.*para herramientas generadas.
Despliegue
Enviado dentro de la imagen Docker web y proxy en /mcp en www.secure-flows.com / staging
(consulte Para agentes arriba). Sin subdominio separado.
El paquete npm secureflows-mcp-server es cómo CI publica un artefacto versionado (y cómo un
contenedor independiente se puede construir desde mcp-server/Dockerfile); no es la ruta de configuración
orientada al agente. Publique en etiquetas v*.*.* a través de .github/workflows/publish-secureflows-mcp-server.yml.
docker build -f mcp-server/Dockerfile -t secureflows-mcp-server .
docker run --rm -p 8787:8787 secureflows-mcp-serverNotas
Los endpoints de inicio de sesión alojado / redirección se exponen solo si están etiquetados como
ai-safeoai-optionalen las especificaciones OpenAPI.Búsqueda de documentación (
get_docs_search) esai-safe, requiere sinauth.*— soloconnection.hosty la consultaq.Las API de consola de administración solo para humanos están excluidas intencionalmente.
La carga útil de respuesta de cada herramienta incluye:
statusokurlheadersdata
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
MCP server for AI access to Swagger by SmartBear.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/michal-lefler/secureflows-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server