Spendesk MCP API

The Spendesk MCP server (Streamable HTTP transport), for AI assistants connected through OAuth 2.0.

Operations 3

POST /v1/mcp Send MCP messages #
GET /v1/mcp Open the MCP event stream #
DELETE /v1/mcp End an MCP session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spendesk:spendesk-mcp-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spendesk-mcp-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Spendesk Public MCP API
  description: Spendesk Public API
  version: '1.0'
  summary: Spendesk Public API
  contact:
    email: support-public-api@spendesk.com
    url: https://developer.spendesk.com/
    name: Spendesk for Developers
  termsOfService: https://www.spendesk.com/en/legals/terms/api-agreement
servers:
- url: https://public-api.spendesk.com
  description: Production
- url: https://public-api.demo.spendesk.com
  description: Sandbox
tags:
- name: MCP
  description: The Spendesk MCP server (Streamable HTTP transport), for AI assistants connected through OAuth 2.0.
paths:
  /v1/mcp:
    post:
      operationId: v1-post-mcp
      summary: Send MCP messages
      tags:
      - MCP
      security:
      - Authentication:
        - experimental:company:read
      - Authentication:
        - wallet-summary:read
      - Authentication:
        - wallet-load:read
      - Authentication:
        - settlement:read
      - Authentication:
        - payable-attachment:read
      - Authentication:
        - payable:read
      - Authentication:
        - experimental:purchase-order:read
      - Authentication:
        - supplier:read
      - Authentication:
        - analytical-field:read
      - Authentication:
        - experimental:analytical-field-v2:write
      - Authentication:
        - cost-center:read
      - Authentication:
        - cost-center:manage
      - Authentication:
        - expense-category:read
      - Authentication:
        - experimental:expense-category-v2:read
      - Authentication:
        - experimental:expense-category-v2:write
      - Authentication:
        - experimental:supplier:manage
      - Authentication:
        - user:read
      - Authentication:
        - experimental:request:read
      - Authentication:
        - experimental:chart-of-accounts:read
      - Authentication:
        - experimental:chart-of-accounts:write
      - Authentication:
        - experimental:card:read
      - Authentication:
        - experimental:card:write
      - Authentication:
        - experimental:transaction:read
      - Authentication:
        - experimental:accounting:update
      - Authentication:
        - experimental:purchase-order:write
      - Authentication:
        - experimental:accounting-export:write
      - Authentication:
        - experimental:invoice:read
      - Authentication:
        - experimental:intake:read
      x-roles:
      - controller
      - accountOwner
      responses:
        '200':
          description: Default Response
    get:
      operationId: v1-get-mcp
      summary: Open the MCP event stream
      tags:
      - MCP
      security:
      - Authentication:
        - experimental:company:read
      - Authentication:
        - wallet-summary:read
      - Authentication:
        - wallet-load:read
      - Authentication:
        - settlement:read
      - Authentication:
        - payable-attachment:read
      - Authentication:
        - payable:read
      - Authentication:
        - experimental:purchase-order:read
      - Authentication:
        - supplier:read
      - Authentication:
        - analytical-field:read
      - Authentication:
        - experimental:analytical-field-v2:write
      - Authentication:
        - cost-center:read
      - Authentication:
        - cost-center:manage
      - Authentication:
        - expense-category:read
      - Authentication:
        - experimental:expense-category-v2:read
      - Authentication:
        - experimental:expense-category-v2:write
      - Authentication:
        - experimental:supplier:manage
      - Authentication:
        - user:read
      - Authentication:
        - experimental:request:read
      - Authentication:
        - experimental:chart-of-accounts:read
      - Authentication:
        - experimental:chart-of-accounts:write
      - Authentication:
        - experimental:card:read
      - Authentication:
        - experimental:card:write
      - Authentication:
        - experimental:transaction:read
      - Authentication:
        - experimental:accounting:update
      - Authentication:
        - experimental:purchase-order:write
      - Authentication:
        - experimental:accounting-export:write
      - Authentication:
        - experimental:invoice:read
      - Authentication:
        - experimental:intake:read
      x-roles:
      - controller
      - accountOwner
      responses:
        '200':
          description: Default Response
    delete:
      operationId: v1-delete-mcp
      summary: End an MCP session
      tags:
      - MCP
      security:
      - Authentication:
        - experimental:company:read
      - Authentication:
        - wallet-summary:read
      - Authentication:
        - wallet-load:read
      - Authentication:
        - settlement:read
      - Authentication:
        - payable-attachment:read
      - Authentication:
        - payable:read
      - Authentication:
        - experimental:purchase-order:read
      - Authentication:
        - supplier:read
      - Authentication:
        - analytical-field:read
      - Authentication:
        - experimental:analytical-field-v2:write
      - Authentication:
        - cost-center:read
      - Authentication:
        - cost-center:manage
      - Authentication:
        - expense-category:read
      - Authentication:
        - experimental:expense-category-v2:read
      - Authentication:
        - experimental:expense-category-v2:write
      - Authentication:
        - experimental:supplier:manage
      - Authentication:
        - user:read
      - Authentication:
        - experimental:request:read
      - Authentication:
        - experimental:chart-of-accounts:read
      - Authentication:
        - experimental:chart-of-accounts:write
      - Authentication:
        - experimental:card:read
      - Authentication:
        - experimental:card:write
      - Authentication:
        - experimental:transaction:read
      - Authentication:
        - experimental:accounting:update
      - Authentication:
        - experimental:purchase-order:write
      - Authentication:
        - experimental:accounting-export:write
      - Authentication:
        - experimental:invoice:read
      - Authentication:
        - experimental:intake:read
      x-roles:
      - controller
      - accountOwner
      responses:
        '200':
          description: Default Response
components:
  securitySchemes:
    Authentication:
      type: oauth2
      description: 'A company-level token acts on the company it was issued for. An organisation-level token (experimental) acts on the companies of an organisation: send the target company in the `X-Company-Id` header on every call, except on `GET /v2/companies` and on `/v2/companies/{companyId}/…` routes, which carry the company in the path. See [Organisation-level access](/reference/organisation-level-access).'
      flows:
        clientCredentials:
          tokenUrl: /v1/auth/token
          scopes:
            analytical-field:read: Analytical Fields (Read)
            bank-fee:read: Spending Bank Fees (Read)
            cost-center:read: Cost Center (Read)
            cost-center:manage: Cost Center (Manage)
            expense-category:read: Expense Category (Read)
            payable:read: Spending Payables (Read)
            payable-attachment:read: Spending Payable Attachments (Read)
            settlement:read: Spending Settlements (Read)
            supplier:read: Suppliers (Read)
            user:read: Users (Read)
            experimental:user:manage: Users (Manage)
            wallet-load:read: Spending Wallet Loads (Read)
            wallet-summary:read: Spending Wallet Summary (Read)
            experimental:accounting-export:read: Accounting exports (Read)
            experimental:accounting-export:write: Accounting exports (Write)
            experimental:accounting:update: Accounting (Update)
            experimental:chart-of-accounts:read: Chart of Accounts (Read)
            experimental:chart-of-accounts:write: Chart of Accounts (Write)
            experimental:purchase-order:read: Purchase Orders (Read)
            experimental:purchase-order:write: Purchase Orders (Write)
            experimental:webhooks:read: Webhooks (Read)
            experimental:webhooks:write: Webhooks (Write)
            experimental:supplier:manage: Suppliers (Manage)
            experimental:company:read: Companies (Read)
            experimental:payable-search:read: Payable Search (Read)
            experimental:payable-attachment:write: Payable Attachments (Write)
            experimental:card:read: Cards (Read)
            experimental:card:write: Cards (Write)
            experimental:request:read: Requests (Read)
            experimental:transaction:read: Transactions (Read)
            experimental:analytical-field-v2:read: Analytical Fields v2 (Read)
            experimental:analytical-field-v2:write: Analytical Fields v2 (Write)
            experimental:expense-category-v2:read: Expense Category Fields v2 (Read)
            experimental:expense-category-v2:write: Expense Category Fields v2 (Write)
            experimental:invoice:read: Invoices (Read) - experimental
            experimental:intake:read: Intakes (Read)
            experimental:intake:write: Intakes (Write)
            experimental:external-reference:read: External References (Read)
            experimental:external-reference:write: External References (Write)
        authorizationCode:
          authorizationUrl: /v1/oauth2/authorize
          tokenUrl: /v1/oauth2/token/create
          scopes:
            analytical-field:read: Analytical Fields (Read)
            bank-fee:read: Spending Bank Fees (Read)
            cost-center:read: Cost Center (Read)
            cost-center:manage: Cost Center (Manage)
            expense-category:read: Expense Category (Read)
            payable:read: Spending Payables (Read)
            payable-attachment:read: Spending Payable Attachments (Read)
            settlement:read: Spending Settlements (Read)
            supplier:read: Suppliers (Read)
            user:read: Users (Read)
            experimental:user:manage: Users (Manage)
            wallet-load:read: Spending Wallet Loads (Read)
            wallet-summary:read: Spending Wallet Summary (Read)
            experimental:accounting-export:read: Accounting exports (Read)
            experimental:accounting-export:write: Accounting exports (Write)
            experimental:accounting:update: Accounting (Update)
            experimental:chart-of-accounts:read: Chart of Accounts (Read)
            experimental:chart-of-accounts:write: Chart of Accounts (Write)
            experimental:purchase-order:read: Purchase Orders (Read)
            experimental:purchase-order:write: Purchase Orders (Write)
            experimental:webhooks:read: Webhooks (Read)
            experimental:webhooks:write: Webhooks (Write)
            experimental:supplier:manage: Suppliers (Manage)
            experimental:company:read: Companies (Read)
            experimental:payable-search:read: Payable Search (Read)
            experimental:payable-attachment:write: Payable Attachments (Write)
            experimental:card:read: Cards (Read)
            experimental:card:write: Cards (Write)
            experimental:request:read: Requests (Read)
            experimental:transaction:read: Transactions (Read)
            experimental:analytical-field-v2:read: Analytical Fields v2 (Read)
            experimental:analytical-field-v2:write: Analytical Fields v2 (Write)
            experimental:expense-category-v2:read: Expense Category Fields v2 (Read)
            experimental:expense-category-v2:write: Expense Category Fields v2 (Write)
            experimental:invoice:read: Invoices (Read) - experimental
            experimental:intake:read: Intakes (Read)
            experimental:intake:write: Intakes (Write)
            experimental:external-reference:read: External References (Read)
            experimental:external-reference:write: External References (Write)
x-provenance:
  method: searched
  source: https://developer.spendesk.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.spendesk.com/reference/mcp-authorization-server-metadata.md
  - https://developer.spendesk.com/reference/mcp-protected-resource-metadata-mcp.md
  - https://developer.spendesk.com/reference/v1-assign-creditors-to-accounts.md
  - https://developer.spendesk.com/reference/v1-cancel-purchase-order.md
  - https://developer.spendesk.com/reference/v1-close-purchase-order.md
  - https://developer.spendesk.com/reference/v1-create-account.md
  - https://developer.spendesk.com/reference/v1-create-auth-token.md
  - https://developer.spendesk.com/reference/v1-create-cost-centers.md
  - https://developer.spendesk.com/reference/v1-create-journal.md
  - https://developer.spendesk.com/reference/v1-create-oauth2-token.md
  - https://developer.spendesk.com/reference/v1-create-payable-attachment-upload.md
  - https://developer.spendesk.com/reference/v1-create-purchase-order.md
  - https://developer.spendesk.com/reference/v1-create-snapshot-payables.md
  - https://developer.spendesk.com/reference/v1-create-suppliers.md
  - https://developer.spendesk.com/reference/v1-create-webhook.md
  - https://developer.spendesk.com/reference/v1-delete-account.md
  - https://developer.spendesk.com/reference/v1-delete-cost-centers.md
  - https://developer.spendesk.com/reference/v1-delete-mcp.md
  - https://developer.spendesk.com/reference/v1-delete-webhook.md
  - https://developer.spendesk.com/reference/v1-get-account-by-id.md
  - https://developer.spendesk.com/reference/v1-get-accounts.md
  - https://developer.spendesk.com/reference/v1-get-analytical-field-values.md
  - https://developer.spendesk.com/reference/v1-get-analytical-fields.md
  - https://developer.spendesk.com/reference/v1-get-bank-fees.md
  - https://developer.spendesk.com/reference/v1-get-card-blocking-history.md
  - https://developer.spendesk.com/reference/v1-get-card-order.md
  - https://developer.spendesk.com/reference/v1-get-card.md
  - https://developer.spendesk.com/reference/v1-get-cards.md
  - https://developer.spendesk.com/reference/v1-get-cost-centers.md
  - https://developer.spendesk.com/reference/v1-get-expense-categories.md
  - https://developer.spendesk.com/reference/v1-get-external-references.md
  - https://developer.spendesk.com/reference/v1-get-failed-transactions.md
  - https://developer.spendesk.com/reference/v1-get-integrations-export-status.md
  - https://developer.spendesk.com/reference/v1-get-journal-templates.md
  - https://developer.spendesk.com/reference/v1-get-journal.md
  - https://developer.spendesk.com/reference/v1-get-mcp.md
  - https://developer.spendesk.com/reference/v1-get-payable-attachments.md
  - https://developer.spendesk.com/reference/v1-get-payable-by-id.md
  - https://developer.spendesk.com/reference/v1-get-purchase-order-document.md
  - https://developer.spendesk.com/reference/v1-get-purchase-order.md
  - https://developer.spendesk.com/reference/v1-get-purchase-orders.md
  - https://developer.spendesk.com/reference/v1-get-request.md
  - https://developer.spendesk.com/reference/v1-get-requests.md
  - https://developer.spendesk.com/reference/v1-get-settlements.md
  - https://developer.spendesk.com/reference/v1-get-snapshot-payables.md
  - https://developer.spendesk.com/reference/v1-get-successful-transactions.md
  - https://developer.spendesk.com/reference/v1-get-supplier-by-id.md
  - https://developer.spendesk.com/reference/v1-get-suppliers.md
  - https://developer.spendesk.com/reference/v1-get-transactions.md
  - https://developer.spendesk.com/reference/v1-get-user-by-id.md
  - https://developer.spendesk.com/reference/v1-get-users.md
  - https://developer.spendesk.com/reference/v1-get-wallet-loads.md
  - https://developer.spendesk.com/reference/v1-get-wallet-summary.md
  - https://developer.spendesk.com/reference/v1-get-webhook-by-id.md
  - https://developer.spendesk.com/reference/v1-get-webhook.md
  - https://developer.spendesk.com/reference/v1-patch-accounts.md
  - https://developer.spendesk.com/reference/v1-patch-payable-accounting-fields.md
  - https://developer.spendesk.com/reference/v1-patch-supplier-status.md
  - https://developer.spendesk.com/reference/v1-patch-suppliers-status.md
  - https://developer.spendesk.com/reference/v1-post-experimental-integrations-refresh-settings.md
  - https://developer.spendesk.com/reference/v1-post-mcp.md
  - https://developer.spendesk.com/reference/v1-post-payable-mark-as-ready.md
  - https://developer.spendesk.com/reference/v1-put-payables-bookkeeping-status.md
  - https://developer.spendesk.com/reference/v1-put-settlements-state.md
  - https://developer.spendesk.com/reference/v1-refresh-oauth2-token.md
  - https://developer.spendesk.com/reference/v1-register-oauth2-client.md
  - https://developer.spendesk.com/reference/v1-remove-creditors-from-accounts.md
  - https://developer.spendesk.com/reference/v1-request-authorization.md
  - https://developer.spendesk.com/reference/v1-search-creditor-account-assignments.md
  - https://developer.spendesk.com/reference/v1-search-payables.md
  - https://developer.spendesk.com/reference/v1-set-account-purpose.md
  - https://developer.spendesk.com/reference/v1-sync-accounts.md
  - https://developer.spendesk.com/reference/v1-update-cost-centers.md
  - https://developer.spendesk.com/reference/v1-update-supplier.md
  - https://developer.spendesk.com/reference/v1-update-suppliers.md
  - https://developer.spendesk.com/reference/v1-update-webhook.md
  - https://developer.spendesk.com/reference/v1-upsert-external-references.md
  - https://developer.spendesk.com/reference/v2-create-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-create-analytical-field.md
  - https://developer.spendesk.com/reference/v2-create-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-create-expense-category.md
  - https://developer.spendesk.com/reference/v2-create-intake-file-upload.md
  - https://developer.spendesk.com/reference/v2-delete-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-delete-analytical-field.md
  - https://developer.spendesk.com/reference/v2-delete-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-delete-expense-category.md
  - https://developer.spendesk.com/reference/v2-get-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-get-analytical-field.md
  - https://developer.spendesk.com/reference/v2-get-companies.md
  - https://developer.spendesk.com/reference/v2-get-company-intake.md
  - https://developer.spendesk.com/reference/v2-get-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-get-expense-category.md
  - https://developer.spendesk.com/reference/v2-get-intake-file-upload-status.md
  - https://developer.spendesk.com/reference/v2-get-invoice.md
  - https://developer.spendesk.com/reference/v2-get-invoices-summary.md
  - https://developer.spendesk.com/reference/v2-list-analytical-field-values.md
  - https://developer.spendesk.com/reference/v2-list-analytical-fields.md
  - https://developer.spendesk.com/reference/v2-list-company-intakes.md
  - https://developer.spendesk.com/reference/v2-list-expense-categories.md
  - https://developer.spendesk.com/reference/v2-list-expense-category-fields.md
  - https://developer.spendesk.com/reference/v2-list-invoices.md
  - https://developer.spendesk.com/reference/v2-post-company-intakes.md
  - https://developer.spendesk.com/reference/v2-update-analytical-field-value.md
  - https://developer.spendesk.com/reference/v2-update-analytical-field.md
  - https://developer.spendesk.com/reference/v2-update-expense-category-field.md
  - https://developer.spendesk.com/reference/v2-update-expense-category.md
  merge:
    pages: 106
    deduped: 1705
    conflicts_kept_first: 0