MCP-server
accounted MCP-server
MCP-server för svensk dubbel bokföring. Över 150 verktyg över bokföring, fakturor, leverantörer, moms, lön och rapporter. OAuth 2.1 med PKCE och dynamisk klientregistrering. Installeras som connector i Claude.ai, Claude Desktop, ChatGPT och Grok, och i Claude Code och Cursor.
TL;DRMCP-server för svensk dubbel bokföring. Över 150 verktyg över bokföring, fakturor, leverantörer, moms, lön och rapporter. OAuth 2.1 med PKCE och dynamisk klientregistrering. Installeras som connector i Claude.ai, Claude Desktop, ChatGPT och Grok, och i Claude Code och Cursor.
Servern i korthet
Servern exponerar över 150 verktyg som en MCP-klient kan kalla. De grupperas ungefär så här:
| Område | Exempel-verktyg | Server-side scope |
|---|---|---|
| Transaktioner | gnubok_list_uncategorized_transactions, gnubok_categorize_transaction, gnubok_match_transaction_to_invoice | transactions:read / :write |
| Fakturor | gnubok_create_invoice, gnubok_send_invoice, gnubok_credit_invoice | invoices:write |
| Leverantörer | gnubok_list_suppliers, gnubok_create_supplier_invoice_from_inbox, gnubok_approve_supplier_invoice | suppliers:read / :write |
| Rapporter | gnubok_get_trial_balance, gnubok_get_balance_sheet, gnubok_get_income_statement, gnubok_get_vat_report, gnubok_vat_close_check, gnubok_get_kpi_report | reports:read |
| Bokslut | gnubok_year_end_readiness (read), gnubok_run_year_end, gnubok_close_period, gnubok_explain_voucher_gap | reports:read / bookkeeping:write |
| Lön | gnubok_create_salary_run, gnubok_calculate_salary_run, gnubok_book_salary_run, gnubok_generate_agi | payroll:read / :write |
| Skatteverket | gnubok_vat_declaration_submit, gnubok_agi_submit | skatteverket:write |
| Godkännande | gnubok_list_pending_operations, gnubok_approve_pending_operation | pending_operations:read / :approve |
| Audit | gnubok_audit_package, gnubok_export_sie, gnubok_query_journal | reports:read |
Skrivverktygen stagar en pending_operation med förhandsvisning. Inget
bokförs förrän den godkänts, i appen under Granskning eller i chatten efter
ditt uttryckliga ja. Inlämningar till Skatteverket är dessutom klara först
när du signerat med BankID.
Behörigheterna sitter på anslutningen: de du lämnar ikryssade på
samtyckessidan, med din roll i bolaget som tak. Anslutningen når alla bolag
där din användare är medlem. gnubok_list_companies listar dem, och
company_id på ett anrop väljer bolag; utan det gäller anslutningens
standardbolag.
Verktygen heter gnubok_* som standard. Med tool_namespace=accounted i
adressen heter de accounted_*, vilket Claude Code-pluginet och produktens
egen guide använder. Det är samma verktyg.
Installera i Claude.ai eller Claude Desktop
- Inställningar → Connectors → Add custom connector.
- Ange URL:
https://app.accounted.se/api/extensions/ext/mcp-server/mcp?auth=required(utanauth=requiredföreslår dialogen "None" som autentisering och inloggningen öppnas aldrig). - Claude öppnar accounted-inloggningen i webbläsaren. Logga in och godkänn anslutningen.
- Connectorn dyker upp i listan. Slå på den i de chattar där du vill ha den aktiv.
Installera i ChatGPT
- I ChatGPT på webben: Inställningar → Säkerhet och inloggning → slå på Utvecklarläge.
- Gå till Plugins, välj + och skapa en app i utvecklarläge med adressen
https://app.accounted.se/api/extensions/ext/mcp-server/mcp. - Starta en ny chatt, välj + → Utvecklarläge → appen, och logga in när ChatGPT frågar.
Installera i Grok
- På grok.com: Connectors → New Connector → Custom.
- Ange URL:
https://app.accounted.se/api/extensions/ext/mcp-server/mcp?auth=required(utanauth=requiredser Grok servern som öppen och startar aldrig inloggningen). - Grok registrerar sig själv och öppnar accounted-inloggningen. Logga in och godkänn anslutningen.
- Starta en ny chatt med connectorn påslagen.
Installera i Claude Code
Det officiella pluginet ger både anslutningen och sju arbetsflöden (bokföring, hälsokoll, månadsavslut, moms, lön, bokslut):
/plugin marketplace add erp-mafia/accounted
/plugin install accounted@accounted
Bara anslutningen:
claude mcp add --transport http accounted "https://app.accounted.se/api/extensions/ext/mcp-server/mcp"
Logga sedan in via /mcp.
Installera i Cursor
~/.cursor/mcp.json (globalt) eller .cursor/mcp.json (per projekt):
{
"mcpServers": {
"accounted": {
"url": "https://app.accounted.se/api/extensions/ext/mcp-server/mcp"
}
}
}
Logga in i webbläsaren när Cursor ber om det.
Stdio-brygga med API-nyckel
För klienter som bara stödjer stdio (vissa egna agentmiljöer,
CI-pipelines) finns en lokal brygga via npm. Nya installationer använder
accounted-mcp:
{
"mcpServers": {
"accounted": {
"command": "npx",
"args": ["-y", "accounted-mcp"],
"env": {
"ACCOUNTED_API_KEY": "gnubok_sk_..."
}
}
}
}
Befintliga konfigurationer med gnubok-mcp och GNUBOK_API_KEY fungerar
oförändrade.
API-nyckeln skapas i app.accounted.se under Inställningar → API och MCP.
Nyckelvärdet börjar fortfarande med gnubok_sk_. Du väljer scopes per
nyckel och område (transaktioner, kunder, artiklar, fakturor, leverantörer,
rapporter, bokföring, löner, dokument, avstämning, Skatteverket,
godkännande med flera), och nyckelns scopes styr vilka verktyg som går att
anropa. En gnubok_sk_test_*-nyckel läser bolagets riktiga data men tvingar
varje skrivning till dry-run.
Lämpligt när maskinen som kör agenten inte kan öppna en webbläsare.
Audit och behandlingshistorik
För revision och BFL-spårbarhet använder du
gnubok_audit_package({ fiscal_period_id }). Den producerar en zip för
räkenskapsåret med:
- SIE 4-fil
- Rapporter: saldobalans, resultat- och balansräkning, huvudbok, grundbok och moms (JSON och CSV)
- Underlagen, med ett manifest
- Behandlingshistoriken
- Systemdokumentationen för räkenskapsåret
Filen hämtas via en signerad länk som gäller i en timme.
Sånt servern inte gör
- Servern kör ingen tredjepartskod. Egna skills och workflows körs alltid hos den som skickar anropet, inte hos oss.
- Servern stagar alltid skrivoperationer. Ett verifikat bokförs först när någon med rätt behörighet godkänt det, i app.accounted.se eller i chatten.
- Anslutningen når bara bolag där den inloggade användaren är medlem. Det kontrolleras på servern vid varje anrop.
Versionering
OAuth-discoveryn följer RFC 8414 (Authorization Server Metadata),
RFC 9728 (Protected Resource Metadata) och RFC 7591 (Dynamic Client
Registration). Stdio-bryggorna på npm är accounted-mcp@1.0.0 för nya
installationer och gnubok-mcp@1.1.0 för befintliga konfigurationer, båda
under MIT. Servern är källkod under AGPL-3.0 på
github.com/erp-mafia/accounted.
OAuth-scopes
- transactions:read
- transactions:write
- invoices:write
- suppliers:read
- suppliers:write
- reports:read
- bookkeeping:write
- payroll:read
- payroll:write
- skatteverket:write
- pending_operations:read
- pending_operations:approve
accounted-verktyg
- gnubok_list_uncategorized_transactions
- gnubok_categorize_transaction
- gnubok_create_invoice
- gnubok_get_vat_report
- gnubok_auto_match_period
- gnubok_export_sie
Vanliga frågor
- Vad är accounted MCP-server?
- En HTTP-baserad MCP-server som ger en AI-agent åtkomst till en svensk huvudbok: verifikat, kunder, fakturor, moms, lön, SIE-export. OAuth 2.1 med PKCE och dynamisk klientregistrering. Över 150 verktyg över bokföring, fakturor, leverantörer, moms, lön och rapporter.
- Hur funkar OAuth-flödet?
- MCP-klienten upptäcker accounteds autentiseringsserver via `.well-known/oauth-protected-resource`. Klienten registrerar sig dynamiskt (RFC 7591) på `/api/mcp-oauth/register`, öppnar `/api/mcp-oauth/authorize` i webbläsaren, du loggar in på accounted och godkänner anslutningen, klienten utbyter authorization code mot en access token via `/api/mcp-oauth/token` med PKCE S256. Saknar du konto skapar du det i samma inloggning, med BankID eller e-post.
- Vilka klienter funkar?
- Claude.ai och Claude Desktop (connectors), Claude Code, ChatGPT (utvecklarläge), Grok (custom connectors) och Cursor. Deras OAuth-callbacks är godkända i förväg, liksom localhost. En egen klient med publik HTTPS-callback registrerar sin redirect-URI under Inställningar → API och MCP. För klienter som bara kör stdio finns en lokal brygga: `npx -y accounted-mcp` med API-nyckel.
- Vilka scopes ger jag bort?
- Samtyckessidan listar behörigheterna per område: transaktioner, fakturor, leverantörer, rapporter, bokföring, löner, Skatteverket, godkännande med flera. För Claude, ChatGPT, Grok och Cursor är alla förvalda, och du kan välja bort dem, till exempel med Endast läs. Din roll i bolaget sätter taket: en läsare kan bara ge läsbehörighet. Anslutningen återkallas under Inställningar → API och MCP i app.accounted.se.
- Får agenten skriva direkt till huvudboken?
- Nej. Varje skrivverktyg stagar en `pending_operation` med förhandsvisning, som bokförs först när den godkänts: i appen under Granskning, eller i chatten där agenten anropar `gnubok_approve_pending_operation` efter ditt uttryckliga ja. Det kräver behörigheten `pending_operations:approve`, och högriskoperationer kräver dessutom `confirmed: true`. En nyckel som både kan förbereda och godkänna kräver ett uttryckligt medgivande som loggas. Bokförda verifikat raderas aldrig; rättelser stagas med `gnubok_correct_entry` (storno plus rättad post) eller `gnubok_reverse_journal_entry`.
- Hur tar jag fram underlag till en revision?
- `gnubok_audit_package` paketerar ett räkenskapsår som en zip: SIE 4-fil, rapporter (saldobalans, resultat- och balansräkning, huvudbok, grundbok, moms), underlagen, behandlingshistoriken och systemdokumentationen. Filen hämtas via en signerad länk som gäller i en timme. Det är samma data som appen bygger på.
Senast uppdaterad: 27 september 2026