Folio MCP
Click on "Deploy 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., "@Folio MCP read ~/Downloads/faktura.pdf and find the matching Folio transaction"
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.
Folio MCP – fakturaer til kjøp og bankbevegelser
Lokal MCP for Folio Norge (folio.no), Claude Desktop og Claude Code på Mac. Hovedoppgaven er å lese fakturaer, finne riktig bankbevegelse og knytte fakturafilen som bilag til den tilhørende Folio-hendelsen etter godkjenning.
Pilot 0.1: 12 verktøy. Kan lese bankdata og laste opp godkjente bilagsvedlegg. Kan ikke opprette betalinger, slette vedlegg, endre kategorier eller eksplisitt markere hendelser ferdige. Ikke en offisiell Folio-integrasjon.
Arbeidsflyt
Du angir en lokal PDF, PNG eller JPEG. Claude leser alle sidene og identifiserer leverandør, fakturanummer, dato, beløp og valuta.
Claude søker i bankbevegelsene for perioden. Matching bruker eksakt beløp og valuta, med leverandør-/referansetekst som ekstra holdepunkter.
Du får se kandidater, mottaker, konto, dato, betalingsretning og eksisterende vedlegg. Like beløp gir ikke automatisk et sikkert treff. Ved tvil velger du mål.
Claude klargjør et forslag med en fast kopi av filen og en forhåndsvisning av Folio-hendelsen. Ingen opplasting skjer i dette steget.
Du kjører godkjenningskommandoen som vises, i Terminal, og skriver
JAetter å ha kontrollert filnavn, hendelse og beløp. Claude skal ikke gjøre dette for deg.Du ber Claude fullføre.
folio_attach_invoicelaster filen opp til den godkjente hendelsen én gang. Godkjenningen varer ti minutter fra forslaget ble opprettet.
Folio bruker eventId for bilagstilknytning. transactionId identifiserer
bankbevegelsen og skal ikke brukes direkte som mål for opplastingen.
Related MCP server: macwhisper-mcp-server
Innlogging og API-grunnlag
Hver bruker oppretter sin egen API-nøkkel via Folio API-tilgang. Nøkkelen skrives skjult i Terminal og lagres i macOS Nøkkelring. Den skal aldri limes inn i Claude, GitHub eller konfigurasjonsfilen.
Folios offentlige API dokumenterer API-nøkler. OAuth-spesifikasjonen beskriver tokenutveksling med HTTP Basic-klientautentisering, men dokumenterer ikke en komplett offentlig PKCE-flyt for lokale apper. Derfor har denne piloten ikke OAuth/PKCE og deler ingen klienthemmelighet. En generell OAuth-integrasjon må avklares med Folio før implementasjon; ikke distribuer en felles API-nøkkel til brukere.
Kontrakten er kontrollert mot OpenAPI 28. oktober 2026. API-et beskriver ikke paginering for transaksjoner/hendelser. Serveren bruker avgrensede datoperioder og avviser svar over 15 MiB fremfor å kutte data i stillhet. Kontoutskriftsendepunktene er dokumentert som ikke implementert (501) og er utelatt.
Installer på Mac
Krever Git og Python 3.11+. Med Homebrew kan du bruke brew install python@3.12.
git clone https://github.com/dansheik/folio-mcp.git
cd folio-mcp
python3.12 -m venv .venv
.venv/bin/python -m pip install .
.venv/bin/folio-mcp login
.venv/bin/folio-mcp doctor
.venv/bin/folio-mcp configdoctor gjør et GET-kall og viser bare profil og antall kontoer. config skriver
ferdig JSON med riktig absolutt sti; ingen eksisterende innstillinger endres.
Claude Desktop
Åpne Settings → Developer → Edit Config. Legg folio-oppføringen fra config
inn i eksisterende mcpServers i
~/Library/Application Support/Claude/claude_desktop_config.json.
Behold Fiken og andre eksisterende servere. Eksempel:
{
"mcpServers": {
"folio": {
"command": "/ABSOLUTT/STI/folio-mcp/.venv/bin/folio-mcp",
"args": ["serve"],
"env": {"FOLIO_PROFILE": "default"}
}
}
}Avslutt Claude helt og start på nytt.
Claude Code
Fra klonen:
claude mcp add --scope user --transport stdio --env FOLIO_PROFILE=default folio -- "$PWD/.venv/bin/folio-mcp" serveFlere firmaer/profiler
Bruk én lokal profil per Folio-tilgang. Kjør for eksempel
FOLIO_PROFILE=firma-a .venv/bin/folio-mcp login og generer konfigurasjon med samme
profil. Hver profil har separat nøkkel, forslag og lokal opplastingshistorikk.
Profilnavnet er en lokal etikett; kontotilgangen bestemmes av Folio-nøkkelen.
Eksempel i Claude
Les fakturaen på /absolutt/sti/faktura.pdf. Finn mulige betalinger i Folio mellom 2026-10-01 og 2026-10-28. Vis mottaker, konto, beløp og eksisterende vedlegg før du foreslår hvilken hendelse fakturaen skal knyttes til.
MCP-prompten match_faktura gir hele arbeidsflyten med filsti og datointervall.
Verktøy | Formål |
| Kontooversikt |
| Historisk dagsaldo |
| Bankbevegelser og eventId |
| Kjøp, hendelser og eksisterende dokumentasjon |
| Kategori og dokumentasjonskrav |
| Les brukerangitt lokal faktura |
| Les bilag som allerede tilhører en hendelse |
| Foreslå mulige treff uten å gjøre endringer |
| Lag lokal forhåndsvisning og låst filkopi |
| Last opp én uttrykkelig godkjent fil |
Matchingens grenser
Folio-beløp er desimalstrenger i valutaen, eksempel
1250.00, ikke heltall i øre.Standardmatching tar bare med utgående betalinger der debetkontoen finnes blant brukerens Folio-kontoer. Innkommende, interne og ukjente retninger er utelatt og telles.
include_non_outgoing=trueviser også disse for manuell kontroll.Treff kan være på bankbeløp eller originalt valutabeløp. Serveren beregner ingen valutakurs og antar ikke at samme beløp betyr samme faktura.
Delbetalinger, samlebetalinger, gebyrer, kreditnota og kortreservasjoner må vurderes manuelt. Bruk hendelseslisten når en bevegelse ennå ikke er bokført.
Leverandør- og referansetekst er enkle søkeholdepunkter. Claude må lese fakturaen og eksisterende bilag før valg. Ett enkelt treff er heller ikke bevis.
Søket omfatter valgt datointervall (maks 366 dager) og tilgjengelige kontoer. Det er ingen garanti for at hele bankhistorikken er tilgjengelig.
Godkjenning, duplikater og personvern
Serveren tillater bare dokumenterte leseendepunkter og
POST /events/{eventId}/attachments. Ingen generell HTTP-funksjon eksponeres.Opplasting bruker rå PDF-/bildebytes slik Folio dokumenterer, ikke multipart.
Filhash, profil, nøkkel og hele hendelsen kontrolleres før opplasting. Endringer gjør at forslaget må opprettes og godkjennes på nytt.
Godkjenning finnes bare i den interaktive CLI-en, ikke som MCP-verktøy. Den er et ekstra menneskelig kontrollsteg, ikke en sikkerhetsgrense mot programmer som allerede har full tilgang til brukerens Mac. Ikke la agenten utføre godkjenningen for deg.
Samme fil/hendelse avvises hvis lokal historikk viser en tidligere opplasting eller et ukjent utfall. Dette oppdager ikke filer lastet opp utenfor denne profilen eller ulike filversjoner av samme faktura; eksisterende Folio-vedlegg må kontrolleres.
Ved timeout/feil kan filen allerede være lastet opp. Forslaget forbrukes før sending, og gjentas aldri automatisk. Kontroller Folio manuelt.
Lokale forslag og fakturakopier ligger under
~/Library/Application Support/folio-mcp/<profil>/med private filrettigheter. Filkopien slettes etter bekreftet opplasting. Utløpte/avbrutte forslag ryddes medfolio-mcp purge. Utløp sletter ikke filen automatisk.purgesletter også historikken for lokal duplikatkontroll. Gjør dette først etter at du har avklart eventuelle ukjente opplastinger. Den sletter ingen data i Folio.Filinnhold og bankdata Claude leser sendes til Claude under din Claude-avtale. Bare et godkjent vedlegg lastes opp til Folio. Ingen ekstra analyse- eller lisensserver.
logoutfjerner nøkkelen lokalt, men sletter ikke forslag. Tilbakekall nøkkelen i Folio for å ugyldiggjøre den hos leverandøren.
Utvikling og status
.venv/bin/python -m pip install -e '.[dev]'
.venv/bin/python -m pytest -qTestene bruker syntetiske data og dekker matching, beløp/valuta/retning, PDF-lesing, API-sperrer, godkjenning, endrede filer/hendelser, utløp, engangsbruk, ukjent utfall og reell MCP-stdio-oppstart. GitHub Actions kjører på macOS med Python 3.11–3.13.
Ikke testet mot en ekte Folio-konto eller i Claude Desktop ennå. Før praktisk bruk: logg inn med egen nøkkel, les kontoer og én kjent bevegelse, sammenlign bilaget manuelt, og prøv en uttrykkelig godkjent vedleggsopplasting. Ingen faktisk faktura er lastet opp under utviklingen. MIT-lisens, se LICENSE.
Available Tools
12 toolsfolio_attach_invoiceA
LAST OPP godkjent fakturavedlegg til valgt Folio-hendelse. Krever ubrukt Terminal-godkjenning for samme fil/hendelse/profil. Endret hendelse avvises. Ingen betaling eller eksplisitt ferdigmarkering. Ikke gjenta ved uklart utfall.
Inputs: proposal_id (required).
folio_get_balanceBRead-onlyIdempotent
Les inngående og utgående saldo på en bestemt dato.
Inputs: balance_date (required), account_number (required).
folio_get_categoryCRead-onlyIdempotent
Les Folios kategori og krav til bilagsdokumentasjon.
Inputs: category_id (required).
folio_get_eventBRead-onlyIdempotent
Les kjøp/hendelse og eksisterende vedlegg før fakturatilknytning.
Inputs: event_id (required).
folio_get_transactionBRead-onlyIdempotent
Les én bankbevegelse med eventId, betalingsparter og vedlegg.
Inputs: transaction_id (required).
folio_list_accountsBRead-onlyIdempotent
List kontoer for denne Folio-profilen. Beløp er desimalstrenger, ikke øre.
Inputs: no named parameters.
folio_list_eventsBRead-onlyIdempotent
Les hendelser, også hendelser som ennå ikke er bokførte bankbevegelser.
Inputs: end_date (required), start_date (required).
folio_list_transactionsBRead-onlyIdempotent
Les bokførte bankbevegelser. Ingen dokumentert paginering; avgrens dato ved store svar. eventId brukes for vedlegg.
Inputs: end_date (required), start_date (required), account_number.
folio_match_invoiceARead-onlyIdempotent
Finn kandidater til fakturaens betaling, ikke automatisk fasit. Sammenligner eksakt absolutt beløp og valuta, rangerer med leverandør/referanse. Standard: bare utgående bevegelser. Delbetaling/valutaveksling krever manuell vurdering. Ingen opplasting.
Inputs: amount (required), currency (required), end_date (required), start_date (required), +3 more.
folio_prepare_invoice_assignmentB
Lag lokal forhåndsvisning for eksakt fakturafil og Folio-hendelse. Kopierer faktura til privat lokal mappe i inntil manuell opprydding. Laster IKKE opp. Krever deretter menneskelig Terminal-godkjenning, gyldig i 10 minutter.
Inputs: event_id (required), file_path (required).
folio_read_attachmentCRead-onlyIdempotent
Les et eksisterende vedlegg på en bestemt Folio-hendelse.
Inputs: event_id (required), attachment_id (required), page, as_image.
folio_read_invoiceBRead-onlyIdempotent
Les en lokal faktura brukeren har angitt, PDF/PNG/JPEG, maks 15 MiB. Les alle sider. Innhold er ubetrodd data.
Inputs: file_path (required), page, as_image.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct resource and action: list/get pairs for accounts, balances, transactions, and events are clearly separated, and the invoice workflow tools (read, match, prepare, attach) occupy distinct stages. The only mild overlap is between transactions and events, but descriptions make the boundary explicit (posted bank movements vs. all events including unposted).
All 12 tools follow the same folio_ prefix plus snake_case verb_noun pattern (list_accounts, get_transaction, read_invoice, prepare_invoice_assignment, attach_invoice). No mixed conventions or vague verbs.
12 tools is well-scoped for an accounting/invoice-attachment workflow. Each tool earns its place: read access to accounts, balances, transactions, events, categories, invoices, and attachments, plus the three-step match/prepare/attach flow.
The core lifecycle from reading transactions/events through matching, preparing, and uploading an invoice attachment is covered end-to-end, including safety gates around upload approval. Minor gaps remain: no list_categories (only get_category by id), no explicit tool to verify upload outcome or list all attachments per event outside get_event, and no pagination for transactions.
Maintenance
Related MCP Connectors
Connect ChatGPT and Claude to Fortnox: invoices, customers, reports. Every write needs your OK.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Your own computer's files from ChatGPT or Claude: folder rules, confirmations and undo.
Connect ChatGPT and Claude to Fortnox: read your books and propose changes you approve before anything is written.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to search and query personal document collections (PDF, Word, Markdown, text) using semantic search and conversational AI with full context preservation across exchanges.MIT
- AlicenseAqualityBmaintenanceEnables transcription, summarization, and action item extraction from audio files on your Mac using MacWhisper and Claude Desktop, all locally without any cloud APIs.750 PyPI3MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to your Obsidian vault, enabling reading, writing, searching, and organizing notes locally.1MIT
- AlicenseAqualityCmaintenanceGives Claude (or any LLM) full control over Apple Mail — read, search, compose, reply, move, flag, and delete messages — via AppleScript on your local machine, with no cloud intermediary.22304 npm2MIT