MCP-verktyg: fullständig referens
Alla sexton verktyg i Astrids MCP-server med parametrar, returvärden och behörighet.
Sexton verktyg: tretton som läser, tre som föreslår. Inget som bokför.
Alla datum är ÅÅÅÅ-MM-DD. Alla belopp är SEK. Allt är automatiskt begränsat
till den organisation nyckeln tillhör, så du behöver aldrig skicka ett org-id.
Läsverktyg
Fungerar med både VIEWER- och MEMBER-nyckel.
get_bookkeeping_status
Läget i ett svep. Gör det här anropet först.
Parametrar: inga.
Returnerar: todoTransactions (banktransaktioner kvar att bokföra),
pendingReview (förslag som väntar på en människa),
receiptsAwaitingInterpretation, currentFiscalYear
(startDate, endDate, isClosed), lastBookedAt och nextDeadlines
(kommande deadlines med datum, titel och kategori).
get_overview
Ekonomiskt nuläge: likviditet, momsskuld, kommande betalningar och räkenskapsårets resultat. Samma underlag som Översikt i appen.
Parametrar: inga.
get_moms_report
Momsdeklarationens rutor (SKV 4700) för en period.
| Parameter | Typ | Krav |
|---|---|---|
from |
ÅÅÅÅ-MM-DD |
Ja |
to |
ÅÅÅÅ-MM-DD |
Ja |
Perioden ska matcha organisationens momsperiod. Den finns i
get_radgivning. Skicka inte ett godtyckligt intervall och kalla resultatet en
deklaration.
get_genomgang
Astrids deterministiska genomgång av bokföringen: betyg A till D, poäng 0 till 100, tio kontroller och regelefterlevnad för innevarande räkenskapsår.
Parametrar: inga.
Det AI-skrivna narrativet ingår inte över MCP. Du får kontrollerna och resultatet, alltså de delar som är reproducerbara.
get_radgivning
Deadline-radar och deterministisk CFO-analys: kommande deadlines, 3:12, preliminärskatt och kontrollbalans. Inga AI-anrop.
Parametrar: inga.
list_todo_transactions
Den riktiga att-bokföra-kön. Avstämda rader är dolda, och rader som redan har ett
förslag i granskningskön är flaggade med pendingReview.
| Parameter | Typ | Krav |
|---|---|---|
limit |
heltal 1 till 200 | Nej |
Använd den här, inte den råa transaktionslistan i REST-API:et, när du vill veta vad som faktiskt återstår.
list_review_items
Granskningskön: Astrids och dina förslag som väntar på ett mänskligt beslut.
| Parameter | Typ | Krav |
|---|---|---|
status |
PENDING, APPROVED, REJECTED, MODIFIED |
Nej, standard PENDING |
MODIFIED är värdefull: det är förslag människan ändrade innan hen godkände.
Det är den bästa signalen på hur den här organisationen vill ha det konterat.
list_journal_entries
Bokförda verifikationer, paginerat.
| Parameter | Typ | Krav |
|---|---|---|
series |
sträng, 1 till 10 tecken | Nej |
from |
ÅÅÅÅ-MM-DD |
Nej |
to |
ÅÅÅÅ-MM-DD |
Nej |
page |
heltal från 1 | Nej |
limit |
heltal 1 till 200 | Nej |
Det här är din prejudikatkälla. Innan du föreslår en kontering: sök upp hur samma leverantör konterats tidigare.
get_journal_entry
En verifikation med alla rader (konto och kontonamn), kostnadsställen och underlag.
| Parameter | Typ | Krav |
|---|---|---|
id |
sträng från list_journal_entries |
Ja |
list_invoices
Kund- och leverantörsfakturor, paginerat, sorterat på fakturadatum fallande.
| Parameter | Typ | Krav |
|---|---|---|
type |
CUSTOMER eller SUPPLIER |
Nej |
status |
PENDING, BOOKED eller CANCELLED |
Nej |
q |
fritext mot fakturanummer, kundnamn och leverantörsnamn, max 100 tecken | Nej |
page |
heltal från 1 | Nej |
limit |
heltal 1 till 100 | Nej |
q matchar delsträngar och inte exakta värden. Astrids egna fakturanummer är
rena heltal, så en sökning på 43 träffar även 143 och 430. Kontrollera fältet
number i svaret innan du påstår att du hittat en bestämd faktura.
Läs status rätt: det är ett bokföringsläge, inte ett betalningsläge. Astrid
registrerar aldrig att en faktura är betald. PENDING betyder obokförd och
BOOKED betyder bokförd. Inget av dem säger något om huruvida pengarna har
kommit in. Frågar användaren vad som är betalt, så avgörs det mot banken och
inte mot det här fältet.
Statusvärdena PAID, OVERDUE och MATCHED finns i databasmodellen men sätts
aldrig av någon kodväg, så de går inte att filtrera på.
dueDate finns på varje faktura, men går varken att filtrera eller sortera på.
Vill du veta vad som förfaller: hämta och jämför själv mot dagens datum.
Fälten pdfUrl och sentToEmail ingår inte i svaret. Det första är en intern
lagringsadress du ändå inte kan öppna, det andra är en motparts personuppgift.
get_invoice
En faktura med alla rader (beskrivning, antal, à-pris exklusive moms och momssats).
| Parameter | Typ | Krav |
|---|---|---|
id |
sträng från list_invoices |
Ja |
list_receipts
Kvitton med härledd status: bokförd, matchad, väntar på granskning, tolkas eller arkiverad.
| Parameter | Typ | Krav |
|---|---|---|
limit |
heltal 1 till 200 | Nej |
list_missing_underlag
Bokförda utbetalningar som saknar kvitto eller faktura. Grunden för kvittojakt.
| Parameter | Typ | Krav |
|---|---|---|
from |
ÅÅÅÅ-MM-DD |
Nej |
to |
ÅÅÅÅ-MM-DD |
Nej |
limit |
heltal 1 till 200 | Nej |
Varje rad har transactionId, date, description, amount (negativt) och
vendor. Kända leverantörer (Google, Adobe, OpenAI med flera) har en vendor
med portalUrl, steps och agentPlaybook: instruktioner för att hämta
dokumentet i användarens egen inloggade webbläsare.
Följ playbooken exakt. Endast fakturerings- och kvittosidor. Aldrig kontoinställningar, aldrig inloggningsuppgifter, ändra ingenting.
Förslagsverktyg
Kräver MEMBER-nyckel. En VIEWER-nyckel får ett svenskt nekande.
Inget av dem bokför. Alla tre landar i granskningskön.
categorize_transactions
Låter Astrids egen kategoriserare föreslå kontering för obokförda banktransaktioner. Skapar förslag i granskningskön.
| Parameter | Typ | Krav |
|---|---|---|
transactionIds |
lista med strängar, högst 100 | Nej, utan den tas de nyaste obokförda |
Kostar AI-anrop: räknas mot 20 per timme. Ett anrop per transaktion.
Auto-bokföring är hårdkodat avstängd på den här vägen. Även om organisationen skulle ha den påslagen kan en agentutlöst kategorisering aldrig bokföra.
propose_verification
Föreslå en hel verifikation. Landar i Granska märkt "Förslag från agent" med nyckelns namn.
| Parameter | Typ | Krav |
|---|---|---|
date |
ÅÅÅÅ-MM-DD, måste vara ett verkligt datum |
Ja |
description |
sträng, högst 200 tecken | Ja |
lines |
minst två rader | Ja |
reasoning |
sträng, högst 1000 tecken | Nej, men använd den |
Varje rad i lines:
| Fält | Typ | Krav |
|---|---|---|
account |
exakt fyra siffror, ett BAS-konto | Ja |
debit |
belopp | Ja |
credit |
belopp | Ja |
description |
sträng, högst 200 tecken | Nej |
costCenter |
kod för kostnadsställe | Nej |
Debet måste vara lika med kredit. Balanskontrollen görs innan förslaget skapas, så en obalanserad verifikation avvisas direkt.
reasoning är din chans att vara ärlig. Skriv vad du grundade konteringen på och
vad du är osäker på. Människan läser den innan hen godkänner.
Svar: reviewItemId, status: "PENDING" och en påminnelse om att en människa
måste godkänna. Rapportera det ordagrant till användaren.
upload_receipt
Ladda upp ett kvitto eller en faktura till organisationens arkiv.
| Parameter | Typ | Krav |
|---|---|---|
fileName |
sträng, högst 200 tecken | Ja |
mediaType |
application/pdf, image/jpeg, image/png, image/webp, image/gif |
Ja |
dataBase64 |
filen som base64, högst 10 MB avkodat | Ja |
transactionId |
från list_missing_underlag |
Nej, men använd den |
userNote |
sträng, högst 500 tecken | Nej |
Med transactionId kopplas dokumentet direkt som underlag till rätt
transaktion. Utan den arkiveras det och människan får matcha manuellt. Skicka
alltid transactionId när du vet vilken transaktion dokumentet hör till.
Originalet arkiveras alltid innan det tolkas, enligt Bokföringslagen. Identiskt
innehåll utan transactionId är en idempotent no-op.
Kostar AI-anrop (avläsning med vision): räknas mot 20 per timme.
Fyra utfall: attached (arkiverat och kopplat), archived (arkiverat, ingen
transaktion angavs), duplicate (fanns redan) och fel om transaktionen inte
finns i organisationen.
Färdiga recept
Servern registrerar också fyra prompter som din klient kan visa som färdiga
åtgärder: manadskoll, kvittojakt, momskoll och foreslakontering. De är
beskrivna i Arbetsflöden.