# Swiss FTTH Coverage — METAVSHN > Public tools to search Swiss addresses and read stored fibre coverage from Swisscom and ALEX. No account or API key is needed for coverage reads. ## Connect - [MCP endpoint](https://ftth.metavshn.com/mcp): Streamable HTTP, no authentication for coverage reads; send JSON-RPC requests with HTTP POST. A browser GET returns HTTP 405. `https://ftth.metavshn.com/api/mcp` is the same server. - [Server card](https://ftth.metavshn.com/.well-known/mcp.json): the endpoint, transport and tools as JSON. - Claude Code: `claude mcp add --transport http ftth https://ftth.metavshn.com/mcp`. Other clients: add a remote MCP server with the endpoint URL. - For modern requests, use `MCP-Protocol-Version: 2026-07-28`. All requests need `Content-Type: application/json`. `Accept` is optional; when sent, it must include `application/json` or `*/*`. Responses are always JSON, never an event stream. - Set `Mcp-Method` to the JSON-RPC method. For `tools/call`, also set `Mcp-Name` to the tool name. - Each modern request must include `params._meta` with `io.modelcontextprotocol/protocolVersion` set to `2026-07-28` and `io.modelcontextprotocol/clientCapabilities` set to an object. - Start with `server/discover`, then `tools/list`. For legacy `initialize`, use `2025-11-25`, `2025-06-18`, or `2025-03-26` in both the `MCP-Protocol-Version` header and `params.protocolVersion`; do not use the modern header or metadata with a legacy initialization. Example discovery request: ```json {"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}} ``` ## Public tools - `search_coverage`: supply `query`, for example `Bahnhofstrasse 1`. Returns up to 10 matching buildings. Ask the user to select a building when the address is ambiguous. - `get_coverage`: supply the exact `building_key` returned by search. Returns stored coverage, source dates, restrictions, and a map link. It does not place orders or change source records. - Tool responses include a map component for clients that support MCP Apps. ## Coverage limits These are imported source records, not a live line test or a service guarantee. A missing fibre record does not prove that fibre is unavailable. Keep the source date and warnings in the answer. A future Communication Date blocks marketing. A reached date only clears that date restriction; it does not grant general approval. GK99 blocks Swisscom independently of ALEX. Preserve the visibility rules returned by the server. ## Coverage events `events/list` describes `coverage.changed`. To create or remove webhook subscriptions, use OAuth with the confirmed email-alert account and explicit consent. Coverage reads remain public. Webhook callbacks require public HTTPS and challenge verification; deliveries are signed using Standard Webhooks. - [OAuth server metadata](https://ftth.metavshn.com/.well-known/oauth-authorization-server) - [Protected resource metadata](https://ftth.metavshn.com/.well-known/oauth-protected-resource/mcp) (for `/api/mcp`: `/.well-known/oauth-protected-resource/api/mcp`) ## Rate limits Public MCP requests share a 600-request burst with a refill of 10 requests per second. Each network address has a 300-request burst with a refill of 2 requests per second. OAuth users and subscription changes have additional limits. HTTP 429 includes `Retry-After`; wait before retrying. Do not retry in a tight loop or use multiple identities to evade limits. ## Links - [Coverage map](https://ftth.metavshn.com/): public map and address search. - [Privacy](https://ftth.metavshn.com/privacy): available in English, German, French, Italian, and Romansh. - [Terms](https://legal.metavshn.com/legal/terms-and-conditions) - [Support](https://metavshn.com/en/contact)