Quipu MCP by usefulapi
Read contacts, invoices and book entries; create contacts and draft invoices in Quipu.
使うべきか
品質と安全性
検出事項(2)
- LOWquipu_list_accounting_categories 内
- LOWquipu_list_accounting_subcategories 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"quipu": {
"url": "https://quipu.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://quipu.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(11)
🟢quipu_list_contacts(kind, tax_id, country, email, q, ...)
List contacts (clients and suppliers) of the Quipu account. Filter by kind, tax id, country, email or free text.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"description": "Only clients or only suppliers.",
"type": "string",
"enum": [
"client",
"supplier"
]
},
"tax_id": {
"description": "Exact NIF/CIF/tax id.",
"type": "string"
},
"country": {
"description": "Two-letter country code, for example ES.",
"type": "string"
},
"email": {
"type": "string"
},
"q": {
"description": "Free-text search (name, tax id, email).",
"type": "string"
},
"sort": {
"description": "Sort field; prefix with - for descending.",
"type": "string"
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_get_contact(contact_id)
Get one contact by id, with its totals of paid and unpaid incomes and expenses.
入力スキーマ
{
"type": "object",
"properties": {
"contact_id": {
"description": "Quipu resource id (integer).",
"type": [
"string",
"number"
]
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_list_invoices(kind, q, period, operation_date, operation_date_from, ...)
List invoices (issued and received). Filter by kind, period, operation date, payment status or contact. Totals and PDF links are in the attributes.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"description": "income = issued invoices, expenses = received invoices.",
"type": "string",
"enum": [
"income",
"expenses"
]
},
"q": {
"description": "Free-text search.",
"type": "string"
},
"period": {
"description": "Period such as \"2024Q1\" or \"2024-01\".",
"type": "string"
},
"operation_date": {
"description": "Year (2024), quarter (2024-Q1), month (2024-3) or all. Works with kind=income.",
"type": "string"
},
"operation_date_from": {
"description": "Start of an explicit range; send with operation_date_to. Works with kind=income.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"operation_date_to": {
"description": "End of an explicit range; send with operation_date_from.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"payment_status": {
"description": "Payment status. unpaid includes pending and overdue.",
"type": "string",
"enum": [
"paid",
"unpaid",
"due",
"pending"
]
},
"validation_status": {
"type": "string"
},
"contact_id": {
"description": "Only invoices of this contact.",
"type": [
"string",
"number"
]
},
"include": {
"description": "Comma-separated related resources to include (for example contact,items).",
"type": "string"
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_get_invoice(invoice_id, include)
Get one invoice by id. Income invoices include download_pdf_url and ephemeral_open_download_pdf_url (a temporary PDF link).
入力スキーマ
{
"type": "object",
"properties": {
"invoice_id": {
"description": "Quipu resource id (integer).",
"type": [
"string",
"number"
]
},
"include": {
"description": "Comma-separated related resources to include (for example contact,items).",
"type": "string"
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_list_book_entries(type, kind, q, period, operation_date, ...)
List all book entries (invoices, tickets and other accounting entries) in one list. Filter by type, kind, period, dates, payment status or contact.
入力スキーマ
{
"type": "object",
"properties": {
"type": {
"description": "Entry type filter.",
"type": "string"
},
"kind": {
"description": "income = issued invoices, expenses = received invoices.",
"type": "string",
"enum": [
"income",
"expenses"
]
},
"q": {
"description": "Free-text search.",
"type": "string"
},
"period": {
"description": "Period such as \"2024Q1\" or \"2024-01\".",
"type": "string"
},
"operation_date": {
"description": "Year, quarter, month or all. Works with kind=income.",
"type": "string"
},
"payment_status": {
"description": "Payment status. unpaid includes pending and overdue.",
"type": "string",
"enum": [
"paid",
"unpaid",
"due",
"pending"
]
},
"validation_status": {
"type": "string"
},
"contact_id": {
"description": "Quipu resource id (integer).",
"type": [
"string",
"number"
]
},
"include": {
"description": "Comma-separated related resources to include (for example contact,items).",
"type": "string"
},
"with_detailed_amounts": {
"description": "Add detailed amounts to each entry.",
"type": "boolean"
},
"sort": {
"type": "string"
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_list_numbering_series(applicable_to, amending, prefix, page, page_size)
List invoice numbering series (prefixes). Use a series id when you create a draft invoice.
入力スキーマ
{
"type": "object",
"properties": {
"applicable_to": {
"type": "string"
},
"amending": {
"description": "Only series for amending (credit) invoices.",
"type": "boolean"
},
"prefix": {
"type": "string"
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_list_accounting_categories(kind, prefix, active, page, page_size)
List accounting categories (chart of accounts groups). Filter by kind, prefix or active state.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"prefix": {
"type": "string"
},
"active": {
"type": "boolean"
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quipu_list_accounting_subcategories(accounting_category_id, page, page_size)
List accounting subcategories, optionally for one accounting category.
入力スキーマ
{
"type": "object",
"properties": {
"accounting_category_id": {
"description": "Quipu resource id (integer).",
"type": [
"string",
"number"
]
},
"page": {
"description": "Page number (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (1-100, default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴quipu_create_contact(name, country_code, tax_id, document_type, email, ...)
Create a contact (client or supplier). WRITE: it adds a record to the Quipu account. A tax id is needed before you invoice the contact.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Two-letter country code, for example ES."
},
"tax_id": {
"description": "NIF/CIF/tax id.",
"type": "string"
},
"document_type": {
"type": "string",
"enum": [
"NIF",
"passport",
"official_id_from_residence_country",
"residence_permit",
"other",
"none"
]
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string"
},
"town": {
"type": "string"
},
"zip_code": {
"type": "string"
},
"client_number": {
"type": "string"
},
"bank_account_number": {
"type": "string"
}
},
"required": [
"name",
"country_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡quipu_update_contact(contact_id, name, country_code, tax_id, document_type, ...)
Update fields of one contact. WRITE: it changes the record; only the fields you send change.
入力スキーマ
{
"type": "object",
"properties": {
"contact_id": {
"description": "Quipu resource id (integer).",
"type": [
"string",
"number"
]
},
"name": {
"type": "string"
},
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"tax_id": {
"type": "string"
},
"document_type": {
"type": "string",
"enum": [
"NIF",
"passport",
"official_id_from_residence_country",
"residence_permit",
"other",
"none"
]
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string"
},
"town": {
"type": "string"
},
"zip_code": {
"type": "string"
},
"client_number": {
"type": "string"
},
"bank_account_number": {
"type": "string"
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴quipu_create_draft_invoice(contact_id, numbering_series_id, operation_date, payment_method, tags, ...)
Create a DRAFT income invoice for a contact. WRITE: it adds a draft to Quipu. It sends no issue date or number, so Quipu does not issue or register the invoice; finalize it in the Quipu app.
入力スキーマ
{
"type": "object",
"properties": {
"contact_id": {
"description": "Id of the client contact.",
"type": [
"string",
"number"
]
},
"numbering_series_id": {
"description": "Numbering series id (see quipu_list_numbering_series).",
"type": [
"string",
"number"
]
},
"operation_date": {
"description": "Date of the delivery or service.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"payment_method": {
"description": "For example bank_transfer, cash, card.",
"type": "string"
},
"tags": {
"type": "string"
},
"notes": {
"type": "string"
},
"items": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"concept": {
"type": "string",
"minLength": 1
},
"unitary_amount": {
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$",
"description": "Unit price before tax, as a decimal string."
},
"quantity": {
"description": "Default 1.",
"type": "number",
"exclusiveMinimum": 0
},
"vat_percent": {
"description": "VAT percent, for example 21.",
"type": "number",
"minimum": 0,
"maximum": 100
},
"retention_percent": {
"description": "IRPF retention percent, for example 15.",
"type": "number",
"minimum": 0,
"maximum": 100
},
"discount_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"description": {
"type": "string"
}
},
"required": [
"concept",
"unitary_amount"
]
},
"description": "Invoice lines."
}
},
"required": [
"contact_id",
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス