F-sąskaita MCP by usefulapi
Read invoices, expenses and PDFs; create invoices and record expenses in F-sąskaita.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWfsaskaita_download_expense_file에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"f-saskaita": {
"url": "https://f-saskaita.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://f-saskaita.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (12)
🟢fsaskaita_get_profile
Get the business that the token belongs to: name, business type, address, VAT code and company code. A good first call. GET /profile.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_list_currencies
List the currency codes and titles that invoices and expenses accept. GET /currencies.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_list_invoices(page)
List finalized invoices, newest first, 50 per page. Drafts made in the app are not included. The meta block gives current_page, last_page and total. GET /invoices.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1. Each page holds 50 items.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_get_invoice(invoice_id)
Get one invoice with its seller, buyer, lines (products), payment options, totals and share_link. GET /invoices/{invoice}.
입력 스키마
{
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_download_invoice_pdf(invoice_id)
Download the PDF of one invoice. Returns the file as base64 with its content type and file name. Files over 3 MB are refused. GET /invoices/{invoice}/download.
입력 스키마
{
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_list_expenses(page)
List expenses, newest first, 50 per page. Each item has date, total, currency, seller and timestamps. GET /expenses.
입력 스키마
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1. Each page holds 50 items.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_get_expense(expense_id)
Get one expense: date, total (with VAT), currency, seller and timestamps. The stored VAT and supplier invoice number are not returned. GET /expenses/{expense}.
입력 스키마
{
"type": "object",
"properties": {
"expense_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
}
},
"required": [
"expense_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢fsaskaita_download_expense_file(expense_id)
Download the document file (receipt or invoice) of one expense. Returns the file as base64 with its content type and file name. Files over 3 MB are refused. GET /expenses/{expense}/download.
입력 스키마
{
"type": "object",
"properties": {
"expense_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
}
},
"required": [
"expense_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴fsaskaita_create_invoice(type, invoice_date, pay_until_date, series, notes, ...)
WRITE: create and finalize a new invoice in the business. It takes a number, queues its PDF and fires the invoice.created webhook. Omit invoice_number to take the next number of the series. The call is NOT repeatable: after a network error, list invoices before you retry. POST /invoices.
입력 스키마
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"regular_invoice",
"vat_invoice",
"preliminary_invoice",
"preliminary_vat_invoice",
"credit_invoice",
"credit_vat_invoice"
],
"description": "Invoice type. The *vat_invoice types need vat_percentage on every line."
},
"invoice_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Issue date, yyyy-mm-dd."
},
"pay_until_date": {
"description": "Due date, yyyy-mm-dd.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"series": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Series code. A new code starts its own number counter."
},
"notes": {
"description": "Free text printed under the lines.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"invoice_number": {
"description": "Number within the series, unique there. Omit on create to auto-number.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"currency": {
"type": "string",
"minLength": 1,
"description": "Currency code from fsaskaita_list_currencies, e.g. EUR."
},
"payment_status": {
"description": "Defaults to not_paid on create.",
"anyOf": [
{
"type": "string",
"enum": [
"not_paid",
"paid"
]
},
{
"type": "null"
}
]
},
"language": {
"description": "Language of the PDF and share page. Defaults to lt.",
"anyOf": [
{
"type": "string",
"enum": [
"en",
"lt",
"es",
"de",
"fr",
"pl"
]
},
{
"type": "null"
}
]
},
"buyer": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"company",
"individual",
"person"
],
"description": "company or individual. person is a legacy alias of individual."
},
"company_name": {
"description": "Required for companies; not allowed for individuals.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"company_code": {
"description": "Company registration code; not allowed for individuals.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"first_name": {
"description": "Required for individuals; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"last_name": {
"description": "Required for individuals; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"individual_activity_id": {
"description": "Individual activity certificate number; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"vat_code": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
}
},
"required": [
"type"
]
},
"use_default_seller_info": {
"description": "true copies the seller block from the business profile. Then omit seller.",
"type": [
"boolean",
"null"
]
},
"seller": {
"description": "Required unless use_default_seller_info is true.",
"anyOf": [
{
"type": "object",
"properties": {
"company_name": {
"description": "Companies only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"company_code": {
"description": "Companies only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"first_name": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"last_name": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"individual_activity_id": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"vat_code": {
"description": "Required for the *vat_invoice types.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"custom_fields": {
"description": "Extra label/value pairs printed in the seller block.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 255
},
"value": {
"type": "string",
"maxLength": 255
}
},
"required": [
"label",
"value"
]
}
},
{
"type": "null"
}
]
}
}
},
{
"type": "null"
}
]
},
"products": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"units": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Unit of measure, e.g. h, pcs."
},
"quantity": {
"type": "number"
},
"price": {
"description": "Unit price excluding VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"total": {
"description": "Line total excluding VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"total_incl_vat": {
"description": "Line total including VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"vat_percentage": {
"description": "VAT rate 0-100. Required on every line for the *vat_invoice types.",
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"units",
"quantity"
]
},
"description": "Invoice lines, at least one."
},
"payment_options": {
"description": "Payment details printed on the invoice.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"bank",
"other"
],
"description": "bank takes the bank fields; other takes free-form fields."
},
"bank_account": {
"description": "IBAN. Required for bank; not allowed for other.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"bank_name": {
"description": "Required for bank; not allowed for other.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"routing_or_sort_number": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"swift_bic_code": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"fields": {
"description": "Required for other.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 255
},
"value": {
"type": "string",
"maxLength": 255
}
},
"required": [
"label",
"value"
]
}
},
{
"type": "null"
}
]
}
},
"required": [
"type"
]
}
},
{
"type": "null"
}
]
}
},
"required": [
"type",
"invoice_date",
"series",
"currency",
"buyer",
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴fsaskaita_update_invoice(invoice_id, type, invoice_date, pay_until_date, series, ...)
WRITE: replace EVERY field of an existing invoice with the values you send. Read the invoice first with fsaskaita_get_invoice and resend all of it. invoice_number is required: without it the invoice is renumbered. Lines, payment options and seller fields are rewritten and the PDF is regenerated. PUT /invoices/{invoice}.
입력 스키마
{
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
},
"type": {
"type": "string",
"enum": [
"regular_invoice",
"vat_invoice",
"preliminary_invoice",
"preliminary_vat_invoice",
"credit_invoice",
"credit_vat_invoice"
],
"description": "Invoice type. The *vat_invoice types need vat_percentage on every line."
},
"invoice_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Issue date, yyyy-mm-dd."
},
"pay_until_date": {
"description": "Due date, yyyy-mm-dd.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"series": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Series code. A new code starts its own number counter."
},
"notes": {
"description": "Free text printed under the lines.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"invoice_number": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "The current number of the invoice, e.g. 007 or 7. Always resend it."
},
"currency": {
"type": "string",
"minLength": 1,
"description": "Currency code from fsaskaita_list_currencies, e.g. EUR."
},
"payment_status": {
"description": "Defaults to not_paid on create.",
"anyOf": [
{
"type": "string",
"enum": [
"not_paid",
"paid"
]
},
{
"type": "null"
}
]
},
"language": {
"description": "Language of the PDF and share page. Defaults to lt.",
"anyOf": [
{
"type": "string",
"enum": [
"en",
"lt",
"es",
"de",
"fr",
"pl"
]
},
{
"type": "null"
}
]
},
"buyer": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"company",
"individual",
"person"
],
"description": "company or individual. person is a legacy alias of individual."
},
"company_name": {
"description": "Required for companies; not allowed for individuals.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"company_code": {
"description": "Company registration code; not allowed for individuals.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"first_name": {
"description": "Required for individuals; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"last_name": {
"description": "Required for individuals; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"individual_activity_id": {
"description": "Individual activity certificate number; not allowed for companies.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"vat_code": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
}
},
"required": [
"type"
]
},
"use_default_seller_info": {
"description": "true copies the seller block from the business profile. Then omit seller.",
"type": [
"boolean",
"null"
]
},
"seller": {
"description": "Required unless use_default_seller_info is true.",
"anyOf": [
{
"type": "object",
"properties": {
"company_name": {
"description": "Companies only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"company_code": {
"description": "Companies only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"first_name": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"last_name": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"individual_activity_id": {
"description": "Individual activities only.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"vat_code": {
"description": "Required for the *vat_invoice types.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"custom_fields": {
"description": "Extra label/value pairs printed in the seller block.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 255
},
"value": {
"type": "string",
"maxLength": 255
}
},
"required": [
"label",
"value"
]
}
},
{
"type": "null"
}
]
}
}
},
{
"type": "null"
}
]
},
"products": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"units": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Unit of measure, e.g. h, pcs."
},
"quantity": {
"type": "number"
},
"price": {
"description": "Unit price excluding VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"total": {
"description": "Line total excluding VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"total_incl_vat": {
"description": "Line total including VAT. Give exactly one of price, total, total_incl_vat.",
"type": [
"number",
"null"
]
},
"vat_percentage": {
"description": "VAT rate 0-100. Required on every line for the *vat_invoice types.",
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"units",
"quantity"
]
},
"description": "Invoice lines, at least one."
},
"payment_options": {
"description": "Payment details printed on the invoice.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"bank",
"other"
],
"description": "bank takes the bank fields; other takes free-form fields."
},
"bank_account": {
"description": "IBAN. Required for bank; not allowed for other.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"bank_name": {
"description": "Required for bank; not allowed for other.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"routing_or_sort_number": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"swift_bic_code": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"fields": {
"description": "Required for other.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 255
},
"value": {
"type": "string",
"maxLength": 255
}
},
"required": [
"label",
"value"
]
}
},
{
"type": "null"
}
]
}
},
"required": [
"type"
]
}
},
{
"type": "null"
}
]
}
},
"required": [
"invoice_id",
"type",
"invoice_date",
"series",
"invoice_number",
"currency",
"buyer",
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴fsaskaita_create_expense(currency, total, vat, seller, date, ...)
WRITE: record a new expense with its document file (receipt or invoice from a supplier). The file is required. The call fires the expense.created webhook and is NOT repeatable: list expenses before you retry after a network error. POST /expenses (multipart).
입력 스키마
{
"type": "object",
"properties": {
"currency": {
"type": "string",
"minLength": 1,
"description": "Currency code from fsaskaita_list_currencies, e.g. EUR."
},
"total": {
"type": "number",
"description": "Amount including VAT."
},
"vat": {
"description": "VAT amount inside total. Stored but not returned.",
"type": [
"number",
"null"
]
},
"seller": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Supplier name."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Document date, yyyy-mm-dd."
},
"invoice_number": {
"description": "Supplier's document number. Stored but not returned.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"file_base64": {
"type": "string",
"minLength": 1,
"maxLength": 4194304,
"description": "The document as standard base64, up to about 3 MB of file bytes."
},
"filename": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "File name with its extension. Allowed: jpeg, jpg, bmp, gif, pdf, png, tiff, xlsx, xls, doc, docx, odf."
}
},
"required": [
"currency",
"total",
"seller",
"date",
"file_base64",
"filename"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴fsaskaita_update_expense(expense_id, currency, total, vat, seller, ...)
WRITE: replace EVERY field of an existing expense. Read it first with fsaskaita_get_expense and resend all of it. Stored VAT and supplier invoice number are not returned, so send them again if you need them. The file is optional: when you send one it replaces the stored file. PUT /expenses/{expense} (multipart).
입력 스키마
{
"type": "object",
"properties": {
"expense_id": {
"type": "string",
"minLength": 1,
"description": "The UUID from a list or get tool."
},
"currency": {
"type": "string",
"minLength": 1,
"description": "Currency code from fsaskaita_list_currencies, e.g. EUR."
},
"total": {
"type": "number",
"description": "Amount including VAT."
},
"vat": {
"description": "VAT amount inside total. Stored but not returned.",
"type": [
"number",
"null"
]
},
"seller": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Supplier name."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Document date, yyyy-mm-dd."
},
"invoice_number": {
"description": "Supplier's document number. Stored but not returned.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"file_base64": {
"type": "string",
"minLength": 1,
"maxLength": 4194304,
"description": "The document as standard base64, up to about 3 MB of file bytes."
},
"filename": {
"description": "File name with extension. Needed with file_base64.",
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"expense_id",
"currency",
"total",
"seller",
"date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거