What are you connecting?
Nothing to connect
This ships with Mindfront. Just ask it.
That system
Already built in. Open Settings → Integrations and sign in.
That system
Then Settings → Modules → Add MCP Server. The tools appear on their own.
Why this one is safe to use
It comes from Docker's MCP registry, not a search result. Every entry is pinned to a git commit in CI, signed with Cosign against a public transparency log, and put through behavioural code review nightly. We publish their verdicts rather than inventing our own.
This build is pinned to commit .
What we know about this one
It is listed in the official MCP Registry, which proves who published it — the reverse-DNS name is tied to a verified domain or GitHub account. That is provenance, not a safety check: the registry delegates security scanning to others, and nobody has reviewed this server's behaviour.
Treat it like any third-party dependency. If it matters, scan it before connecting, or ask us.
It won't connect
If the vendor allow-lists callers, Mindfront's outbound address has to be on that list. If it wants a login rather than a key, use the sign-in option — a pasted key comes back as CREDENTIALS_REJECTED.
Nobody ships a connector for that
So you run a small web service and Mindfront calls it. Two endpoints, about forty lines, any language. An afternoon.
I already have a service running
Save this as bridge.py
It returns made-up data on purpose. Get Mindfront talking to it first; the real query is a one-line change.
#!/usr/bin/env python3
import json
from http.server import HTTPServer, BaseHTTPRequestHandler
META = {
"protocolVersion": 4,
"moduleVersion": "1.0.0",
"moduleName": "OrdersBridge",
"description": "Answers questions about orders.",
"actions": [{
"name": "getOrderStatus",
"description": "Gets the status of an order by its number.",
"route": "/action/getOrderStatus",
"riskLevel": "safe",
"input": {
"type": "object",
"properties": {"orderNumber": {"type": "string"}},
"required": ["orderNumber"]
}
}]
}
def get_order_status(n): # <- replace with your query
return {"orderNumber": n, "status": "In production"}
class Bridge(BaseHTTPRequestHandler):
def reply(self, payload):
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(json.dumps(payload).encode())
def do_GET(self):
self.reply(META) if self.path == "/meta" else self.send_error(404)
def do_POST(self):
n = int(self.headers.get("Content-Length", 0))
body = json.loads(self.rfile.read(n) or b"{}")
if self.path == "/action/getOrderStatus":
try:
self.reply({"status": "success",
"data": get_order_status(body.get("orderNumber"))})
except Exception as e:
self.reply({"status": "failure", "error": {"message": str(e)}})
else:
self.send_error(404)
HTTPServer(("", 8080), Bridge).serve_forever()My data's in a database — write it for me
Paste this into Claude or ChatGPT with your schema. Table names alone are enough.
Read this first: https://mindfront.engineering/docs/llms-full.txt
Write me a complete, runnable Mindfront Fiber bridge in one file.
protocolVersion 4. Three actions, all riskLevel "safe" (they only
read). Every action needs name, description, route, riskLevel and
input. Always return HTTP 200 — put logical errors in the body as
{"status": "failure", "error": {"message": "..."}}.
Then give me the one command to run it.
IT MUST ANSWER:
1.
2.
3.
MY SCHEMA (table names alone are fine):Start it
Leave the terminal open. Closing it stops the service.
python3 bridge.py
It won't start
Address already in use — something else holds port 8080. Change it to 8081 on the last line and note the new number; step 5 asks for it.
Open it in a browser
JSON with getOrderStatus in it means the service is answering.
http://localhost:8080/meta
I get an error page
Go back to the terminal and read the last line. Python prints the reason there in plain English — almost always a typo, or the window was closed.
Paste that JSON here
Mindfront drops actions missing a name, route or risk level — silently, with no error. This catches it first.
Point Mindfront at it
Settings → Modules → Add Fiber Module. Base URL is where the service runs as seen from the Mindfront server — localhost on your laptop is not localhost there.
It says Degraded
Open that base URL in a browser on the Mindfront server. If it doesn't load there it's a network route, not your code. If it does, /meta is slower than five seconds — it must return a fixed object and never touch the database.
Mindfront can reach it
Anyone in the org can ask about it now. Every call is logged against whoever prompted it.