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.