Yuki MCP by usefulapi

Read Yuki administrations, open invoices, ledger balances, contacts and documents.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
94%
命名品質
76%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(4)

  • LOWTool 'yuki_list_document_folder_tabs' description lacks action verb在 yuki_list_document_folder_tabs 中
  • LOWTool 'yuki_list_outstanding_debtor_items' name length outside 3-30 range在 yuki_list_outstanding_debtor_items 中
  • LOWTool 'yuki_list_outstanding_creditor_items' name length outside 3-30 range在 yuki_list_outstanding_creditor_items 中
  • LOWTool 'yuki_list_gl_account_transactions' name length outside 3-30 range在 yuki_list_gl_account_transactions 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~4,534Token(工具定義)
~2.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.54%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "yuki": {
      "url": "https://yuki.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://yuki.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(16)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢yuki_list_domains(offset)

List the Yuki domains (customer environments) this access key can reach: id, name and URL. Accountant keys reach many domains. Accounting.Domains.

輸入結構描述

{
  "type": "object",
  "properties": {
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_administrations(offset)

List the administrations (companies with their own books) this access key can reach: id, name, address, Chamber of Commerce and VAT numbers, start date. Use the ids in the other tools. Accounting.Administrations.

輸入結構描述

{
  "type": "object",
  "properties": {
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_outstanding_debtor_items(administration_id, include_bank_transactions, sort_order, start_date, end_date, ...)

Open items on the debtors list (unpaid sales invoices): date, description, contact, open and original amount, reference, due date. Optionally within a date range. Accounting.OutstandingDebtorItems / OutstandingDebtorItemsByDate.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "include_bank_transactions": {
      "description": "Also list unmatched bank transactions as open items (default false).",
      "type": "boolean"
    },
    "sort_order": {
      "description": "Sort order (default DateDesc).",
      "type": "string",
      "enum": [
        "ContactAsc",
        "ContactDesc",
        "AmountAsc",
        "AmountDesc",
        "DateAsc",
        "DateDesc"
      ]
    },
    "start_date": {
      "description": "With end_date: only items dated in this range (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "end_date": {
      "description": "With start_date: end of the range (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_outstanding_creditor_items(administration_id, include_bank_transactions, sort_order, start_date, end_date, ...)

Open items on the creditors list (unpaid purchase invoices): date, description, contact, open and original amount, reference, due date. Optionally within a date range. Accounting.OutstandingCreditorItems / OutstandingCreditorItemsByDate.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "include_bank_transactions": {
      "description": "Also list unmatched bank transactions as open items (default false).",
      "type": "boolean"
    },
    "sort_order": {
      "description": "Sort order (default DateDesc).",
      "type": "string",
      "enum": [
        "ContactAsc",
        "ContactDesc",
        "AmountAsc",
        "AmountDesc",
        "DateAsc",
        "DateDesc"
      ]
    },
    "start_date": {
      "description": "With end_date: only items dated in this range (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "end_date": {
      "description": "With start_date: end of the range (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_get_gl_account_balance(administration_id, date, limit, offset)

The balance of every general ledger account of an administration on a date (yyyy-mm-dd): account code, description, amount. Accounting.GLAccountBalance.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Balance date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_gl_account_transactions(administration_id, gl_account_code, start_date, end_date, limit, ...)

The transactions booked on one general ledger account in a date range: date, description, amount, contact, project. Get account codes from yuki_get_gl_account_scheme. Accounting.GLAccountTransactions.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "gl_account_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32,
      "pattern": "^[A-Za-z0-9._-]+$",
      "description": "General ledger account code, e.g. 80000."
    },
    "start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "First day, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Last day, yyyy-mm-dd."
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "gl_account_code",
    "start_date",
    "end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_get_net_revenue(administration_id, start_date, end_date)

The net revenue (turnover) of an administration in a date range, by transaction date. Accounting.NetRevenue.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "First day, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Last day, yyyy-mm-dd."
    }
  },
  "required": [
    "start_date",
    "end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_get_gl_account_scheme(administration_id, limit, offset)

The general ledger accounts (chart of accounts) of an administration: code, description, type. Use the codes in yuki_list_gl_account_transactions. AccountingInfo.GetGLAccountScheme.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_projects(administration_id, search_option, search_value, limit, offset)

Projects of an administration (code, description, company, contact, period, budgets), optionally filtered. AccountingInfo.GetProjects.

輸入結構描述

{
  "type": "object",
  "properties": {
    "administration_id": {
      "description": "Yuki administration id (from yuki_list_administrations). Optional when the key has a single administration.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "search_option": {
      "description": "Field to search in (default All).",
      "type": "string",
      "enum": [
        "All",
        "Company",
        "Code",
        "Description"
      ]
    },
    "search_value": {
      "description": "Text to search for (ignored for All).",
      "type": "string",
      "maxLength": 200
    },
    "limit": {
      "description": "Most items to return (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Skip this many items (default 0). Use the previous reply's next_offset to read on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_search_contacts(domain_id, search_option, search_value, sort_order, active, ...)

Search the contacts (customers and suppliers) of a domain by name, city, postcode, tag, email, website, phone, code, Chamber of Commerce number, VAT number or bank account. Returns at most 100 contacts per page; ask for the next page_number until the reply is empty. Contact.SearchContacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    },
    "search_option": {
      "description": "Field to search in (default All).",
      "type": "string",
      "enum": [
        "All",
        "Name",
        "City",
        "Postcode",
        "Tag",
        "Email",
        "Website",
        "Phone",
        "Code",
        "CoCNumber",
        "VATNumber",
        "BankAccount"
      ]
    },
    "search_value": {
      "description": "Text to search for. Empty lists all contacts.",
      "type": "string",
      "maxLength": 200
    },
    "sort_order": {
      "description": "Sort order (default Name).",
      "type": "string",
      "enum": [
        "Name",
        "LastName",
        "CreatedAsc",
        "CreatedDesc",
        "ModifiedAsc",
        "ModifiedDesc",
        "HID"
      ]
    },
    "active": {
      "description": "Active, inactive or both (default Both).",
      "type": "string",
      "enum": [
        "Both",
        "Active",
        "Inactive"
      ]
    },
    "page_number": {
      "description": "Page number, starting at 1 (default 1). A page holds up to 100 contacts.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "offset": {
      "description": "Skip this many contacts of the page (default 0). A long page is cut to fit the reply: use next_offset with the same page_number, then the next page_number.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_document_folders(domain_id)

The folders of the document archive (id, name). With an accountant key that reaches several domains, pass domain_id so the archive of that domain is read (default: the key's only domain). Archive.DocumentFolders.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_document_folder_tabs(folder_id, domain_id)

The tabs inside one archive folder (id, name). Archive.DocumentFolderTabs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "Folder id from yuki_list_document_folders."
    },
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "required": [
    "folder_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_list_documents(folder_id, document_type, start_date, end_date, sort_order, ...)

Documents in the archive (invoices, receipts, bank statements...) with id, subject, type, contact, dates, amount. Narrow by archive folder or by document type, and by creation date range. Page with number_of_records and start_record. Archive.Documents / DocumentsInFolder / DocumentsByType.

輸入結構描述

{
  "type": "object",
  "properties": {
    "folder_id": {
      "description": "Only this archive folder (id from yuki_list_document_folders). Not together with document_type.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000
    },
    "document_type": {
      "description": "Only this Yuki document type number. Not together with folder_id.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "start_date": {
      "description": "First day, yyyy-mm-dd (default 1990-01-01).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "end_date": {
      "description": "Last day, yyyy-mm-dd (default 2100-01-01).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "sort_order": {
      "description": "Sort order (default CreatedDesc).",
      "type": "string",
      "enum": [
        "CreatedDesc",
        "CreatedAsc",
        "ModifiedDesc",
        "ModifiedAsc",
        "DocumentDateDesc",
        "DocumentDateAsc",
        "ContactNameAsc",
        "ContactNameDesc"
      ]
    },
    "number_of_records": {
      "description": "Documents per call (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "start_record": {
      "description": "Offset of the first document (default 0). Add numberOfRecords to page on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "offset": {
      "description": "Skip this many documents of the fetched batch (default 0). A long batch is cut to fit the reply: use next_offset with the same arguments.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_search_documents(search_text, search_option, folder_id, tab_id, start_date, ...)

Search archive documents by text in the creator, contact, subject, tag or type (or all). Optionally limit to a folder or tab and a date range. Archive.SearchDocuments.

輸入結構描述

{
  "type": "object",
  "properties": {
    "search_text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Text to search for."
    },
    "search_option": {
      "description": "Where to search (default All).",
      "type": "string",
      "enum": [
        "All",
        "Creator",
        "Contact",
        "Subject",
        "Tag",
        "Type"
      ]
    },
    "folder_id": {
      "description": "Only this folder; -1 or omitted = all folders.",
      "type": "integer",
      "minimum": -1,
      "maximum": 1000000000
    },
    "tab_id": {
      "description": "Only this tab; -1 or omitted = all tabs.",
      "type": "integer",
      "minimum": -1,
      "maximum": 1000000000
    },
    "start_date": {
      "description": "First day, yyyy-mm-dd. Omit with end_date to search all years.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "end_date": {
      "description": "Last day, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "sort_order": {
      "description": "Sort order (default CreatedDesc).",
      "type": "string",
      "enum": [
        "CreatedDesc",
        "CreatedAsc",
        "ModifiedDesc",
        "ModifiedAsc",
        "DocumentDateDesc",
        "DocumentDateAsc",
        "ContactNameAsc",
        "ContactNameDesc"
      ]
    },
    "number_of_records": {
      "description": "Documents per call (default 100, max 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "start_record": {
      "description": "Offset of the first document (default 0). Add numberOfRecords to page on.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "offset": {
      "description": "Skip this many documents of the fetched batch (default 0). A long batch is cut to fit the reply: use next_offset with the same arguments.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "required": [
    "search_text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_get_document(document_id, domain_id)

Details of one archive document by id (subject, type, contact, dates, amounts, folder). Archive.FindDocument.

輸入結構描述

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$",
      "description": "Yuki document id (the ID in a document list)."
    },
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "required": [
    "document_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢yuki_get_document_download_url(document_id, domain_id)

A presigned download URL for the file of one archive document (the link works for a short time; open it in a browser). Archive.DocumentDownloadUrl.

輸入結構描述

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$",
      "description": "Yuki document id (the ID in a document list)."
    },
    "domain_id": {
      "description": "Yuki domain id (from yuki_list_domains). Optional when the key has a single domain.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,64}$"
    }
  },
  "required": [
    "document_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本16 個工具