100+ integrations are ready to connect to your AI.Connect your first MCP

Sage MCP server for your AI

Ask who owes you money and how overdue it is, raise an invoice from a sentence, record a payment against a bill, or pull a contact's whole position, all from your AI client, with bank and tax numbers masked.

PopMCPSage

Who owes me money right now, and how much of it is more than 60 days overdue?

Supported Sage tools

Every operation in the Sage Accounting API, from contacts, sales and purchase invoices and quotes to payments, bank accounts, ledger accounts, journals, products, stock, tax and settings. This is Sage Accounting only: Sage's other products have separate APIs and are not covered.

290 tools in the full catalog: 170 read and 120 write. 40 load by default, and the rest are found with tool search.

sage_create_product

Creates a Product.

sage_list_products

Returns all Products.

sage_list_services

Returns all Services.

sage_contact_summary

One contact's position: details, balance, what they owe you, what you owe them, and their latest payments.

sage_create_contact

Creates a Contact.

sage_get_contact

Returns a Contact.

sage_list_contacts

Returns all Contacts.

sage_update_contact

Updates a Contact.

sage_create_sales_credit_note

Creates a Sales Credit Note.

sage_create_sales_invoice

Creates a Sales Invoice.

sage_create_sales_quote

Creates a Sales Quote.

sage_get_sales_document_pdf

Get the PDF of a sales invoice, credit note, quote or estimate, as base64 up to 140 KB.

sage_get_sales_invoice

Returns a Sales Invoice.

sage_list_sales_invoices

Returns all Sales Invoices.

sage_list_sales_quotes

Returns all Sales Quotes.

sage_release_sales_invoice

Releases a Sales Invoice.

sage_unpaid_invoices

What is owed right now, with ageing: unpaid and part paid sales invoices (customers owe you) or purchase invoices (you owe suppliers), totalled per currency into not due, 1 to 30, 31 to 60, 61 to 90 and over 90 days overdue, with the oldest listed.

sage_update_sales_invoice

Updates a Sales Invoice.

sage_void_sales_invoice

Voids a Sales Invoice.

sage_list_tax_rates

Returns all Tax Rates.

sage_create_contact_allocation

Creates a Contact Allocation.

sage_create_contact_payment

Creates a Contact Payment.

sage_create_other_payment

Creates an Other Payment.

sage_list_contact_payments

Returns all Contact Payments.

sage_list_other_payments

Returns all Other Payments.

sage_record_invoice_payment

Record in the books that an invoice was paid, and allocate it to that invoice.

sage_create_journal

Creates a Journal.

sage_list_transactions

Returns all Transactions.

sage_create_bank_transfer

Creates a Bank Transfer.

sage_create_purchase_invoice

Creates a Purchase Invoice.

sage_get_purchase_invoice

Returns a Purchase Invoice.

sage_list_bank_accounts

Returns all Bank Accounts.

sage_list_purchase_invoices

Returns all Purchase Invoices.

sage_list_ledger_accounts

Returns all Ledger Accounts.

sage_create_attachment

Creates an Attachment.

sage_get_attachment_file

Returns an Attachment File.

sage_list_attachments

Returns all Attachments.

sage_business_overview

One call for the connected business: name, plan, base currency, year end, and the ids every document needs: sales and expense ledger accounts, tax rates and bank accounts.

sage_financial_snapshot

Where the business stands for a period: bank balances, base currency and the trial balance (each ledger account's opening balance, movement and closing balance, zero rows left out).

sage_get_trial_balance

Returns a trial balance for a date range.

sage_create_product_sales_price_type

Creates a Product Sales Price Type.

sage_create_service

Creates a Service.

sage_create_service_rate_type

Creates a Service Rate Type.

sage_create_stock_item

Creates a Stock Item.

sage_create_stock_movement

Creates a Stock Movement.

sage_delete_product

Deletes a Product.

sage_delete_product_sales_price_type

Deletes a Product Sales Price Type.

sage_delete_service

Deletes a Service.

sage_delete_service_rate_type

Deletes a Service Rate Type.

sage_delete_stock_item

Deletes a Stock Item.

sage_delete_stock_movement

Deletes a Stock Movement.

sage_get_catalog_item_type

Returns a Catalog Item Type.

sage_get_product

Returns a Product.

sage_get_product_sales_price_type

Returns a Product Sales Price Type.

sage_get_service

Returns a Service.

sage_get_service_rate_type

Returns a Service Rate Type.

sage_get_stock_item

Returns a Stock Item.

sage_get_stock_movement

Returns a Stock Movement.

sage_get_stock_movement_type

Returns a Stock Movement Type.

sage_list_catalog_item_types

Returns all Catalog Item Types.

sage_list_product_sales_price_types

Returns all Product Sales Price Types.

sage_list_service_rate_types

Returns all Service Rate Types.

sage_list_stock_items

Returns all Stock Items.

sage_list_stock_movement_types

Returns all Stock Movement Types.

sage_list_stock_movements

Returns all Stock Movements.

sage_update_product

Updates a Product.

sage_update_product_sales_price_type

Updates a Product Sales Price Type.

sage_update_service

Updates a Service.

sage_update_service_rate_type

Updates a Service Rate Type.

sage_update_stock_item

Updates a Stock Item.

sage_update_stock_movement

Updates a Stock Movement.

sage_create_address

Creates an Address.

sage_create_bank_deposit

Creates a Bank Deposit.

sage_create_contact_person

Creates a Contact Person.

sage_delete_address

Deletes a Address.

sage_delete_bank_deposit

Deletes a Bank Deposit.

sage_delete_contact

Deletes a Contact.

sage_delete_contact_person

Deletes a Contact Person.

sage_get_address

Returns a Address.

sage_get_address_region

Returns a Address Region.

sage_get_address_type

Returns a Address Type.

sage_get_bank_deposit

Returns a Bank Deposit.

sage_get_contact_person

Returns a Contact Person.

sage_get_contact_person_type

Returns a Contact Person Type.

sage_get_contact_type

Returns a Contact Type.

sage_get_country

Returns a Country.

sage_get_country_group

Returns a Country Group.

sage_list_address_regions

Returns all Address Regions.

sage_list_address_types

Returns all Address Types.

sage_list_addresses

Returns all Addresses.

sage_list_bank_deposits

Returns all Bank Deposits.

sage_list_contact_person_types

Returns all Contact Person Types.

sage_list_contact_persons

Returns all Contact People.

sage_list_contact_types

Returns all Contact Types.

sage_list_countries

Returns all Countries.

sage_list_country_groups

Returns all Country Groups.

sage_update_address

Updates a Address.

sage_update_contact_person

Updates a Contact Person.

sage_create_analysis_type_category

Creates an Analysis Type Category.

sage_create_hosted_artefact_payment_setting

Creates a Hosted Artefact Payment Setting.

sage_create_sales_estimate

Creates a Sales Estimate.

sage_create_sales_quick_entry

Creates a Sales Quick Entry.

sage_delete_analysis_type_category

Deletes a Analysis Type Category.

sage_delete_hosted_artefact_payment_setting

Deletes a Hosted Artefact Payment Setting.

sage_delete_sales_estimate

Deletes a Sales Estimate.

sage_delete_sales_quick_entry

Deletes a Sales Quick Entry.

sage_delete_sales_quote

Deletes a Sales Quote.

sage_get_analysis_type

Returns a Analysis Type.

sage_get_analysis_type_category

Returns a Analysis Type Category.

sage_get_business_activity_type

Returns a Business Activity Type.

sage_get_business_settings

Returns all Business Settings.

sage_get_business_type

Returns a Business Type.

sage_get_cis_settings

Returns all Cis Settings.

sage_get_country_of_registration

Returns a Country Of Registration.

sage_get_email_settings

Returns all Email Settings.

sage_get_eu_sales_description

Returns a EU Sales Description.

sage_get_financial_settings

Returns all Financial Settings.

sage_get_hosted_artefact_payment_setting

Returns a Hosted Artefact Payment Setting.

sage_get_income_tax_settings

Returns Income Tax Settings.

sage_get_invoice_settings

Returns all Invoice Settings.

sage_get_legal_form_type

Returns a Legal Form Type.

sage_get_sales_credit_note

Returns a Sales Credit Note.

sage_get_sales_estimate

Returns a Sales Estimate.

sage_get_sales_quick_entry

Returns a Sales Quick Entry.

sage_get_sales_quote

Returns a Sales Quote.

sage_list_analysis_type_categories

Returns all Analysis Type Categories.

sage_list_analysis_types

Returns all Analysis Types.

sage_list_business_activity_types

Returns all Business Activity Types.

sage_list_business_types

Returns all Business Types.

sage_list_countries_of_registration

Returns all Country Of Registrations.

sage_list_eu_sales_descriptions

Returns all EU Sales Descriptions.

sage_list_hosted_artefact_payment_settings

Returns all Hosted Artefact Payment Settings.

sage_list_legal_form_types

Returns all Legal Form Types.

sage_list_sales_credit_notes

Returns all Sales Credit Notes.

sage_list_sales_estimates

Returns all Sales Estimates.

sage_list_sales_quick_entries

Returns all Sales Quick Entries.

sage_release_sales_credit_note

Releases a Sales Credit Note.

sage_update_analysis_type

Updates a Analysis Type.

sage_update_analysis_type_category

Updates a Analysis Type Category.

sage_update_business_settings

Updates a Business Settings.

sage_update_cis_settings

Updates a Cis Settings.

sage_update_email_settings

Updates a Email Settings.

sage_update_financial_settings

Updates a Financial Settings.

sage_update_invoice_settings

Updates a Invoice Settings.

sage_update_sales_credit_note

Updates a Sales Credit Note.

sage_update_sales_estimate

Updates a Sales Estimate.

sage_update_sales_quick_entry

Updates a Sales Quick Entry.

sage_update_sales_quote

Updates a Sales Quote.

sage_void_sales_credit_note

Voids a Sales Credit Note.

sage_create_draft_tax_return

Create a Draft Tax Return.

sage_create_tax_rate

Creates a Tax Rate (US only).

sage_delete_draft_tax_return

Deletes a Draft Tax Return.

sage_delete_tax_rate

Deletes a Tax Rate (US only).

sage_fetch_tax_obligation_periods

Returns a Tax Return of the Obligation Period.

sage_get_draft_tax_return

Returns a Draft Tax Return.

sage_get_tax_office

Returns a Tax Office.

sage_get_tax_profile

Returns a Tax Profile.

sage_get_tax_rate

Returns a Tax Rate.

sage_get_tax_return

Returns a Tax Return.

sage_get_tax_return_frequency

Returns a Tax Return Frequency.

sage_get_tax_scheme

Returns a Tax Scheme.

sage_get_tax_type

Returns a Tax Type.

sage_list_draft_tax_returns

Returns all Draft Tax Returns.

sage_list_tax_determinations

Returns all Tax Determinations.

sage_list_tax_offices

Returns all Tax Offices.

sage_list_tax_profiles

Returns all Tax Profiles.

sage_list_tax_return_frequencies

Returns all Tax Return Frequencies.

sage_list_tax_returns

Returns all Tax Returns.

sage_list_tax_schemes

Returns all Tax Schemes.

sage_list_tax_types

Returns all Tax Types.

sage_update_tax_profile

Updates a Tax Profile.

sage_update_tax_rate

Updates a Tax Rate (US only).

sage_create_bank_opening_balance

Creates a Bank Opening Balance.

sage_create_contact_opening_balance

Creates a Contact Opening Balance.

sage_create_ledger_account_opening_balance

Creates a Ledger Account Opening Balance.

sage_create_opening_balance_journal

Creates an Opening Balance Journal.

sage_delete_bank_opening_balance

Deletes a Bank Opening Balance.

sage_delete_contact_opening_balance

Deletes a Contact Opening Balance.

sage_delete_ledger_account_opening_balance

Deletes a Ledger Account Opening Balance.

sage_delete_opening_balance_journal

Deletes a Opening Balance Journal.

sage_get_bank_opening_balance

Returns a Bank Opening Balance.

sage_get_contact_opening_balance

Returns a Contact Opening Balance.

sage_get_contact_opening_balance_type

Returns a Contact Opening Balance Type.

sage_get_ledger_account_opening_balance

Returns a Ledger Account Opening Balance.

sage_get_opening_balance_journal

Returns a Opening Balance Journal.

sage_list_bank_opening_balances

Returns all Bank Opening Balances.

sage_list_contact_opening_balance_types

Returns all Contact Opening Balance Types.

sage_list_contact_opening_balances

Returns all Contact Opening Balances.

sage_list_ledger_account_opening_balances

Returns all Ledger Account Opening Balances.

sage_list_opening_balance_journals

Returns all Opening Balance Journals.

sage_update_bank_opening_balance

Updates a Bank Opening Balance.

sage_update_contact_opening_balance

Updates a Contact Opening Balance.

sage_update_ledger_account_opening_balance

Updates a Ledger Account Opening Balance.

sage_delete_contact_allocation

Deletes a Contact Allocation.

sage_delete_contact_payment

Deletes a Contact Payment.

sage_delete_other_payment

Deletes a Other Payment.

sage_get_contact_allocation

Returns a Contact Allocation.

sage_get_contact_payment

Returns a Contact Payment.

sage_get_other_payment

Returns a Other Payment.

sage_get_payment_method

Returns a Payment Method.

sage_get_unallocated_artefact

Returns a Unallocated Artefact.

sage_list_contact_allocations

Returns all Contact Allocations.

sage_list_payment_methods

Returns all Payment Methods.

sage_list_unallocated_artefacts

Returns all Unallocated Artefacts.

sage_update_contact_allocation

Updates a Contact Allocation.

sage_update_contact_payment

Updates a Contact Payment.

sage_update_other_payment

Updates a Other Payment.

sage_create_journal_code

Creates a Journal Code.

sage_delete_journal

Deletes a Journal.

sage_delete_journal_code

Deletes a Journal Code.

sage_get_journal

Returns a Journal.

sage_get_journal_code

Returns a Journal Code.

sage_get_journal_code_type

Returns a Journal Code Type.

sage_get_ledger_entry

Returns a Ledger Entry.

sage_get_transaction

Returns a Transaction.

sage_get_transaction_type

Returns a Transaction Type.

sage_list_journal_code_types

Returns all Journal Code Types.

sage_list_journal_codes

Returns all Journal Codes.

sage_list_journals

Returns all Journals.

sage_list_ledger_entries

Returns all Ledger Entries.

sage_list_transaction_types

Returns all Transaction Types.

sage_reissue_journal

Reissues an existing Journal by voiding the existing one and creating a new one.

sage_update_journal_code

Updates a Journal Code.

sage_create_bank_account

Creates a Bank Account.

sage_create_bank_reconciliation

Creates a Bank Reconciliation.

sage_create_purchase_credit_note

Creates a Purchase Credit Note.

sage_create_purchase_quick_entry

Creates a Purchase Quick Entry.

sage_delete_bank_account

Deletes a Bank Account.

sage_delete_bank_transfer

Deletes a Bank Transfer.

sage_delete_purchase_credit_note

Deletes a Purchase Credit Note.

sage_delete_purchase_invoice

Deletes a Purchase Invoice.

sage_delete_purchase_quick_entry

Deletes a Purchase Quick Entry.

sage_get_bank_account

Returns a Bank Account.

sage_get_bank_account_type

Returns a Bank Account Type.

sage_get_bank_feed

Bank feed endpoint for Banking Cloud Bank accounts.

sage_get_bank_reconciliation

Returns a Bank Reconciliation.

sage_get_bank_transfer

Returns a Bank Transfer.

sage_get_purchase_credit_note

Returns a Purchase Credit Note.

sage_get_purchase_quick_entry

Returns a Purchase Quick Entry.

sage_list_bank_account_types

Returns all Bank Account Types.

sage_list_bank_reconciliations

Returns all Bank Reconciliations.

sage_list_bank_transfers

Returns all Bank Transfers.

sage_list_purchase_credit_notes

Returns all Purchase Credit Notes.

sage_list_purchase_quick_entries

Returns all Purchase Quick Entries.

sage_release_purchase_credit_note

Releases a Purchase Credit Note.

sage_release_purchase_invoice

Releases a Purchase Invoice.

sage_update_bank_account

Updates a Bank Account.

sage_update_bank_reconciliation

Updates a Bank Reconciliation.

sage_update_bank_transfer

Updates a Bank Transfer.

sage_update_purchase_credit_note

Updates a Purchase Credit Note.

sage_update_purchase_invoice

Updates a Purchase Invoice.

sage_update_purchase_quick_entry

Updates a Purchase Quick Entry.

sage_create_ledger_account

Creates a Ledger Account.

sage_get_coa_account

Returns a Coa Account.

sage_get_coa_template

Returns a Coa Template.

sage_get_ledger_account

Returns a Ledger Account.

sage_get_ledger_account_classification

Returns a Ledger Account Classification.

sage_get_ledger_account_type

Returns a Ledger Account Type.

sage_list_coa_accounts

Returns all Coa Accounts.

sage_list_coa_templates

Returns all Coa Templates.

sage_list_ledger_account_classifications

Returns all Ledger Account Classifications.

sage_list_ledger_account_types

Returns all Ledger Account Types.

sage_update_ledger_account

Updates a Ledger Account.

sage_create_business_exchange_rate

Creates a Business Exchange Rate.

sage_delete_business_exchange_rate

Deletes a Business Exchange Rate.

sage_get_business_exchange_rate

Returns a Business Exchange Rate.

sage_get_currency

Returns a Currency.

sage_get_exchange_rate

Returns a Exchange Rate.

sage_get_live_exchange_rate

Returns a Live Exchange Rate.

sage_list_business_exchange_rates

Returns all Business Exchange Rates.

sage_list_currencies

Returns all Currencies.

sage_list_exchange_rates

Returns all Exchange Rates.

sage_list_live_exchange_rates

Returns all Live Exchange Rates.

sage_update_business_exchange_rate

Updates a Business Exchange Rate.

sage_delete_attachment

Deletes a Attachment.

sage_get_attachment

Returns a Attachment.

sage_get_attachment_context_type

Returns a Attachment Context Type.

sage_list_attachment_context_types

Returns all Attachment Context Types.

sage_update_attachment

Updates a Attachment.

sage_get_artefact_status

Returns a Artefact Status.

sage_get_business

Returns a business.

sage_get_eu_goods_services_type

Returns a EU Goods Services Type.

sage_get_quick_entry_type

Returns a Quick Entry Type.

sage_get_user

Returns the user details of the access_token passed in the request header.

sage_list_artefact_statuses

Returns all Artefact Statuses.

sage_list_businesses

Returns all businesses available to the user.

sage_list_eu_goods_services_types

Returns all EU Goods Services Types.

sage_list_quick_entry_types

Returns all Quick Entry Types.

sage_update_business

Updates a Business.

sage_update_user

Updates the User.

Connect Sage to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Sage side.

If PopMCP shows Sign in with Sage with no fields, click it, sign in with your Sage Accounting login, and pick which businesses to connect. If the form asks for a Client ID and Client Secret, create a free app at developerselfservice.sageone.com with PopMCP's callback URL, enter its details, then sign in the same way.

Client IDYour app's Client ID
Client Secret••••••••••••3f7a
Authorize PopMCP on SageAuthorize

Then just ask for the work

  • “Who owes me money right now, and how much of it is more than 60 days overdue?”

    • unpaid_invoices
  • “Raise a draft invoice to Great Example Inc for two days of consulting at 750 a day”

    • business_overview
    • list_contacts
    • create_sales_invoice
  • “Invoice SI-214 was paid in full into our main account yesterday. Record it.”

    • list_sales_invoices
    • business_overview
    • record_invoice_payment
  • “Which supplier bills do I need to pay next, oldest first?”

    • unpaid_invoices
  • “Show me where we stand with Windsor Ltd: what they owe, what we owe and their last payments”

    • contact_summary
  • “Give me bank balances and the trial balance for this financial year so far”

    • financial_snapshot

Use Sage from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Sage MCP server questions

What teams ask before putting Sage behind an AI client.

Which Sage products does this work with?

Sage Accounting, the cloud product for small businesses, including its Start, Standard and Plus plans. Sage's documents list its API mainly for the UK, Ireland and Canada. Sage 50, Sage 100, Sage 200, Sage 300, Sage X3, Sage Intacct, Sage HR and Sage People have separate APIs and are not covered.

What do I need to connect Sage?

A Sage Accounting login, with an active trial or subscription on the business. You sign in on Sage's own page, so your password is never shared. If PopMCP's form asks for a Client ID and Client Secret, make a free app at developerselfservice.sageone.com first. Sage's developer login is separate and cannot open a business: sign in with the login you use for Sage Accounting.

Can it connect several businesses?

Yes. One sign-in reaches every business that login can open, which is useful for an accountant on Sage Partner Edition, and you choose which to connect. Each one is its own connection in its own PopMCP workspace, and a call naming a different business is refused.

Why does a tool say it is not on my plan?

Sage does not offer every part of its API on every plan. Purchase invoices, products, services and quotes, for example, cannot be created on Sage Accounting Start, and stock needs Plus. The AI can read which plans each tool works on with sage_describe_tool, and the error says so when it applies.

Can the AI see bank details?

Bank account numbers, sort codes, IBANs and tax numbers come back masked to their last four characters in every answer, and this cannot be turned off. Sending a masked number back is refused so it cannot overwrite the real one. Names, addresses, invoices and balances are visible, so connect it only to AI clients you trust with your accounts.

Can it send invoices to customers or pay suppliers?

No. Sage's API has no call that emails a document to a customer, and nothing here moves money. It can create and release an invoice, mark it as sent, get its PDF, and record in the books that a payment happened.

Are there profit and loss or balance sheet reports?

Not through Sage's API, whose only report is the trial balance. PopMCP also works out who owes what, with ageing, from the invoices themselves. Sage's full reports stay in Sage Accounting.

Why did Sage ask me to sign in again?

Sage ends a sign-in after 31 days without use, and when access is removed in Sage. Sign in again and your connection carries on. Using the connection keeps it alive.

Do I have to run or host the Sage MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Sage to Claude Code?

Connect Sage in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Sage on the consent screen. The Sage tools are then available in that session, and no Sage credential is stored on your machine.

Why do only 40 of the 290 tools load by default?

Loading 290 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 40-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 290 here. A trigger is something PopMCP watches for you: 10 Sage events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Sage.

Connect Sage to your AI in minutes

Launch a hosted MCP endpoint for Sage, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP