ai.fluxink/fci-mcp
Convert handwriting into text, LaTeX math, chemistry, or molecular structures.
Allow With Approval
trustsnap_cf72146a0aacf7c1.- Recovery Semantics
- Error Contract
- Transport Compliance
- Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tool…
- Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
- Only send roots/list, sampling/createMessage, or elicitation/create requests while handling an active client-initiated…
- No segmented attention signals observed in the current window.
Dispute this assessment
If any published claim about this server -- its score, a risk flag, a capability classification, or its taxonomy -- is factually wrong, tell us what evidence shows and we will review it. This does not require claiming or verifying ownership of the server first.
Verify responds to disputes within 5 business days and resolves them within 15.
Dispute history
No disputes filed for this server.
Risk
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
fluxink-mcp-chatgpt-synthesize-handwriting-style |
read | Low | none | No explicit safeguard hints detected. |
fluxink-mcp-chatgpt-recognize-image |
read | Low | none | No explicit safeguard hints detected. |
fluxink-mcp-chatgpt-recognize-handwriting |
read | Low | none | No explicit safeguard hints detected. |
fluxink-mcp-chatgpt-show-handwriting-canvas |
read | Low | freeform input surface | No explicit safeguard hints detected. |
fluxink-mcp-chatgpt-create-layout |
read | Low | none | No explicit safeguard hints detected. |
fluxink-mcp-chatgpt-show-style-canvas |
read | Low | none | No explicit safeguard hints detected. |
Write-action governance
Status detail: No high-risk write actions are exposed without a clear auth boundary; 0 safeguard(s) and 1 confirmation signal(s) detected.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
fluxink-mcp-chatgpt-create-layout | Low | none |
fluxink-mcp-chatgpt-recognize-handwriting | Low | none |
fluxink-mcp-chatgpt-recognize-image | Low | none |
fluxink-mcp-chatgpt-show-handwriting-canvas | Low | freeform input surface |
fluxink-mcp-chatgpt-show-style-canvas | Low | none |
fluxink-mcp-chatgpt-synthesize-handwriting-style | Low | none |
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Critical alerts
Compatibility
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Warningstep_up_auth_probe• Missingconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Warning
Evidence provenance
action_safety_probe• Error
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Client compatibility gate details
Remediation checklist
OpenAI connectors expect OAuth for remote server auth.Dynamic client registration materially improves connector setup.OAuth is not configured, so this client cannot authenticate without additional setup.Not yet safe for the Messages API remote MCP path: requires OAuth, a compatible connector profile, and no pending connector-refresh risk.Transport compliance issues should be resolved before wider client rollout.
Remediation checklist
OAuth is not configured, so this client cannot authenticate without additional setup.Not yet safe for the Messages API remote MCP path: requires OAuth, a compatible connector profile, and no pending connector-refresh risk.Transport compliance issues should be resolved before wider client rollout.
Remediation checklist
Add a clearer auth boundary around risky write actions.
Verdict traces
tool_snapshot_changed• high • Tool snapshot changedauth_mode_changed• high • Auth mode changedwrite_action_surface_expanded• high • Write-action surface expanded
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Medium | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
Recommended for
Evidence
Current trust snapshot
trustsnap_cf72146a0aacf7c1Canonical machine links
Evidence confidence
Latest validation evidence
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404openid_configurationno authorization serverserver_cardClient error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Error | n/a | 1 high-risk, 1 destructive, 1 exec-capable tool(s); no clear auth boundary; safeguards=0; confirmation=fluxink-mcp-chatgpt-create-layout. |
advanced_capabilities_probe |
OK | n/a | 5 capability signal(s): completions, prompts, resource links, resources, +1 more. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: action safety, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 283.9 ms | Check completed |
initialize |
OK | 913.8 ms | Protocol 2025-03-26 |
interactive_flow_probe |
Missing | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 499.6 ms | Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
OK | 258.0 ms | Fetched https://mcp.fluxink.ai/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
OK | 265.9 ms | 0 prompt(s) exposed |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
OK | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
OK | 326.0 ms | 1 resource content item(s) returned |
resources_list |
OK | 265.3 ms | 3 resource item(s) exposed |
server_card |
Error | 1079.4 ms | Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 275.3 ms | 6 tool(s) exposed |
transport_compliance_probe |
Warning | 258.9 ms | Issues: missing session id, missing protocol header (bad protocol=400). |
utility_coverage_probe |
Warning | 261.2 ms | Completions advertised; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [
"fluxink-mcp-chatgpt-create-layout"
],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 0,
"capability_distribution": {
"admin": 6,
"delete": 1,
"exec": 1,
"filesystem": 4,
"network": 4,
"read": 6,
"write": 5
},
"destructive_tools": 1,
"egress_tools": 0,
"exec_tools": 1,
"high_risk_tools": 1,
"risk_distribution": {
"critical": 1,
"high": 0,
"low": 0,
"medium": 5
},
"secret_tools": 0,
"tool_count": 6
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": true,
"elicitation": false,
"prompts": true,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"completions",
"prompts",
"resource_links",
"resources",
"structured_outputs"
],
"enabled_count": 5,
"initialize_capability_keys": [
"completions",
"experimental",
"logging",
"prompts",
"resources",
"tools"
]
},
"latency_ms": null,
"status": "ok"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": true
},
"high_risk_tools": 1,
"tool_count": 6,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "786649053fe210e95883cc927669dd031042ea9a82a5f00464922d4cf36900e2",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 283.87,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"completions": {},
"experimental": {},
"logging": {},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false,
"subscribe": false
},
"tools": {
"listChanged": false
}
},
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "mcp-streamable-http",
"version": "1.28.1"
}
}
},
"url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
},
"latency_ms": 913.83,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.fluxink.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 499.55,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.fluxink/fci-mcp",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 404,
"url": "https://mcp.fluxink.ai/robots.txt"
},
"latency_ms": 258.0,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": []
}
},
"url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
},
"latency_ms": 265.87,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 1,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 6,
"jsonrpc": "2.0",
"result": {
"contents": [
{
"_meta": {
"openai/widgetCSP": {
"connect_domains": [
"https://chatgpt.com",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resource_domains": [
"https://*.oaistatic.com",
"https://mcp.fluxink.ai"
]
},
"openai/widgetDescription": "Interactive FluxInk canvas for hand-drawn text, math, chemical formulas, and molecular structures.",
"openai/widgetPrefersBorder": false,
"ui": {
"csp": {
"connectDomains": [
"https://chatgpt.com",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resourceDomains": [
"https://*.oaistatic.com",
"https://mcp.fluxink.ai"
]
},
"domain": "https://fluxink.ai",
"prefersBorder": false
}
},
"mimeType": "text/html;profile=mcp-app",
"text": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n <meta name=\"api-base-url\" content=\"https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b\">\n <title>FluxInk Handwriting Canvas</title>\n <script>\n (function () {\n var meta = document.querySelector('meta[name=\"api-base-url\"]');\n var apiBaseUrl = (meta && meta.getAttribute(\"content\")) || window.location.origin;\n var isIPadLike = /iPad/i.test(navigator.userAgent) || (/Macintosh/i.test(navigator.userAgent) && (navigator.maxTouchPoints || 0) > 1);\n window.__FLUXINK_WIDGET__ = \"hwr\";\n window.__FLUXINK_EMBED__ = \"chatgpt\";\n window.__FLUXINK_BACKEND_TRANSPORT__ = \"http-first\";\n var normalizedApiBaseUrl = apiBaseUrl.replace(/\\/$/, \"\");\n window.__FLUXINK_API_BASE_URL = normalizedApiBaseUrl;\n window.EXCALIDRAW_ASSET_PATH = normalizedApiBaseUrl + \"/assets/\";\n\n function applyHostClasses() {\n if (!isIPadLike) {\n return;\n }\n document.documentElement.classList.add(\"fluxink-ipad-chatgpt-host\");\n if (document.body) {\n document.body.classList.add(\"fluxink-ipad-chatgpt-host\");\n }\n }\n\n applyHostClasses();\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", applyHostClasses, { once: true });\n } else {\n applyHostClasses();\n }\n })();\n </script>\n <link rel=\"stylesheet\" href=\"https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/assets/style.css?v=chatgpt-external-assets-20260622-3\">\n <style>\nhtml.fluxink-ipad-chatgpt-host body[data-display-mode=\"fullscreen\"] .hwr-widget__topbar--fullscreen,\nbody.fluxink-ipad-chatgpt-host[data-display-mode=\"fullscreen\"] .hwr-widget__topbar--fullscreen,\nbody[data-display-mode=\"fullscreen\"] .hwr-widget--ipad-chatgpt .hwr-widget__topbar--fullscreen {\n right: max(16px, env(safe-area-inset-right, 0px)) !important;\n}\n\nhtml.fluxink-ipad-chatgpt-host body[data-display-mode=\"fullscreen\"] .hwr-widget--fullscreen-top-controls .hwr-widget__footer-stack,\nbody.fluxink-ipad-chatgpt-host[data-display-mode=\"fullscreen\"] .hwr-widget--fullscreen-top-controls .hwr-widget__footer-stack,\nbody[data-display-mode=\"fullscreen\"] .hwr-widget--ipad-chatgpt.hwr-widget--fullscreen-top-controls .hwr-widget__footer-stack {\n right: max(20px, env(safe-area-inset-right, 0px)) !important;\n left: max(20px, env(safe-area-inset-left, 0px)) !important;\n}\n </style>\n</head>\n<body>\n <div id=\"root\"></div>\n <script type=\"module\" src=\"https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/assets/index.js?v=chatgpt-external-assets-20260622-3\"></script>\n</body>\n</html>\n",
"uri": "ui://widget/hwr-widget.html"
}
]
}
},
"resource_uri": "ui://widget/hwr-widget.html",
"url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
},
"latency_ms": 326.04,
"status": "ok"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": [
{
"_meta": {
"openai/widgetCSP": {
"connect_domains": [
"https://chatgpt.com",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resource_domains": [
"https://*.oaistatic.com",
"https://mcp.fluxink.ai"
]
},
"openai/widgetDescription": "Interactive FluxInk canvas for hand-drawn text, math, chemical formulas, and molecular structures.",
"openai/widgetPrefersBorder": false,
"ui": {
"csp": {
"connectDomains": [
"https://chatgpt.com",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resourceDomains": [
"https://*.oaistatic.com",
"https://mcp.fluxink.ai"
]
},
"domain": "https://fluxink.ai",
"prefersBorder": false
}
},
"description": "Interactive FluxInk canvas. Draw freehand strokes and convert them to typed text, LaTeX math, LaTeX chemistry, or SMILES molecular structures.",
"mimeType": "text/html;profile=mcp-app",
"name": "hwr-widget",
"uri": "ui://widget/hwr-widget.html"
},
{
"_meta": {
"openai/widgetCSP": {
"connect_domains": [
"https://chatgpt.com",
"https://*.blob.core.windows.net",
"https://*.fluxink.ai"
],
"resource_domains": [
"https://*.oaistatic.com",
"https://cdn.jsdelivr.net",
"https://*.blob.core.windows.net"
]
},
"openai/widgetDescription": "Embedded PDF viewer for FluxInk-generated study / meeting / Cornell / SQ3R / 5W1H / Zettelkasten / PSO document layouts.",
"openai/widgetPrefersBorder": false,
"ui": {
"csp": {
"connectDomains": [
"https://chatgpt.com",
"https://*.blob.core.windows.net",
"https://*.fluxink.ai"
],
"resourceDomains": [
"https://*.oaistatic.com",
"https://cdn.jsdelivr.net",
"https://*.blob.core.windows.net"
]
},
"domain": "https://fluxink.ai",
"prefersBorder": false
}
},
"description": "Embedded PDF viewer for FluxInk generated study, meeting, Cornell, SQ3R, 5W1H, Zettelkasten, bullet points, and PSO document layouts.",
"mimeType": "text/html;profile=mcp-app",
"name": "autodesign-widget",
"uri": "ui://widget/autodesign.html"
},
{
"_meta": {
"openai/widgetCSP": {
"connect_domains": [
"https://chatgpt.com",
"https://*.blob.core.windows.net",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resource_domains": [
"https://*.oaistatic.com",
"https://*.blob.core.windows.net",
"https://mcp.fluxink.ai"
]
},
"openai/widgetDescription": "FluxInk personal-handwriting style capture canvas: draw a few sample characters, then render any text in that exact handwriting style.",
"openai/widgetPrefersBorder": false,
"ui": {
"csp": {
"connectDomains": [
"https://chatgpt.com",
"https://*.blob.core.windows.net",
"https://*.fluxink.ai",
"https://mcp.fluxink.ai"
],
"resourceDomains": [
"https://*.oaistatic.com",
"https://*.blob.core.windows.net",
"https://mcp.fluxink.ai"
]
},
"domain": "https://fluxink.ai",
"prefersBorder": false
}
},
"description": "FluxInk natural texture ink style capture canvas. Draw a few sample characters to capture a personal handwriting style, then render any text in that style.",
"mimeType": "text/html;profile=mcp-app",
"name": "nti-widget",
"uri": "ui://widget/nti-widget.html"
}
]
}
},
"url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
},
"latency_ms": 265.29,
"status": "ok"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.fluxink.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 1079.44,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 6,
"previous_tool_count": 6,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"_meta": {
"openai/toolInvocation/invoked": "Handwriting ready",
"openai/toolInvocation/invoking": "Generating handwriting...",
"openai/visibility": "private",
"openai/widgetAccessible": true
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Internal FluxInk natural texture ink execution endpoint. Invoked ONLY by the style canvas widget when the user clicks Generate. Do NOT call this tool directly from chat. To render text in the personal handwriting style of the user, call show_style_canvas instead. This endpoint requires JSON encoded style strokes captured by the widget.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cell_size": {
"default": 128,
"description": "Character cell size in pixels.",
"type": "number"
},
"legibility": {
"default": 1,
"description": "Legibility level (0.0 to 2.0).",
"type": "number"
},
"stroke_width": {
"default": 3.5,
"description": "Output stroke width (1.0 to 15.0).",
"type": "number"
},
"style_strokes": {
"description": "JSON encoded array of style strokes captured from the canvas.",
"type": "string"
},
"style_text": {
"description": "Text the user actually wrote as the style sample (for accurate style conditioning). If omitted, the backend auto recognises via handwriting recognition.",
"type": "string"
},
"text": {
"description": "Text to synthesize in the captured handwriting style.",
"type": "string"
}
},
"required": [
"text",
"style_strokes"
],
"type": "object"
},
"name": "fluxink-mcp-chatgpt-synthesize-handwriting-style",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"charCount": {
"type": "number"
},
"error": {
"type": "string"
},
"imageBase64": {
"type": "string"
},
"inferenceTimeMs": {
"type": "number"
},
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"_meta": {
"openai/fileParams": [
"image"
]
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "FluxInk image text recognition. Extract text from an EXISTING image (file upload, URL, or base64) the user provides. Higher accuracy than built in vision for tightly packed text, multi language documents, math, and LaTeX. Returns per region confidence and detection coordinates.\n\nUse this when the user uploads, attaches, or shares an image containing text they want extracted (screenshot, photo, scanned document, receipt, sign, whiteboard, book page, photographed handwritten notes). Use this when the user wants a photographed math expression or chemistry formula converted to LaTeX. Use this when the user references an image and asks to read, transcribe, or digitize the text in it.\n\nDo NOT use this when the user has NOT provided an image yet. Do NOT use this when the user wants to draw or handwrite something fresh (call show_handwriting_canvas instead). Do NOT use this when the request is a plain text question, summary, or explanation with no image attached.\n\nThe language parameter selects the recognition mode. en is English text (default). zh is Chinese text. paddle is multilingual or mixed text. formula is mathematics. latex returns raw LaTeX markup. After returning results, present the extracted text clearly and offer follow up actions like translation, summarization, or editing.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"image": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"download_url": {
"description": "URL to download the image.",
"type": "string"
},
"file_id": {
"description": "ChatGPT file ID.",
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"type": "object"
},
{
"description": "Direct URL or base64 data URI of the image.",
"type": "string"
}
],
"description": "Image to recognize text from. Pass an image from the conversation."
},
"language": {
"default": "en",
"description": "Recognition mode. Allowed values. en (English text). zh (Chinese text). paddle (multilingual mixed text). formula (mathematics with LaTeX output). latex (return raw LaTeX markup).",
"enum": [
"en",
"zh",
"paddle",
"formula",
"latex"
],
"type": "string"
}
},
"required": [
"image"
],
"type": "object"
},
"name": "fluxink-mcp-chatgpt-recognize-image",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"detection_count": {
"type": "number"
},
"error": {
"type": "string"
},
"full_text": {
"type": "string"
},
"language": {
"enum": [
"en",
"zh",
"paddle",
"formula",
"latex"
],
"type": "string"
},
"results": {
"items": {
"additionalProperties": {},
"type": "object"
},
"type": "array"
},
"success": {
"type": "boolean"
},
"total_time_ms": {
"type": "number"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"_meta": {
"openai/toolInvocation/invoked": "Recognition ready",
"openai/toolInvocation/invoking": "Recognizing handwriting...",
"openai/visibility": "private",
"openai/widgetAccessible": true
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Internal FluxInk handwriting recognition execution endpoint. Invoked ONLY by the handwriting canvas widget when the user finishes drawing. Do NOT call this tool directly from chat. To capture handwriting from the user, call show_handwriting_canvas instead. This endpoint requires a JSON stroke payload that only the widget can produce.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"language": {
"description": "Optional language hint for text mode.",
"type": "string"
},
"mode": {
"default": "general",
"description": "Widget-internal recognition family. Preferred values are general or structure; legacy text, math, and chemical values are accepted for existing widget compatibility.",
"type": "string"
},
"strokes": {
"description": "JSON encoded array of strokes captured by the widget. Each stroke is an object with x, y, t arrays.",
"type": "string"
}
},
"required": [
"strokes"
],
"type": "object"
},
"name": "fluxink-mcp-chatgpt-recognize-handwriting",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"error": {
"type": "string"
},
"result": {},
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"_meta": {
"openai/outputTemplate": "ui://widget/hwr-widget.html",
"openai/toolInvocation/invoked": "Canvas ready",
"openai/toolInvocation/invoking": "Opening handwriting canvas...",
"openai/widgetAccessible": true,
"ui": {
"resourceUri": "ui://widget/hwr-widget.html",
"visibility": [
"model",
"app"
]
}
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Open the FluxInk handwriting recognition canvas. The user draws freehand strokes with a stylus, finger, or mouse. The strokes are converted by one of two model families: general recognition for handwriting, math, and chemical formulas, or structure recognition for molecular structures.\n\nUse this when the user asks to handwrite, draw, sketch, ink, scribble, or scrawl something. Use this when the user wants to draw a math equation, chemical formula, or molecular structure rather than type it. Use this when the user asks for a canvas, drawing pad, handwriting input box, or whiteboard. Use this when the user wants to convert stylus or finger drawings into recognized text or markup.\n\nDo NOT use this when the user types a question, equation, or formula in chat and just wants an answer. Do NOT use this when the user uploads or references an existing image of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document, study sheet, or layout PDF (call create_layout instead). Do NOT use this when the user wants text rendered in a personal handwriting style (call show_style_canvas instead). Do NOT use this for conversational or informational requests that need no ink input.\n\nDo NOT re-open if a FluxInk handwriting canvas is already visible from any earlier turn. Instead instruct the user to keep drawing on the existing canvas. Only set force_new=true when the user explicitly asks for a brand new, fresh, or blank canvas.\n\nAlways pass the original chat message in the prompt parameter so context is preserved after recognition. After calling, write a single short acknowledgement and do NOT describe the canvas UI.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"force_new": {
"default": false,
"description": "Set true ONLY when the user explicitly asks for a brand-new canvas. Otherwise leave false so a previously opened canvas is reused.",
"type": "boolean"
},
"language": {
"description": "Optional language hint for text mode. Omit to use the mixed-language model default.",
"type": "string"
},
"mode": {
"default": "general",
"description": "Recognition family for the canvas. Use general for text, math, and chemical formulas; use structure only for molecular structures.",
"enum": [
"general",
"structure"
],
"type": "string"
},
"prompt": {
"description": "The original chat message that triggered the canvas. Passed through to the follow-up message after recognition.",
"type": "string"
}
},
"type": "object"
},
"name": "fluxink-mcp-chatgpt-show-handwriting-canvas",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
},
"mode": {
"enum": [
"general",
"structure"
],
"type": "string"
},
"prompt": {
"type": "string"
},
"reuse": {
"type": "boolean"
}
},
"required": [
"mode",
"prompt",
"message"
],
"type": "object"
}
},
{
"_meta": {
"openai/toolInvocation/invoked": "Layout ready",
"openai/toolInvocation/invoking": "Generating layout...",
"ui": {
"resourceUri": "ui://widget/autodesign.html",
"visibility": [
"model",
"app"
]
}
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "FluxInk document layout generator. Transform raw text content into a structured PDF using one of seven study or work templates, then preview it in an embedded PDF viewer widget.\n\nSupported layout_type values. cornell is the Cornell note taking layout with cue, notes, and summary. bullet_points is a clean bulleted summary. zettelkasten is atomic linked notes. journalism_5w1h is who, what, when, where, why, and how. meeting_add is a meeting agenda plus action items. sq3r is Survey, Question, Read, Recite, Review study notes. pso is Problem, Solution, Outcome.\n\nUse this when the user asks for a Cornell sheet, bulleted summary, Zettelkasten card, 5W1H breakdown, meeting agenda or minutes, SQ3R study sheet, or PSO writeup. Use this when the user wants to turn raw notes, lecture transcript, or source material into a printable PDF or formatted study sheet. Use this when the user asks for a downloadable PDF document of their content.\n\nDo NOT use this when the user just asks for a plain summary in chat. Give it inline. Do NOT use this when the user wants to handwrite or draw something. Call show_handwriting_canvas instead. Do NOT use this when the user wants text in a personal handwriting style. Call show_style_canvas instead. Do NOT use this for plain informational requests with no document generation intent.\n\nAlways pass the source material verbatim in the content parameter. Do NOT pre summarize. The layout engine handles structuring. Pick the layout_type that best matches the stated purpose. If unclear, ask one short clarifying question instead of guessing.\n\nDo NOT re-call if a layout PDF is already visible from a previous turn unless the user explicitly asks for a different layout, different content, or a regeneration. After calling, write a single short acknowledgement and do NOT restate the PDF content.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"content": {
"description": "The raw educational or note content to transform into a structured layout. Pass the full text. The backend will analyze, structure, and render it.",
"type": "string"
},
"layout_type": {
"description": "Layout template to render. Allowed values. cornell (Cornell note taking layout with cue, notes, and summary). bullet_points (clean bulleted summary). zettelkasten (atomic linked notes). journalism_5w1h (who, what, when, where, why, how). meeting_add (meeting agenda plus action items). sq3r (Survey, Question, Read, Recite, Review study notes). pso (Problem, Solution, Outcome).",
"enum": [
"cornell",
"bullet_points",
"zettelkasten",
"journalism_5w1h",
"meeting_add",
"sq3r",
"pso"
],
"type": "string"
},
"title": {
"description": "Optional title for the document. If omitted, the backend generates one.",
"type": "string"
}
},
"required": [
"content",
"layout_type"
],
"type": "object"
},
"name": "fluxink-mcp-chatgpt-create-layout",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"error": {
"type": "string"
},
"layout_type": {
"enum": [
"cornell",
"bullet_points",
"zettelkasten",
"journalism_5w1h",
"meeting_add",
"sq3r",
"pso"
],
"type": "string"
},
"success": {
"type": "boolean"
},
"title": {
"type": "string"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"_meta": {
"openai/outputTemplate": "ui://widget/nti-widget.html",
"openai/toolInvocation/invoked": "Canvas ready",
"openai/toolInvocation/invoking": "Opening style capture canvas...",
"openai/widgetAccessible": true,
"ui": {
"resourceUri": "ui://widget/nti-widget.html",
"visibility": [
"model",
"app"
]
}
},
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Open the FluxInk natural texture ink style capture canvas. The user draws a few sample characters in a personal handwriting style. The widget then renders the requested text as a PNG spritesheet IN THAT EXACT PERSONAL HANDWRITING STYLE. Output is a downloadable spritesheet of individual handwritten glyphs that can be used as an asset (for example with image generation).\n\nUse this when the user asks to render or generate text in a personal handwriting style. Use this when the user wants a personalized handwritten note, card, letter, invitation, journal entry, or signature line that should look hand written by the user. Use this when the user wants to capture, clone, or sample a personal handwriting style and reuse it.\n\nDo NOT use this when the user just wants handwriting recognized (call show_handwriting_canvas instead). Do NOT use this for generic decorative handwritten fonts, calligraphy art, or AI generated script unrelated to the personal writing of the user. Do NOT use this to read text from an existing photo of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document or layout (call create_layout instead). Do NOT use this for plain informational requests.\n\nSupports English and Chinese. Always pass the COMPLETE target text in the text parameter. Never truncate or abbreviate. Every character must appear in the spritesheet.\n\nDo NOT re-open if a FluxInk natural texture ink canvas is already visible from any earlier turn. Instead instruct the user to update the target text inside the existing widget. Only set force_new=true on an explicit user request for a brand new style canvas.\n\nAfter calling, write a single short acknowledgement and do NOT describe the UI. Once the user saves the spritesheet they can re-upload it for further design work.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"force_new": {
"default": false,
"description": "Set true ONLY when the user explicitly asks for a brand-new style canvas. Otherwise leave false so a previously opened canvas is reused.",
"type": "boolean"
},
"text": {
"description": "The COMPLETE text to render as natural texture ink handwriting. Pass the FULL text. Never truncate or abbreviate. Supports English and Chinese.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "fluxink-mcp-chatgpt-show-style-canvas",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
},
"reuse": {
"type": "boolean"
},
"text": {
"type": "string"
}
},
"required": [
"text",
"message"
],
"type": "object"
}
}
]
}
},
"url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
},
"latency_ms": 275.28,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json"
},
"bad_protocol_payload": {
"error": {
"code": -32600,
"message": "Bad Request: Unsupported protocol version: 1999-99-99. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25"
},
"id": "server-error",
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 400,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 258.95,
"status": "warning"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": true,
"live_probe": "not_executed",
"sample_target": {
"type": "resource",
"uri": "ui://widget/hwr-widget.html"
}
},
"initialize_capability_keys": [
"completions",
"experimental",
"logging",
"prompts",
"resources",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 261.25,
"status": "warning"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.fluxink.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://mcp.fluxink.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://mcp.fluxink.ai/.well-known/mcp/server-card.json"
}
},
"remote_url": "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp",
"server_card_payload": null,
"server_identifier": "ai.fluxink/fci-mcp"
}
Known versions
1.0.0
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Aug 04, 2026 08:50:34 PM UTC | Healthy | 74.7 | 4982.8 ms | 6 |
| Jul 31, 2026 06:37:35 AM UTC | Healthy | 42.7 | 4325.7 ms | 0 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Aug 04, 2026 08:50:34 PM UTC | Healthy | 74.7 | 2025-03-26 | public | 6 | 0 | auth_mode_changed write_surface_expanded tool_snapshot_changed |
| Jul 31, 2026 06:37:35 AM UTC | Healthy | 42.7 | unknown | unknown | 0 | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Aug 04, 2026 08:50:29 PM UTC | Completed | Healthy | 4982.8 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Jul 31, 2026 06:37:31 AM UTC | Completed | Healthy | 4325.7 ms | |
Public server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Aug 04, 2026 08:50:34 PM UTC | Latest validation: healthy | Score 74.7 with status healthy. |
| Aug 04, 2026 08:50:34 PM UTC | Score changed | Score delta +31.9 versus the previous run. |
| Aug 04, 2026 08:50:34 PM UTC | Tool snapshot changed | Added 6, removed 0, and changed 0 tool contracts. |
| Aug 04, 2026 08:50:34 PM UTC | Auth mode changed | Auth mode moved from unknown to public. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: none
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp
- Server card: none
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Passes |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Likely to fail |
|
Utility coverage
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header
Request association
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Validation diff
Regressed checks: action_safety_probe, oauth_protected_resource, server_card
Improved checks: advanced_capabilities_probe, connector_replay_probe, determinism_probe, initialize, official_registry_probe, probe_noise_resilience, prompts_list, provenance_divergence_probe, resource_read, resources_list, tool_snapshot_probe, tools_list
| Component | Previous | Latest | Delta |
|---|---|---|---|
backward_compatibility_score | 2.0 | 4.0 | 2.0 |
trust_confidence_score | 1.75 | 2.94 | 1.19 |
connector_replay_score | 3.0 | 4.0 | 1.0 |
result_shape_stability_score | 3.0 | 4.0 | 1.0 |
tool_snapshot_churn_score | 3.0 | 4.0 | 1.0 |
advanced_capability_coverage_score | 3.0 | 3.62 | 0.62 |
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
- Tool snapshot changed (high)
Tools were added, removed, or materially changed between the latest two validations. - Auth mode changed (high)
Auth mode changed from unknown to public. - Write-action surface expanded (high)
The number of high-risk write, delete, exec, or bulk-access tools increased on the latest run.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
ai.fluxink/fci-mcp |
official_registry | yes | 74.7 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Fix it
Why this score?
Algorithmic score breakdown
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tools before they can make destructive changes.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Associate roots, sampling, and elicitation with active client requests | Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. | Only send roots/list, sampling/createMessage, or elicitation/create requests while handling an active client-initiated request, never on idle sessions.Playbook
|
| High | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| High | Publish OAuth authorization-server metadata | Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. | Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.Playbook
|
| High | Publish a complete server card | Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. | Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.Playbook
|
| High | Respond to auth mode changed | Auth mode changed from unknown to public. | Document the new auth posture and confirm protected-resource and challenge metadata still match reality. |
| High | Respond to tool snapshot changed | Tools were added, removed, or materially changed between the latest two validations. | Publish a first-class changelog for tool additions, removals, and breaking schema changes.Playbook
|
| High | Respond to write-action surface expanded | The number of high-risk write, delete, exec, or bulk-access tools increased on the latest run. | Review the newly exposed write and destructive actions before publishing them broadly.Playbook
|
| High | Stop asking users to paste secrets directly | Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection. | |
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Version header.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | |
| Medium | Document minimal scopes and return cleaner auth challenges | Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. | Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.Playbook
|
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Persist session state keyed by Mcp-Session-Id and honor Last-Event-ID on GET reconnects so clients can resume a dropped Streamable HTTP session.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Recovery Semantics | 0/4 | -4.0 |
| Error Contract | 0/4 | -4.0 |
| Transport Compliance | 2/4 | -2.0 |
| Spec Recency | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Prompt Contract | 2/4 | -2.0 |
| Least Privilege Scope | 2/4 | -2.0 |
| Destructive Operation Safety | 2/4 | -2.0 |
| Auth Operability | 2/4 | -2.0 |
| Adoption Signal | 2/4 | -2.0 |
| Action Safety | 2/4 | -2.0 |
Compatibility profiles
Connector URL: https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp # No OAuth metadata detected. # Server: ai.fluxink/fci-mcp
{
"mcpServers": {
"fci-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"]
}
}
}
smithery mcp add "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
curl -sS https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Governance
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewInstall snippets
Connector URL: https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp # No OAuth metadata detected. # Server: ai.fluxink/fci-mcp
{
"mcpServers": {
"fci-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"]
}
}
}
smithery mcp add "https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp"
curl -sS https://mcp.fluxink.ai/servers/f6b6758dba6c4c92b83407a113fdb80b/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.ai.fluxink/fci-mcp.