# Integration files for the Assurs LAMal agent protocol

One remote MCP server, no authentication: `https://api.assurs.ch/mcp`
(Streamable HTTP). REST alternative: `https://assurs.ch/openapi.json` (slim, seven
operations) or `https://assurs.ch/openapi-full.json`. Protocol, consent rule and
cashback sentence: `https://assurs.ch/skills/assurs-lamal/SKILL.md`,
`https://assurs.ch/llms.txt`, `https://assurs.ch/agents/connect.html`.
These files are published individually under `https://assurs.ch/integrations/<path>`
(no directory index).

| File | Use |
| --- | --- |
| `mcp-registry/server.json` | Entry for the MCP Registry (schema 2025-12-11, name `ch.assurs/lamal`, remote `streamable-http`). Publishing requires the owner to run `mcp-publisher login http --domain assurs.ch` and serve `/.well-known/mcp-registry-auth`; pending. |
| `gemini-extension/gemini-extension.json` + `GEMINI.md` | Gemini CLI extension: `gemini extensions install <repository>` once the extension lives in a public repository (pending). Until then, add `"mcpServers": {"assurs": {"httpUrl": "https://api.assurs.ch/mcp"}}` to Gemini CLI `settings.json`. |
| `codex/openai.yaml` | Codex plugin manifest: `interface` (display name, short description, default prompt) and `dependencies.tools` pointing at the MCP URL with transport `streamable_http`. Copy `skills/assurs-lamal/` into `.agents/skills/` as well. |
| `claude-code/mcp.json` | Claude Code project configuration; save it as `.mcp.json` at the project root, or run `claude mcp add --transport http assurs https://api.assurs.ch/mcp`. The skill folder can be copied into `.claude/skills/`. |
| `openclaw/openclaw.json5` | OpenClaw configuration snippet with the explicit `transport: "streamable-http"`; equivalent to `openclaw mcp add assurs --url https://api.assurs.ch/mcp --transport streamable-http`. The skill goes into `~/.openclaw/skills/assurs-lamal/` (ClawHub listing pending). |
| `openai-responses.json` | OpenAI Responses API `tools` entry (`type: "mcp"`, `server_label: "assurs"`, `require_approval.never` for the read tools; `request_adviser_contact` stays subject to approval). |
| `xai.json` | xAI API `tools` entry (`type: "mcp"`, `server_url`, `server_label: "assurs"`). Grok Build CLI: `grok mcp add --transport http assurs https://api.assurs.ch/mcp`. |
| `gemini-api.json` | Gemini API `tools` entry (`type: "mcp_server"`, `name: "assurs"`, `url`). |
| `anthropic-messages.json` | Anthropic Messages API `mcp_servers` entry (`type: "url"`, `name: "assurs"`). |

Consumer apps need no file: ChatGPT (chatgpt.com/plugins, Add custom MCP
server, authentication None), Claude (Customize, Connectors, Add custom
connector, No sign in), Gemini app (Settings, Connected apps, Custom apps; US
accounts only today), Gemini Enterprise (Team settings, Connected apps, Add MCP
Server, Streamable HTTP, No authentication), Grok (grok.com/connectors, New
Connector, Custom) and Muse (directory submission at platform.muse.ai, Existing
MCP or Raw API with the slim OpenAPI; adding MCP inside the Muse app is
unverified). Custom GPTs: creation ends 26 October 2026 and GPTs retire on
11 December 2026; the slim OpenAPI remains importable as Actions until then.
Whether a ChatGPT plan allows the write tool of a custom MCP plugin is not
verified.

## Public repository

The source repository of assurs.ch is private. Installers that need a public
Git repository (`gemini extensions install`, `clawhub skill publish`, the MCP
Registry `repository` field, "install from GitHub" flows) must point at the
owner's future public repository holding `skills/assurs-lamal/` and
`integrations/`. Until it exists, use the published copies on
`https://assurs.ch/` (skill, OpenAPI, llms.txt) and the MCP URL directly.

## Safety rules carried by every file

- `request_adviser_contact` / `submitOfferRequest` sends an email to Swiss
  Premium Insurance and runs only after the client's explicit yes to the
  consent question returned by the quote.
- `test_adviser_request` / `testOfferRequest` never sends; use synthetic contact
  details only.
- The cashback (CHF 30 for LAMal) is paid by SPI to the client, never to an
  agent, only after the insurer approves a contract concluded through SPI.
  Terms: `https://api.assurs.ch/rewards/terms`.
- Reuse `submission.request_id` and `submission.comparison_id` from the quote;
  keep the same `request_id` on retries.
- Households (2-12 people): `compare_lamal_household` / `calculateHousehold`
  (`POST https://api.assurs.ch/api/lamal/v1/compare`), then ONE request with
  `comparison` = `verification.criteria`, `comparison_token` =
  `submission.comparisonToken` (24 h) and any RFC 4122 UUID as `request_id`.
