mcp-registry/io.github.michal-lefler/secureflows-mcp-server · v0.2.0
Also listed as github/michal-lefler/secureflows-mcp, github/michal-lefler/secureflows-mcp-server, glama/michal-lefler/secureflows-mcp-server, mcp-registry/io.github.michal-lefler/secureflows-mcp · primary listing: mcp-registry/io.github.michal-lefler/secureflows-mcp
As of 2026-10-25 14:19 UTC, the Michal Lefler Secureflows MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Claude Code
claude mcp add --transport http michal-lefler-secureflows-mcp-server https://www.secure-flows.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"michal-lefler-secureflows-mcp-server": {
"type": "http",
"url": "https://www.secure-flows.com/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
18 of 18 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
74 parameter(s) across 15 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
12 tool(s) have parameters with no type (no type/enum/anyOf/$ref).
Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →
7 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.
Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 15 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server/fixes
{
"name": "auth_session_callback",
"description": "**Browser redirect endpoint** used after hosted `/app/sessions/login`. No `Authorization` header.\n\n1. Verifies **`firebaseToken`** (Firebase ID token).\n2. Ensures **`client_redirect_uri`** is allowlisted for **`app_id`** (same rules as `validate-redirect`).\n3. **Create vs renew:** If **`session_token`** is absent, **reuses the newest active session** for\n **`(workspace_name, Firebase UID, app_id)`** or **creates** one (`get-or-create`). Optional\n **`payload`** (URL-encoded JSON **object**, d",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"connection",
"query"
],
"properties": {
"auth": {
"type": "object",
"properties": {}
},
"body": {
"type": "string"
},
"query": {
"type": "object",
"required": [
"firebaseToken",
"client_redirect_uri",
"workspace_name",
"app_id"
],
"properties": {
"state": {
"type": "string"
},
"app_id": {
"type": "string"
},
"payload": {
"type": "string",
"description": "JSON object as a string (e.g. `{\"a\":1}`), URL-encoded. Must parse to a JSON object (not an array or primitive).\nDefault when omitted is `{}`. Must not be combined with `session_token` on the same request.\n"
},
"ttl_seconds": {
"type": "integer",
"maximum": 604800,
"minimum": 0,
"description": "Session lifetime in seconds (default 0 = unlimited; allowed values: 0 or 60–604800)"
},
"firebaseToken": {
"type": "string"
},
"session_token": {
"type": "string",
"description": "Previous session JWT (may be expired); signature must validate. When present, the server renews this\nsession instead of creating a new one. Must not be combined with `payload` on the same request.\nURL-encode the value; very long URLs may exceed browser or proxy limits.\n"
},
"workspace_name": {
"type": "string"
},
"client_redirect_uri": {
"type": "string",
"format": "uri"
}
}
},
"params": {
"type": "object",
"properties": {}
},
"connection": {
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"format": "uri",
"description": "secureFlows base URL, for example https://api.example.com"
},
"appId": {
"type": "string",
"description": "Optional secureFlows app id used as a default for hosted login tools"
},
"workspaceName": {
"type": "string",
"description": "Optional workspace name used as a default for tools that need it"
}
}
}
}
},
"title": "Session login callback (redirect)"
}{
"name": "delete_sessions_delete_key",
"description": "Removes `key` from the session payload and returns `true` if the key existed.\n\nSource: DELETE /api/v1/sessions/delete/{key}\nRequires `auth.sessionToken` and forwards it as a Bearer token.\nPrefer connection.workspaceName and connection.appId as stable config instead of generating identity fields dynamically.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"connection",
"params"
],
"properties": {
"auth": {
"type": "object",
"required": [
"sessionToken"
],
"properties": {
"sessionToken": {
"type": "string",
"description": "secureFlows session token"
}
}
},
"body": {
"type": "string"
},
"query": {
"type": "object",
"properties": {}
},
"params": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Payload key to delete"
}
}
},
"connection": {
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"format": "uri",
"description": "secureFlows base URL, for example https://api.example.com"
},
"appId": {
"type": "string",
"description": "Optional secureFlows app id used as a default for hosted login tools"
},
"workspaceName": {
"type": "string",
"description": "Optional workspace name used as a default for tools that need it"
}
}
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": true
},
"title": "Delete a key from the session payload"
}{
"name": "get_auth_logout",
"description": "Browser-friendly logout endpoint for **cross-site** clients (e.g. apps running on `localhost`).\n\nUse this as a **top-level navigation** (not XHR/fetch) so `Clear-Site-Data` is applied in a\n**first-party** context on `secure-flows.com`, making cookie/session clearing reliable even when\nthird-party cookies are blocked.\n\n**Critical client rules:**\n- Clear your in-app `sessionToken` state **before** navigating.\n- **Never** include `session_token` inside `redirect_uri` (that would silently renew and ",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"connection",
"query"
],
"properties": {
"auth": {
"type": "object",
"properties": {}
},
"body": {
"type": "string"
},
"query": {
"type": "object",
"required": [
"session_token",
"redirect_uri"
],
"properties": {
"redirect_uri": {
"type": "string",
"format": "uri",
"description": "Where to redirect after logout completes"
},
"session_token": {
"type": "string",
"description": "SESSION JWT to invalidate (URL-encoded)"
}
}
},
"params": {
"type": "object",
"properties": {}
},
"connection": {
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"format": "uri",
"description": "secureFlows base URL, for example https://api.example.com"
},
"appId": {
"type": "string",
"description": "Optional secureFlows app id used as a default for hosted login tools"
},
"workspaceName": {
"type": "string",
"description": "Optional workspace name used as a default for tools that need it"
}
}
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "Log out (browser redirect helper; first-party cookie clearing)"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.michal-lefler/secureflows-mcp-server"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.michal-lefler/secureflows-mcp-server"}) over MCP.
auth_session_callback ~618 tokensget_sessions_my ~560 tokenssecureflows_build_login_url ~545 tokenspost_sessions_get_or_create ~511 tokenspost_sessions ~507 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.michal-lefler%2Fsecureflows-mcp-server?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:f9e90a19b715ba15…, first seen 2026-10-17, included at leaf 4405 of 66,679. Version history · verify what your client received.
Compare: most reliable auth servers · most reliable search servers · most reliable security servers · most reliable code servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-25 14:19 UTC, the Michal Lefler Secureflows MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Michal Lefler Secureflows MCP server advertises 18 tools, including auth_session_callback, delete_sessions_delete_key, get_auth_logout, get_docs_search, get_sessions.
Point your MCP client at this streamable-http endpoint: https://www.secure-flows.com/mcp
Glimind scanned all 18 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.