# MCP-server for AI-assistenter

> Koble Claude, ChatGPT eller din egen agent til Solkart med Model Context Protocol. Åtte verktøy på mcp.solkart.no/mcp med adressesøk, PV-produksjon, TMY, snøtap, snølast, terrengkategori, solprognose og sanntidstall.

Kilde: https://solkart.no/api/dokumentasjon/mcp · Sist oppdatert 2026-09-18 · Base-URL https://api.solkart.no · OpenAPI: https://solkart.no/openapi.json

!!! note "Ny tjeneste"
    MCP-serveren ble satt i drift 18. september 2026. Si fra hvis noe ikke virker som det skal: [ta kontakt](/kontakt).

## Hva det er

Model Context Protocol (MCP) er en åpen standard for hvordan AI-assistenter kobler seg til verktøy. Solkart-serveren pakker de samme beregningene som [API-et](/api/dokumentasjon) inn som verktøy en assistent kan kalle selv: brukeren skriver «hva gir 120 kWp øst/vest på Dikeveien 52 i Fredrikstad, og hvor mye snølast må taket tåle?», og assistenten slår opp adressen, regner produksjonen og henter snølasten uten at du skriver en linje kode.

Serveren er tilstandsløs og bruker Streamable HTTP. Én adresse, alt over POST:

```
https://mcp.solkart.no/mcp
```

Den støtter både protokollversjon `2026-07-28` (uten `initialize`, med `_meta` og `MCP-Protocol-Version`-hodet per forespørsel) og de eldre versjonene `2025-11-25`, `2025-06-18` og `2025-03-26` som de fleste klienter bruker i dag. Vi utsteder ingen sesjons-id-er, og `GET /mcp` svarer `405`: det finnes ingen frittstående hendelsesstrøm.

## Koble til

**Claude Code / Claude Desktop** (hoder støttes, anbefalt):

```bash
claude mcp add --transport http solkart https://mcp.solkart.no/mcp \
  --header "X-API-Key: sk_live_…"
```

**claude.ai og andre klienter som bare tar en URL:** legg nøkkelen i spørrestrengen.

```
https://mcp.solkart.no/mcp?api_key=sk_live_…
```

**Egen agent (Python, TypeScript …):** pek MCP-klienten på adressen og send nøkkelen som `Authorization: Bearer sk_live_…` eller `X-API-Key`.

Uten nøkkel virker alle verktøyene som er åpne i API-et fra før, men da deler alle nøkkelløse brukere de samme IP-grensene, og kall uten nøkkel er begrenset til 30 per minutt. Nøkkelen gir deg dine egne kvoter: se [autentisering](/api/dokumentasjon/autentisering) og [kvoter](/api/dokumentasjon/grenser-og-feil). Nøkkelen sendes uendret videre til api.solkart.no; MCP-serveren lagrer den ikke.

## Verktøyene

| Verktøy | Gir | Bak kulissene | Nøkkel |
|---|---|---|---|
| `adressesok` | Adresse eller stedsnavn → koordinater | Kartverket/Geonorge | Nei |
| `pv_produksjon` | Års- og månedsproduksjon, inntil 4 takflater, klipping, P50–P95 | [`/api/pv/calc`](/api/dokumentasjon/pv) | Nei |
| `snolast` | Karakteristisk snølast på mark, med kommunetabellen til sammenligning | [`/api/snowload/calc`](/api/dokumentasjon/snolast) | Nei |
| `snotap` | Snø- og smusstap per måned, eller snø på panelet neste 10 døgn | [`/api/snowsoiling/calc`, `/api/snow/outlook`](/api/dokumentasjon/snotap) | Nei |
| `tmy` | Årssummer, persentiler, valgte år og kilder, pluss nedlastingslenker | [`/api/tmy/stats`, `/api/tmy/sources`](/api/dokumentasjon/tmy) | Valgfri |
| `terrengkategori` | Terrengkategori og c_o per sektor, med kontrollpunkter | [`/api/terrain/jobs`](/api/dokumentasjon/terrengkategori) | Nei (pilot) |
| `solproduksjon_naa` | Solproduksjon i Norge nå, fylke for fylke | Forsidens prognosekall | Nei |
| `solprognose` | Innstråling og produksjon time for time, 60 timer | [`/api/forecast`](/api/dokumentasjon/prognose) | Ja |

Verktøyene returnerer både et kort sammendrag i klartekst og hele svaret som `structuredContent`, med feltnavn på norsk. Store datamengder leveres ikke gjennom MCP: `tmy` gir statistikk og en nedlastingslenke, ikke 8760 timer, og `solprognose` gir timeserien for ett punkt.

`terrengkategori` tar 10 til 60 sekunder. Rekker den ikke ferdig innen ventetiden, svarer verktøyet med en `jobb_id`, og assistenten kaller det samme verktøyet på nytt med `jobb_id` for å hente resultatet (det lever i 15 minutter).

Takanalysen og sol og horisont er ikke med i første versjon.

## Prøv med curl

```bash
curl -sS https://mcp.solkart.no/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-06-18' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

```bash
curl -sS https://mcp.solkart.no/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-06-18' -H "X-API-Key: $SOLKART_API_KEY" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"pv_produksjon",
       "arguments":{"lat":59.2578,"lon":11.0030,"peakpower":10,"angle":35,"aspect":0}}}'
```

Med den nye protokollversjonen må hodene speile kroppen:

```bash
curl -sS https://mcp.solkart.no/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' -H 'Mcp-Method: tools/call' -H 'Mcp-Name: snolast' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"snolast",
       "arguments":{"lat":59.2578,"lon":11.0030},
       "_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28",
                "io.modelcontextprotocol/clientCapabilities":{}}}}'
```

## Feil

Feil i et verktøykall kommer som et vanlig resultat med `isError: true` og en forklaring på norsk, slik at assistenten kan rette opp selv. Protokollfeil kommer som JSON-RPC-feil:

| Status | Kode | Når |
|---|---|---|
| `400` | `-32700` | Kroppen er ikke gyldig JSON |
| `400` | `-32600` | Ikke gyldig JSON-RPC 2.0, eller en batch (støttes ikke) |
| `400` | `-32020` | Hodene `MCP-Protocol-Version`, `Mcp-Method` eller `Mcp-Name` mangler eller matcher ikke kroppen |
| `400` | `-32022` | Protokollversjonen støttes ikke; `data.supported` viser hvilke som gjør det |
| `403` | `-32600` | `Origin` er ikke tillatt (nettleserklienter) |
| `404` | `-32601` | Ukjent metode |
| `405` | | `GET` eller `DELETE` mot `/mcp` |

## Forbehold

Alle tall er retningsgivende estimater, ikke målte verdier. Snølast og terrengkategori er beslutningsgrunnlag som ansvarlig prosjekterende kontrollerer og godkjenner. Assistenten får beskjed om dette i instruksjonene serveren sender med, men du bør si det videre til dem som leser svaret.
