Unofficial SAP Concur MCP for Claude — expense reports, expenses, receipts and trips
Connect Runs on your machine
claude mcp add concur-mcp -e CONCUR_DC=<CONCUR_DC> -e CONCUR_WS_PORT=<CONCUR_WS_PORT> -e CONCUR_OUTPUT_DIR=<CONCUR_OUTPUT_DIR> -e CONCUR_UPLOAD_ROOTS=<CONCUR_UPLOAD_ROOTS> -e CONCUR_INLINE_RECEIPTS=<CONCUR_INLINE_RECEIPTS> -- npx -y @chrischall/[email protected]
{
"mcpServers": {
"concur-mcp": {
"command": "npx",
"args": [
"-y",
"@chrischall/[email protected]"
],
"env": {
"CONCUR_DC": "<CONCUR_DC>",
"CONCUR_WS_PORT": "<CONCUR_WS_PORT>",
"CONCUR_OUTPUT_DIR": "<CONCUR_OUTPUT_DIR>",
"CONCUR_UPLOAD_ROOTS": "<CONCUR_UPLOAD_ROOTS>",
"CONCUR_INLINE_RECEIPTS": "<CONCUR_INLINE_RECEIPTS>"
}
}
}
}
{
"mcpServers": {
"concur-mcp": {
"command": "npx",
"args": [
"-y",
"@chrischall/[email protected]"
],
"env": {
"CONCUR_DC": "<CONCUR_DC>",
"CONCUR_WS_PORT": "<CONCUR_WS_PORT>",
"CONCUR_OUTPUT_DIR": "<CONCUR_OUTPUT_DIR>",
"CONCUR_UPLOAD_ROOTS": "<CONCUR_UPLOAD_ROOTS>",
"CONCUR_INLINE_RECEIPTS": "<CONCUR_INLINE_RECEIPTS>"
}
}
}
}
{
"servers": {
"concur-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chrischall/[email protected]"
],
"env": {
"CONCUR_DC": "<CONCUR_DC>",
"CONCUR_WS_PORT": "<CONCUR_WS_PORT>",
"CONCUR_OUTPUT_DIR": "<CONCUR_OUTPUT_DIR>",
"CONCUR_UPLOAD_ROOTS": "<CONCUR_UPLOAD_ROOTS>",
"CONCUR_INLINE_RECEIPTS": "<CONCUR_INLINE_RECEIPTS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
CONCUR_DCOptional | Concur datacenter from your signed-in tab's host (e.g. us2, eu2). Defaults to us2. |
CONCUR_WS_PORTOptional | fetchproxy bridge concentrator port. Defaults to the fleet-shared 37149. |
CONCUR_OUTPUT_DIROptional | Where `concur_get_receipt` saves downloaded receipts (never overwriting an existing file). Defaults to ~/Downloads/concur-mcp. |
CONCUR_UPLOAD_ROOTSOptional | The only folders `concur_upload_receipt` will read from (a path-delimiter-separated list; `~` expanded). A hosted server refuses every path (use `concur_upload_slots` or inline base64). Defaults to ~/Downloads, ~/Documents and ~/Desktop, plus the working directory when it is a folder inside your ho… |
CONCUR_INLINE_RECEIPTSOptional | `true` makes `concur_get_receipt` return the image in the result instead of writing a file. Off locally, on when hosted. |
Details
| Package | @chrischall/[email protected] (NPM, stdio) |
| First published | 7 Nov 2026 |
| Last updated | 7 Nov 2026 |
| Registry name | io.github.chrischall/concur-mcp |
More data and analytics servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
