Skatteetaten
БесплатноНе проверенEnables AI assistants to query Norwegian tax data, submit reports, look up population register information, and validate VAT returns through Skatteetaten APIs u
Описание
Enables AI assistants to query Norwegian tax data, submit reports, look up population register information, and validate VAT returns through Skatteetaten APIs using Maskinporten authentication.
README
A comprehensive Model Context Protocol (MCP) server for Skatteetaten — the Norwegian Tax Administration.
Exposes 35+ tools covering all major Skatteetaten APIs so that LLM agents and AI assistants can query tax data, submit reports, look up population register information, validate VAT returns, and more — all authenticated via Maskinporten.
Covered APIs
| API | Description |
|---|---|
| Inntekt | Employer-reported income (monthly/yearly) |
| Beregnet Skatt | Calculated tax: trinnskatt, trygdeavgift, fellesskatt |
| Summert Skattegrunnlag | Aggregated tax basis (income, assets, deductions) |
| Skattemelding | Tax return retrieval and validation |
| Restanse | Outstanding tax debts and arrears |
| Formuesobjekt Fast Eiendom | Property ownership and classification |
| Formuesgrunnlag Eiendomsskatt | Property value basis for property tax |
| Folkeregisteret | Population register: lookup, search, event feed |
| A-Melding | Wage/personnel reporting (replaces Altinn A02) |
| A-Melding Tilbakemelding | Feedback for submitted A-meldinger |
| MVA-Melding | VAT return validation |
| Skattekorttilarbeidsgiver | Tax deduction cards for employers |
| Krav og Betalinger | Claims and payment history (Fremtidens innkreving) |
| Tredjepartsopplysninger | Third-party data reporting (banks, brokers, etc.) |
Prerequisites
- A Norwegian organisation with an organisation number
- Access to Maskinporten with a registered client and private key
- Rights packages (rettighetspakker) granted by Skatteetaten for the APIs you need
- Node.js 20+
Getting Access
- Register your Maskinporten client at Samarbeidsportalen
- Request the relevant scopes from Skatteetaten at skatteetaten.no/deling
- For test environments, use Tenor test data to get synthetic identifiers
Installation
npm install
npm run build
Configuration
Copy .env.example to .env and fill in your credentials:
cp .env.example .env
| Variable | Required | Description |
|---|---|---|
MASKINPORTEN_CLIENT_ID |
Yes | Your Maskinporten client ID |
MASKINPORTEN_PRIVATE_KEY_PATH |
Yes* | Path to your RSA private key PEM file |
MASKINPORTEN_PRIVATE_KEY_JWK |
Yes* | Or provide the JWK as a JSON string |
SKATTEETATEN_ENV |
No | test (default) or production |
MASKINPORTEN_ISSUER |
No | Override Maskinporten issuer URL |
MASKINPORTEN_TOKEN_ENDPOINT |
No | Override token endpoint URL |
FOLKEREGISTERET_AUTH_PACKAGE |
No | offentlig-med-hjemmel (default), offentlig-uten-hjemmel, or privat |
*Either MASKINPORTEN_PRIVATE_KEY_PATH or MASKINPORTEN_PRIVATE_KEY_JWK is required.
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"skatteetaten": {
"command": "node",
"args": ["/path/to/mcp-skatteetaten/dist/index.js"],
"env": {
"MASKINPORTEN_CLIENT_ID": "your-client-id",
"MASKINPORTEN_PRIVATE_KEY_PATH": "/path/to/private-key.pem",
"SKATTEETATEN_ENV": "test"
}
}
}
}
With Claude Code
claude mcp add skatteetaten -- node /path/to/mcp-skatteetaten/dist/index.js
Or run directly:
MASKINPORTEN_CLIENT_ID=... MASKINPORTEN_PRIVATE_KEY_PATH=... npm start
Available Tools
Income (inntekt)
| Tool | Description |
|---|---|
get_inntekt |
Income for a person in a specific month |
get_inntekt_for_year |
All income across 12 months for a year |
Tax (skatt)
| Tool | Description |
|---|---|
get_beregnet_skatt |
Calculated tax breakdown |
get_summert_skattegrunnlag |
Aggregated tax basis |
get_skattemelding |
Retrieve tax return document |
validate_skattemelding |
Validate a tax return XML |
get_restanse |
Outstanding tax debts |
Property (eiendom)
| Tool | Description |
|---|---|
get_formuesobjekt_fast_eiendom |
Property assets for a person |
get_formuesgrunnlag_eiendomsskatt |
Property value for tax purposes |
Population Register (folkeregisteret)
| Tool | Description |
|---|---|
get_person_folkeregisteret |
Full person record lookup |
search_personer_folkeregisteret |
Search by criteria |
get_folkeregisteret_hendelser |
Change event feed |
get_folkeregisteret_current_sekvens |
Current event feed position |
Wage Reporting (amelding)
| Tool | Description |
|---|---|
submit_amelding |
Submit monthly A-melding |
get_amelding_status |
Check submission status |
get_amelding_tilbakemelding |
Get feedback on submitted report |
list_amelding_for_maaned |
List submissions for a month |
VAT (mva)
| Tool | Description |
|---|---|
validate_mva_melding_xml |
Validate VAT return XML |
validate_mva_melding_json |
Validate VAT return JSON |
get_mva_koder |
List valid VAT codes |
Tax Deduction Cards (skattekort)
| Tool | Description |
|---|---|
get_skattekort |
Get deduction card for an employee |
order_skattekort |
Bulk order deduction cards |
get_skattekort_ordre_status |
Check order status |
get_skattekort_resultat |
Retrieve completed order results |
Claims & Payments (krav-og-betalinger)
| Tool | Description |
|---|---|
get_krav |
Outstanding claims |
get_betalinger |
Payment history |
Third-Party Reporting (tredjepartsopplysninger)
| Tool | Description |
|---|---|
submit_tredjepartsopplysninger |
Submit third-party data |
get_tredjepartsopplysninger_status |
Check submission status |
get_tredjepartsopplysninger_oppgavetyper |
List valid report types |
Authentication
All APIs use Maskinporten for server-to-server OAuth2 authentication with enterprise certificates.
The client automatically:
- Creates signed JWT grants using your RSA private key
- Exchanges them for Maskinporten access tokens
- Caches tokens until 30 seconds before expiry
- Fetches per-scope tokens (different scopes for different APIs)
Test environment: https://test.maskinporten.no/
Production: https://maskinporten.no/
API Documentation
- Skatteetaten API Documentation
- Folkeregisteret API
- MVA-Meldingen
- Skattemeldingen
- Maskinporten Guide
- SwaggerHub — Skatteetaten
Development
# Run in development mode
npm run dev
# Type check
npm run typecheck
# Build
npm run build
License
MIT
Установка Skatteetaten
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/bambinobino/mcp-skatteetatenFAQ
Skatteetaten MCP бесплатный?
Да, Skatteetaten MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Skatteetaten?
Нет, Skatteetaten работает без API-ключей и переменных окружения.
Skatteetaten — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Skatteetaten в Claude Desktop, Claude Code или Cursor?
Открой Skatteetaten на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Skatteetaten with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
