
Ramp MCP Server
Retrieve and analyze Ramp finance data (transactions, bills, reimbursements) via an in-memory SQLite ETL pipeline.
Add to your client
Copy the config for your MCP client and paste it into its config file.
git clone git@github.com:ramp/ramp-mcp.gitPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"ramp-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/<ABSOLUTE-PATH-TO>/ramp-mcp",
"run",
"ramp-mcp",
"-s",
"transactions:read,reimbursements:read"
],
"env": {
"RAMP_CLIENT_ID": "<CLIENT_ID>",
"RAMP_CLIENT_SECRET": "<CLIENT_SECRET>",
"RAMP_ENV": "<demo|qa|prd>"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- A Ramp account with Developer API access (create a client under Profile > Developer > Create app)
- A Ramp client ID and secret with client credentials enabled and the desired scopes granted
- uv (Astral) installed
- The repository cloned locally (run via uv --directory)
About Ramp MCP Server
An official Ramp MCP server that lets an LLM retrieve and analyze Ramp finance data through the Ramp Developer API. It runs a lightweight ETL pipeline into an ephemeral in-memory SQLite database so that large datasets can be loaded and then queried with SQL, working around token and input-size limits. Tools are split into database management, direct reference-data fetches, and per-resource load tools that each require a corresponding Ramp OAuth scope.
Tools & capabilities (17)
process_dataSet up and process data into the ephemeral in-memory SQLite database for analysis.
execute_queryRun a SQL query against the ephemeral in-memory database.
clear_tableDelete/clear a table from the ephemeral in-memory database.
get_ramp_categoriesFetch Ramp expense categories directly.
get_currenciesFetch supported currencies directly.
load_transactionsLoad transactions into the database (requires transactions:read scope).
load_reimbursementsLoad reimbursements into the database (requires reimbursements:read scope).
load_billsLoad bills into the database (requires bills:read scope).
load_locationsLoad locations into the database (requires locations:read scope).
load_departmentsLoad departments into the database (requires departments:read scope).
load_bank_accountsLoad bank accounts into the database (requires bank_accounts:read scope).
load_vendorsLoad vendors into the database (requires vendors:read scope).
load_vendor_bank_accountsLoad vendor bank accounts into the database (requires vendors:read scope).
load_entitiesLoad entities into the database (requires entities:read scope).
load_spend_limitsLoad spend limits into the database (requires limits:read scope).
load_spend_programsLoad spend programs into the database (requires spend_programs:read scope).
load_usersLoad users into the database (requires users:read scope).
What this server can do
Ramp MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Analyze Ramp transactions and spend with natural-language questions answered via SQL over an in-memory database
- Audit reimbursements, bills, and vendor data without manually exporting reports
- Break down spend by department, location, or entity for finance reporting
- Review spend limits and spend programs across the organization
Security notes
Uses Ramp Developer API client-credentials auth: set RAMP_CLIENT_ID and RAMP_CLIENT_SECRET in the config env. Grant only the OAuth scopes you need on the Ramp client and pass the matching comma-separated scopes via the -s flag. Defaults to the demo environment (RAMP_ENV=demo); set RAMP_ENV=prd to operate on real production financial data.
Ramp MCP Server FAQ
Does it hit my real Ramp data by default?
No. All requests go to the demo environment by default. Set RAMP_ENV=prd to use production data.
How does it handle large datasets?
It uses an ETL pipeline into an ephemeral in-memory SQLite database so the LLM can query with SQL instead of loading everything into context. Very large datasets may still be unprocessable due to API/client limits; prompt the model to avoid the REPL and keep responses concise to avoid timeouts.
Why do some load tools fail?
Each load tool requires a specific Ramp OAuth scope (e.g. transactions:read). Enable the scope on your Ramp client and include it in the comma-separated -s CLI argument when starting the server.
Is this an official Ramp project?
Yes. It is published under the ramp-public GitHub organization and copyrighted by Ramp Business Corporation under the MIT License.
Alternatives to Ramp MCP Server
Compare all alternatives →Official Stripe server for payments, customers, subscriptions, invoices, and billing via natural language.
Coinbase's AgentKit MCP extension for onchain actions: transfers, swaps, and contract calls.
Alpaca's official trading server for stocks, ETFs, options, and crypto in plain English.
Compare Ramp MCP Server with: