Scrada MCP by usefulapi
Read journals, cash books and Peppol documents; record payments in Scrada.
Should I use this
Quality & Safety
Findings (8)
- LOWin scrada_list_sales_invoice_journals
- LOWin scrada_get_sales_invoice_journal
- LOWin scrada_get_sales_invoice_send_status
- LOWin scrada_add_sales_invoice_payment
- LOWin scrada_list_unconfirmed_peppol_documents
- LOWin scrada_get_peppol_inbound_document
- LOWin scrada_confirm_peppol_inbound_document
- LOWin scrada_get_peppol_outbound_status
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"scrada": {
"url": "https://scrada.usefulapi.io/mcp"
}
}
}Remote endpoints
https://scrada.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (20)
🟢scrada_get_company
Get the Scrada company that the API key belongs to: name, active flag and settings.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_journals
List all journals (daily receipts books) of the company, with their settings.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_journal(journalID)
Get one journal by its ID.
Input Schema
{
"type": "object",
"properties": {
"journalID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "journalID"
}
},
"required": [
"journalID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_journal_lines(journalID, afterMarker, fromDate, tillDate, pageSize)
List the booked lines of a journal, from every source, sorted by marker. Returns __next and __marker: keep calling with afterMarker until __next is null. Use fromDate and tillDate (yyyy-mm-dd) to limit the period.
Input Schema
{
"type": "object",
"properties": {
"journalID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "journalID"
},
"afterMarker": {
"description": "Marker from the previous page (__marker). Omit to start from the beginning.",
"type": "string"
},
"fromDate": {
"description": "Only lines dated on or after this day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"tillDate": {
"description": "Only lines dated on or before this day.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"pageSize": {
"description": "Lines per page: 1 to 250, default 100.",
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"required": [
"journalID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_payment_methods(journalID)
List the payment methods that belong to one journal.
Input Schema
{
"type": "object",
"properties": {
"journalID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "journalID"
}
},
"required": [
"journalID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_vat_categories(journalID)
List the VAT categories that belong to one journal.
Input Schema
{
"type": "object",
"properties": {
"journalID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "journalID"
}
},
"required": [
"journalID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_vat_periods
List all VAT periods of the company.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_cash_books
List all cash books (bank accounts and cash registers) of the company.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_cash_book(cashBookID)
Get one cash book by its ID.
Input Schema
{
"type": "object",
"properties": {
"cashBookID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "cashBookID"
}
},
"required": [
"cashBookID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_transaction_types(cashBookID)
List the transaction types (booking categories) of one cash book.
Input Schema
{
"type": "object",
"properties": {
"cashBookID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "cashBookID"
}
},
"required": [
"cashBookID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_sales_invoice_journals
List all sales invoice journals of the company, including inactive ones.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_sales_invoice_journal(salesInvoiceJournalID)
Get one sales invoice journal by its ID.
Input Schema
{
"type": "object",
"properties": {
"salesInvoiceJournalID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "salesInvoiceJournalID"
}
},
"required": [
"salesInvoiceJournalID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_sales_invoice_send_status(salesInvoiceID)
Get the send status of a sales invoice that was created through the API.
Input Schema
{
"type": "object",
"properties": {
"salesInvoiceID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "salesInvoiceID"
}
},
"required": [
"salesInvoiceID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴scrada_add_sales_invoice_payment(salesInvoiceID, paymentType, name, externalPaymentMethodID, amount, ...)
Record a payment on an existing final sales invoice. It updates the invoice payment status but is not booked to a journal or cash book. Not safe to repeat: each call adds another payment. A positive amount settles the invoice; a negative amount reverses a settlement.
Input Schema
{
"type": "object",
"properties": {
"salesInvoiceID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "salesInvoiceID"
},
"paymentType": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "1 Unknown, 2 Wire transfer, 3 Bank card (iDeal), 4 Direct debit, 5 Cash, 6 Credit card, 7 Online payment provider, 8 Cheque, 9 Debit card (Bancontact), 10 Standing agreement."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Name of the payment method, for example Bank transfer."
},
"externalPaymentMethodID": {
"description": "ID of the payment method in your own system, if you have one.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"amount": {
"type": "number",
"description": "Amount paid. Positive settles the invoice, negative reverses a settlement. Cannot be 0."
},
"paymentDate": {
"description": "Day of the payment, yyyy-mm-dd. Default today; cannot be in the future.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"salesInvoiceID",
"paymentType",
"name",
"amount"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_pos_receipts(afterMarker, fromReceiptCreatedOn, tillReceiptCreatedOn, pageSize)
List POS receipts of the company, sorted by marker. Returns __next and __marker: keep calling with afterMarker until __next is null. A receipt can reappear when it changes, so match on receiptID.
Input Schema
{
"type": "object",
"properties": {
"afterMarker": {
"description": "Marker from the previous page (__marker). Omit to start from the beginning.",
"type": "string"
},
"fromReceiptCreatedOn": {
"description": "Only receipts created on or after this moment. Include a timezone, for example 2026-03-09T08:00:00Z.",
"type": "string"
},
"tillReceiptCreatedOn": {
"description": "Only receipts created on or before this moment. Include a timezone.",
"type": "string"
},
"pageSize": {
"description": "Lines per page: 1 to 250, default 100.",
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_peppol_lookup(scheme, id)
Search the Peppol network for a participant. The id has two parts joined by a colon: the scheme code and the value, for example 0208:0793904121 (0208 is the Belgian enterprise number scheme).
Input Schema
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Participant identifier scheme, for example iso6523-actorid-upis."
},
"id": {
"type": "string",
"pattern": "^\\d{4}:.+$",
"description": "Participant identifier as scheme code, colon, value."
}
},
"required": [
"scheme",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_list_unconfirmed_peppol_documents
List inbound Peppol documents that are not confirmed yet (metadata only, up to 100 per call). Confirmed documents leave the list, so confirm each processed document to see the next ones.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_peppol_inbound_document(documentID)
Get one inbound Peppol document as UBL/XML (returned as text).
Input Schema
{
"type": "object",
"properties": {
"documentID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "documentID"
}
},
"required": [
"documentID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡scrada_confirm_peppol_inbound_document(documentID)
Mark an inbound Peppol document as processed, so it leaves the unconfirmed list. Confirming it again is expected to change nothing.
Input Schema
{
"type": "object",
"properties": {
"documentID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "documentID"
}
},
"required": [
"documentID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scrada_get_peppol_outbound_status(documentID)
Get the status and delivery information of an outbound Peppol document.
Input Schema
{
"type": "object",
"properties": {
"documentID": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "documentID"
}
},
"required": [
"documentID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence