MCP.Market

Concur MCP server

by chrischall·io.github.chrischall/concur-mcp·v0.3.4

Unofficial SAP Concur MCP for Claude — expense reports, expenses, receipts and trips

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

not scanned yet

Adoption
New

0 stars

Reviews

Write one

Nobody has reviewed Concur yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Concur tools

No tool declarations could be read from the package source. They show once the server is installed.

Not scanned yet. New listings are scanned within a day or two of arriving.

How Concur compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 95% of 48,255 servers

Release history: 5 versions in the registry since 2026-10-08, latest 2026-10-29, typically one every 5 days.

Install Concur in Claude Code, Cursor or VS Code

Runs npx -y @chrischall/concur-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add concur-mcp -- npx -y @chrischall/concur-mcp
Add to Cursor

What the publisher says

From the Concur repository's README, as published. We do not edit it. Read it on GitHub

SAP Concur MCP

A Model Context Protocol server that connects Claude to SAP Concur: your expense reports, the expenses on them, available (unassigned) expenses, receipts, and Concur Travel trips — read and write, with every write confirmation-gated.

[!WARNING]

AI-developed project. This codebase was entirely built and is actively maintained by Claude. No human has audited the implementation. Review all code and tool permissions before use.

[!CAUTION]

Unofficial and unsupported. This server does not use Concur's documented partner API. It calls the internal GraphQL API the Concur web app itself uses, authenticated with your own signed-in browser session. It may break without notice, and automated use may conflict with SAP Concur's or your employer's terms. Use it only for your own account, at your own discretion.

What you can do

Ask Claude things like:

  • "Which of my Concur reports are still unsubmitted, and what's blocking them?"
  • "Show me the card transactions that aren't on a report yet."
  • "Create a report called 'Austin offsite' and move last week's Uber and hotel charges onto it."
  • "Upload ~/Downloads/dinner.pdf and attach it to the dinner expense."
  • "When does my next trip leave, and what hotel am I in?"

Requirements

  • Claude Desktop, Claude Code, or any MCP host
  • Node.js 22.5 or later
  • The ContextMint Bridge browser extension and a signed-in Concur tab (https://.concursolutions.com/…)

Installation

Claude Code plugin

claude plugin marketplace add chrischall/concur-mcp
claude plugin install concur@chrischall

Any MCP host (npx)

{
  "mcpServers": {
    "concur": {
      "command": "npx",
      "args": ["-y", "@chrischall/concur-mcp"],
      "env": { "CONCUR_DC": "us2" }
    }
  }
}

Claude Desktop (.mcpb)

Install the .mcpb bundle from the latest release. The installer asks for your datacenter (default us2).

How it authenticates

Concur's web app authenticates its API calls with an HttpOnly JWT cookie that the page itself cannot read. This server uses the fetchproxy bridge only to read three session cookies from your signed-in Concur tab: JWT, plus Concur's legacy session cookies OTSESSIONAABQRD and OTSESSIONAABQRN. Every API call is then made from Node with Authorization: Bearer and a Cookie header carrying whichever OTSESSION cookies the tab had — the parts of Concur still served by its legacy services (report keys, currencies, available receipts, permissions) answer an error without them. The cookies are held in memory only and never appear in an error or a log; the only thing written under your home directory is the bridge's pairing identity.

The token lives 60 minutes. The server re-reads the cookies (all together) from your tab when the token is within two minutes of expiry, or once on a 401 (one re-read and one retry per call, never a loop). A read that fails the way a stale OTSESSION cookie fails gets the same single re-read and retry. Concur keeps the cookies fresh while a tab is open, so keep a signed-in Concur tab open while you use the tools. concur_healthcheck reports which source supplied the token, how many minutes it has left and whether the legacy session cookie was found — never a cookie value.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Concur: common questions

Is Concur MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the Concur safety report
How do I install Concur?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Concur need an API key?
No secret keys are declared. It reads 5 settings from the environment.
Is Concur maintained?
The last commit was 26 days ago (2026-10-09). The latest release is v0.3.4.

More from chrischall →