Connect ChatGPT
The gateway is a listed ChatGPT app: OpenAI reviewed it and published it in the Apps directory as Ansvar Gateway (August 2026). Installing from the directory is the short path — no Developer mode, no URL to paste. The custom-connector recipe further down does the same thing by hand and remains the path when the directory app is not available in your workspace or region. One naming note so the menus match what you read here: OpenAI renamed "Connectors" to Apps in late 2025, and both labels still appear in the product.
The short path — install from the Apps directory
Open the Ansvar Gateway listing directly (ChatGPT login may be asked before installing), or in ChatGPT open the Apps directory and search for Ansvar Gateway (category: Security), or type @Ansvar Gateway in a chat and pick it from the suggestions. Press Connect; the browser opens the OAuth login at auth.ansvar.eu — sign in with any Ansvar account (Free is enough to evaluate) and approve. From then on, call it by mentioning @Ansvar Gateway in any conversation, or let ChatGPT bring it in when a question matches what it does.
Verify: ask "@Ansvar Gateway Which tools are available on my plan?" — it should enumerate the catalogue, starting with search.
Two availability notes. OpenAI gates apps by plan and region — apps reached Free, Go, Plus, and Pro users outside the EEA, Switzerland, and the UK first, with the European rollout following (the Ansvar Gateway listing is confirmed rendering from an EEA account as of August 2026). And on Business, Enterprise, and Edu workspaces, apps are admin-governed. In either case, if the directory app is not offered to you, the custom-connector path below is the way in.
The manual path — a custom connector in Developer mode
The custom connector works on every paid plan — Plus, Pro, Business (the plan formerly called Team), Enterprise, and Edu; the Free tier cannot add custom connectors (for Free-tier users, the directory app above is the way in where OpenAI has rolled apps out).
Step 1 — turn on Developer mode
Settings → Apps (or "Apps & Connectors") → Advanced settings → toggle Developer mode.
Developer mode is what gives ChatGPT full MCP support. Without it, custom connectors are restricted to tools literally named search and fetch — the deep-research interface — and the gateway's real surface (get_provision, validate_citation, list_coverage, the workflow tools) would be invisible. With Developer mode on, ChatGPT can call every tool your Ansvar tier includes, and asks you for confirmation before consequential actions by default.
Step 2 — create the connector
Settings → Connectors → Create, then fill in:
Name: Ansvar
Description: EU law, regulation, and standards — cited answers
MCP server URL: https://gateway.ansvar.eu/mcp
Authentication: OAuthThere is no client ID or secret to obtain — ChatGPT registers itself with the gateway's login service automatically on save. If the form shows a Client ID field as required, leave it empty and submit anyway; that field is a known cosmetic quirk of the connector form. The browser opens for the OAuth login at auth.ansvar.eu; approve it, and ChatGPT lists the tools your tier includes. A connector added on the web is available in the ChatGPT mobile apps automatically.
Verify: ask "Which Ansvar tools are available?" — ChatGPT should enumerate the catalogue, starting with search.
Rolling out to Business or Enterprise
On Business (formerly Team), only workspace admins and owners can enable Developer mode, and each admin enables it for themselves — the toggle is not workspace-wide. On Enterprise and Edu, apps are off by default: an admin enables them, grants Developer mode to named members via Workspace Settings → Permissions & Roles, and can scope per-app access with role-based access control.
Two things your admin will want to know. First, OpenAI does not review custom connectors — the console tells admins to add one only if they know and trust the developer, which for the gateway means us: EU-hosted, licensing-audited, no training on your data. Second, ChatGPT's default per-app permission level ("Important actions") auto-approves reads but asks before actions with external effect — the gateway's tools are read-only research and workflow calls against your own tenant, so the prompts you see will be proportionate.
Codex CLI
OpenAI's coding agent connects in two commands:
codex mcp add ansvar --url https://gateway.ansvar.eu/mcp
codex mcp login ansvarCodex detects the gateway's OAuth support, registers itself automatically, and opens the browser login — we verified this discovery flow against the live gateway with codex-cli 0.142.5 on 2026-07-02. Tokens are stored by Codex, not written into config.toml. For CI or containers with no browser, codex mcp add ansvar --url … --bearer-token-env-var ANSVAR_TOKEN takes a static credential instead — that path needs a managed service credential, since gateway tokens expire in minutes (see Clients without OAuth).
Building on the OpenAI API
The Responses API and Agents SDK attach remote MCP servers with a static bearer token — neither runs the OAuth flow for you, and the Responses API discards the credential after every request, so your application must resupply a live token each call:
response = client.responses.create(
model="gpt-5.6",
input="Using Ansvar: what does DORA require for ICT incident classification?",
tools=[{
"type": "mcp",
"server_label": "ansvar",
"server_url": "https://gateway.ansvar.eu/mcp",
"authorization": ansvar_access_token, # your app obtains + refreshes this
"allowed_tools": ["search", "get_provision"],
}],
)Because gateway tokens are short-lived by design, headless setups should use a managed service credential rather than a pasted token — the same shape as n8n or CI. See Clients without OAuth.
Instruct your agent — the routing pack
A connected agent without routing instructions can still answer legal questions from its training data — the connector sitting idle at exactly the moment it should prove itself — when a message does not name Ansvar. Paste the block below into a Project's instructions — every chat in that project carries it, and project instructions take precedence over your global custom instructions — or into ChatGPT's custom instructions for general chats. Do not rely on connector metadata alone to steer the model. The block is the same set that Instruct your agent explains line by line; adapt the jurisdictions to your market.
You are a compliance research assistant. Answer legal, regulatory,
and security-standards questions only from Ansvar tool results,
never from your own knowledge.
For every legal, regulatory, or standards question:
1. Call the search tool, always with a scope: jurisdictions=["SE"]
(adapt to your market; add "EU" for EU regulation - GDPR, NIS2,
the AI Act), or frameworks=["GDPR"] for one EU framework across
the board. On the Free plan, pass exactly one jurisdiction or
framework per call.
2. Never pass the user's whole question as the query. Reduce it to
1-3 legal key terms in the language of the law you are searching
- Swedish terms for Swedish law. Try alternative terms as separate
searches. If a multi-concept query returns nothing, split it into
one search per concept.
3. If a search returns nothing, retry once with a synonym or a
broader term, then retry with allow_broadening=true and label
any relaxed matches as such.
4. Cite every answer: law, article, and source URL from the
results. If the results do not contain the answer, say which
searches you ran and that you will not answer from memory -
never invent a source.If something breaks
- The connector connected once, then authentication fails and re-linking doesn't help. ChatGPT has a known issue with published workspace connectors: it pins the original client registration and won't re-register if that client is ever invalidated. Deleting and recreating the connector fixes it.
- Tools are missing. Check Developer mode is on (without it you'll see at most a crippled two-tool view), then check your Ansvar tier — tools outside it are absent by design (see the tool reference).
- Everything else — the general troubleshooting page covers OAuth popups, quota errors, and empty results.