ExpenseOnDemand MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.0.2Updated Nov 5, 2026

Read exports, payroll totals and users; add, update or deactivate employees in ExpenseOnDemand.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for ExpenseOnDemand: read accounting exports, payroll totals and master data, and add, update or deactivate employees, customers and cost…

What you can do
  • Export approved expense data for accounting, filtered by report, date range, category, claimant, cost centre, grade and payment type
  • Get payroll totals per employee and list export templates, expense categories and grades
  • List customers, cost centres and users, and add or update customers and cost centres
  • Add, update or deactivate employees, including inviting new ones
  • Check monthly tool-call usage, request a missing feature, and upgrade or cancel the paid plan
When to use it
Useful when you want an assistant to pull approved expense and payroll figures out of ExpenseOnDemand for reporting or accounting hand-off, or to maintain employees, customers and cost centres without opening the app.
Requirements
Remote endpoint reached over streamable HTTP; no local install. Sign-in is via OAuth, and on first connect you supply an ExpenseOnDemand API subscription key, ClientID and ClientKey, which the server stores per user. No keys go in the client config. A free plan allows 50 tool calls per month.
Before you install
Several tools write to your ExpenseOnDemand data: adding customers, cost centres and employees, updating records, and deactivating employees. Update tools may clear fields you omit, so read the record first. Adding creates a new record on every call. Paid plans cost money and are billed through a Stripe checkout link; cancellation runs to the end of the paid period with no refund for the current period. Your ExpenseOnDemand credentials are stored by the hosted service.

Installation

In SourceWeft

  1. Open ExpenseOnDemand MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fexpenseondemand/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "expenseondemand-by-usefulapi": {
      "type": "http",
      "url": "https://expenseondemand.usefulapi.io/mcp"
    }
  }
}

README

ExpenseOnDemand MCP by usefulapi

Use your ExpenseOnDemand account from Claude, Cursor, or any MCP client. Read accounting exports, payroll totals, users, customers, cost centres, categories and grades, and add or update employees, customers and cost centres, or deactivate an employee. Hosted, no local install: connect with your own credentials.

Live endpoint: https://expenseondemand.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://expenseondemand.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http expenseondemand https://expenseondemand.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "expenseondemand": {      "url": "https://expenseondemand.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your ExpenseOnDemand credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/expenseondemand/

On first connect you provide your API subscription key (from the ExpenseOnDemand developer portal), your ClientID and your ClientKey (both shown in the ExpenseOnDemand app for your subscription). The server validates them and stores them per user. No keys go in config files.

Tools

ToolTypeWhat it does
expenseondemand_export_accountingreadExport accounting data
expenseondemand_get_payroll_exportreadGet payroll export
expenseondemand_list_export_templatesreadList export templates
expenseondemand_list_expense_categoriesreadList expense categories
expenseondemand_list_gradesreadList grades
expenseondemand_list_customersreadList customers
expenseondemand_add_customerwriteAdd a customer
expenseondemand_update_customerwriteUpdate a customer
expenseondemand_list_cost_centresreadList cost centres
expenseondemand_add_cost_centrewriteAdd a cost centre
expenseondemand_update_cost_centrewriteUpdate a cost centre
expenseondemand_list_usersreadList users
expenseondemand_add_employeewriteInvite an employee
expenseondemand_update_employeewriteUpdate an employee
expenseondemand_deactivate_employeewriteDeactivate an employee
expenseondemand_usage_statusmetaUsage status (free-tier meter)
expenseondemand_request_featuremetaRequest a missing feature
expenseondemand_upgrademetaUpgrade to Pro or Pro+
expenseondemand_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with expenseondemand_upgrade (it returns a Stripe Checkout link). Cancel any time with expenseondemand_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running expenseondemand_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/expenseondemand/README.md at commit 92e9424

Tools

15

expenseondemand_export_accounting

Export accounting data

Fetch approved expense data for an accounting integration, filtered by report, date range, category, claimant, cost centre, grade and payment type. Reads data only; the POST carries the filter body. Accounting API: POST /accounting/api/AccountingExport.

ParameterstoDatefromDateexportTypegradeFilterclaimantFilterexportReportIdcostCenterFilterpaymentTypeFilterclaimantTypeFilterexpenseCategoryFilter

expenseondemand_get_payroll_export

Get payroll export

Get the total approved expense amount per employee for payroll: name, email, expense count and total amount. Accounting API: GET /accounting/api/PayrollExport.

Takes no parameters.

expenseondemand_list_export_templates

List export templates

List the export report types configured for the subscription, with their report ids and fields. Use a reportId as exportReportId in expenseondemand_export_accounting. Meta API: GET /meta/api/GetExportTemplates.

Takes no parameters.

expenseondemand_list_expense_categories

List expense categories

List the expense categories of the subscription with id, name, active flag and base category id. Meta API: GET /meta/api/GetExpenseCategoriesForOrganisation.

Takes no parameters.

expenseondemand_list_grades

List grades

List the employee grades of the subscription with id, name and active flag. Meta API: GET /meta/api/GetGradesForOrganisation.

Takes no parameters.

expenseondemand_list_customers

List customers

List the customers of the subscription with id, name, codes and active flag. Customer API: GET /customer/api/GetCustomersForOrganisation.

Takes no parameters.

expenseondemand_add_customer

Add a customer

Add a customer to the subscription. The id is generated by ExpenseOnDemand. Creates a new record each call. Customer API: POST /customer/api/AddCustomerForSubscription.

Parameterscodenamecode2isActive

expenseondemand_update_customer

Update a customer

Update an existing customer by id. Send every field you want to keep: the vendor may clear fields you leave out, so read the record first with expenseondemand_list_customers. Customer API: POST /customer/api/UpdateCustomerForSubscription.

Parametersidrequiredcodenamecode2isActive

expenseondemand_list_cost_centres

List cost centres

List the cost centres of the subscription with id, name, codes and active flag. Cost Centre API: GET /costCentre/api/GetCostCentresForOrganisation.

Takes no parameters.

expenseondemand_add_cost_centre

Add a cost centre

Add a cost centre to the subscription. The id is generated by ExpenseOnDemand. Creates a new record each call. Cost Centre API: POST /costCentre/api/AddCostCentreForSubscription.

Parameterscodenamecode2isActive

expenseondemand_update_cost_centre

Update a cost centre

Update an existing cost centre by id. Send every field you want to keep: the vendor may clear fields you leave out, so read the record first with expenseondemand_list_cost_centres. Cost Centre API: POST /costCentre/api/UpdateCostCentreForSubscription.

Parametersidrequiredcodenamecode2isActive

expenseondemand_list_users

List users

List the users (employees) of the subscription with email, name, status (1 Active, 2 Inactive, 3 NotInvited, 4 Pending, 5 Deleted), role and approver email. Users API: GET /users/api/GetUsersForOrganisation.

Takes no parameters.

expenseondemand_add_employee

Invite an employee

Add an employee to the subscription. ExpenseOnDemand treats the new employee as invited. Creates a record each call, so check expenseondemand_list_users first. Users API: POST /users/api/AddEmployee.

ParametersemailrequiredlastNamerequiredfirstNamerequiredemployeeIdrequiredemployeeId2employeeId3employeeId4employeeRolerequiredapproverEmail

expenseondemand_update_employee

Update an employee

Update an existing employee, identified by email. Send every field you want to keep: the vendor may clear fields you leave out, so read the record first with expenseondemand_list_users. Users API: POST /users/api/UpdateEmployee.

ParametersemailrequiredlastNamerequiredfirstNamerequiredemployeeIdrequiredemployeeId2employeeId3employeeId4employeeRolerequiredapproverEmail

expenseondemand_deactivate_employee

Deactivate an employee

Deactivate an employee by email, so they can no longer submit or approve expenses. Users API: POST /users/api/DeactivateEmployee.

Parametersemailrequired

Version history

2
  1. v1.0.2LatestNov 5, 2026
  2. v1.0.1Nov 5, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations