mcp-skatteetaten
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-skatteetatenget income for person 12345678901 in January 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-skatteetaten
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.) |
Related MCP server: Tripletex MCP Server
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 buildConfiguration
Copy .env.example to .env and fill in your credentials:
cp .env.example .envVariable | Required | Description |
| Yes | Your Maskinporten client ID |
| Yes* | Path to your RSA private key PEM file |
| Yes* | Or provide the JWK as a JSON string |
| No |
|
| No | Override Maskinporten issuer URL |
| No | Override token endpoint URL |
| No |
|
*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.jsOr run directly:
MASKINPORTEN_CLIENT_ID=... MASKINPORTEN_PRIVATE_KEY_PATH=... npm startAvailable Tools
Income (inntekt)
Tool | Description |
| Income for a person in a specific month |
| All income across 12 months for a year |
Tax (skatt)
Tool | Description |
| Calculated tax breakdown |
| Aggregated tax basis |
| Retrieve tax return document |
| Validate a tax return XML |
| Outstanding tax debts |
Property (eiendom)
Tool | Description |
| Property assets for a person |
| Property value for tax purposes |
Population Register (folkeregisteret)
Tool | Description |
| Full person record lookup |
| Search by criteria |
| Change event feed |
| Current event feed position |
Wage Reporting (amelding)
Tool | Description |
| Submit monthly A-melding |
| Check submission status |
| Get feedback on submitted report |
| List submissions for a month |
VAT (mva)
Tool | Description |
| Validate VAT return XML |
| Validate VAT return JSON |
| List valid VAT codes |
Tax Deduction Cards (skattekort)
Tool | Description |
| Get deduction card for an employee |
| Bulk order deduction cards |
| Check order status |
| Retrieve completed order results |
Claims & Payments (krav-og-betalinger)
Tool | Description |
| Outstanding claims |
| Payment history |
Third-Party Reporting (tredjepartsopplysninger)
Tool | Description |
| Submit third-party data |
| Check submission status |
| 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
Development
# Run in development mode
npm run dev
# Type check
npm run typecheck
# Build
npm run buildLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bambinobino/mcp-skatteetaten'
If you have feedback or need assistance with the MCP directory API, please join our Discord server