Answers and live dashboards from your spreadsheets.

Valv Desktop is an Excel MCP server for the agent you already use. Point it at a folder of Excel and CSV exports, then connect Claude Code, Cursor, Codex, or Copilot to http://127.0.0.1:4319/mcp. Every sheet becomes a read-only table the agent can query. Ask a question, get the number. Ask for a dashboard, and it updates when someone saves the file.

Book a demo

Want the agent to edit a workbook instead? See the other Excel MCP servers.

Example

From a folder of exports to an MRR dashboard.

A founder keeps a folder of exports: Stripe invoices and subscriptions, a HubSpot deals export, and a planning workbook with a Targets sheet. Valv turns each file, and each sheet of a multi-sheet workbook, into a table.

~/Exports File, then table name
stripe/invoices.csv stripe__invoices
stripe/subscriptions.csv stripe__subscriptions
hubspot/deals export.csv hubspot__deals_export
Plan 2026.xlsx, sheet Targets plan_2026__targets
Plan 2026.xlsx, sheet Hiring plan_2026__hiring
Ad spend.xlsx, one sheet ad_spend

The name comes from the file's path in the folder, lowercased, with anything that isn't a letter or digit turned into _. Folders and sheet names are joined with __. The sheet name is only added when a workbook has more than one sheet with data.

Claude Code · ~/work

> What was MRR by month this year, and which plan grew fastest? Then make it a dashboard.

⏺ valv-desktop - list_resources

⎿ 6 tables

⏺ valv-desktop - describe_resource (stripe__invoices)

⎿ date DATE, plan TEXT, amount REAL, status TEXT, ...

⏺ valv-desktop - run_code (paid invoices by plan and month)

⎿ 9 months x 3 plans

⏺ valv-desktop - write_file (mrr.html)

⎿ Wrote 3.1 KB

⏺ valv-desktop - open_file (mrr.html)

⎿ Opened in Valv

⏺ MRR grew from $41.2k in January to $58.9k in September. Team grew fastest, up 61%, mostly from upgrades after June. mrr.html is open in Valv.

  1. It reads before it asks.

    The agent lists the tables and describes the invoices table, so it uses the real column names and types instead of guessing.

  2. It does the math in one step.

    With run_code it queries paid invoices and sums them by plan and month, then returns only the totals. The full export never lands in the chat.

  3. The dashboard stays live.

    Next week you export invoices again and save over stripe/invoices.csv. Valv reloads the folder and the open dashboard shows the new numbers.

Setup

Set it up in a few minutes.

Nothing to install besides Valv: no Python, no Node. Valv reads the files, and your MCP client only needs a local URL.

  1. 1

    Add a spreadsheet folder.

    In Valv Desktop, add an Excel & CSV datasource and pick the folder where your exports land. Subfolders are included, up to 500 files.

  2. 2

    Check the tables.

    Open a few in Valv's table viewer. Browse, filter, sort, and export CSV to confirm the headers and types came out right.

  3. 3

    Hide what the agent shouldn't see.

    In the datasource settings, open AI access and hide columns like customer emails. Hide every column of a table to remove it from the agent's view. You still see everything yourself.

  4. 4

    Add Valv to your MCP client.

    Open Settings, MCP Server, and copy the guide for your client. Port 4319 is the default. If it's taken, Valv uses another port, so copy the URL the app shows. Keep Valv open while you work.

Claude Code

CLI
claude mcp add --transport http valv-desktop http://127.0.0.1:4319/mcp

Codex

CLI
codex mcp add valv-desktop --url http://127.0.0.1:4319/mcp

GitHub Copilot

CLI
copilot mcp add --transport http valv-desktop http://127.0.0.1:4319/mcp

Cursor, VS Code, and other clients

JSON
{
  "mcpServers": {
    "valv-desktop": {
      "type": "http",
      "url": "http://127.0.0.1:4319/mcp"
    }
  }
}

The agent sees every datasource in the active workspace. With more than one, Valv prefixes each tool with the datasource name, so a folder named Exports gives exports__query.

How messy spreadsheets become clean tables.

Exports and hand-kept workbooks are rarely tidy. Valv handles the usual mess when it loads the folder, so the agent queries clean columns.

Title rows are skipped.

Valv looks at the first 20 rows and takes the first one that fills most of the table's width as the header. A "Sales report 2026" title in A1 doesn't become a column name. A sheet with no text header gets columns named column_1, column_2, and so on.

Columns get real types.

Each column becomes INTEGER, REAL, BOOLEAN, DATE, DATETIME, or TEXT, based on every value in it. A column with numbers and the odd "n/a" stays TEXT. Zip codes and IDs with leading zeros stay text too, so nothing gets mangled.

Formulas give their results.

A formula cell reads as the value Excel saved for it, the same number you see in the sheet. Error cells like #REF! or #DIV/0! read as empty.

Merged cells count once.

A merged range keeps its value in the first cell and leaves the rest empty, so merged titles don't repeat across a row.

CSV exports just work.

Valv detects comma, semicolon, or tab delimiters from the first line, so European Excel exports load too. A byte order mark at the start of the file is stripped.

Hidden stays hidden.

Hidden sheets are skipped. So are hidden files and folders, and the ~$ lock files Excel writes next to an open workbook.

What the agent can do with your spreadsheets.

The agent doesn't write SQL or touch the files. It sends structured, read-only queries that Valv checks and runs against the loaded tables.

It can

  • List and describe every sheet table, with column names and types.
  • Filter, group, aggregate, sort, and limit in one query.
  • Combine several sheets or files in one step with run_code, like targets against actuals.
  • Build a dashboard that opens in Valv and reloads when a file is saved.
  • Set up a flow that checks a number on a schedule and notifies you.

It can't

  • Change a cell, add a row, or save a workbook. There are no write tools.
  • Join two sheets inside a single query. Sheets have no relations, so it combines them with run_code.
  • See columns you hid in AI access.

Limits

File types .xlsx and .csv. Not .xls or .xlsm. Save those as .xlsx or CSV first.
Files per datasource Up to 500, subfolders included.
Tables One per visible, non-empty sheet. One per CSV.
Header detection Scans the first 20 rows.
Dates in CSV Recognized as ISO text, like 2026-03-15 or 2026-03-15 14:30. Other formats, like 03/15/2026, stay text.
Reload About half a second after a file is saved.
Writes None. Valv never changes your files.
Unreadable files Skipped. The rest of the folder still loads.

Monthly exports as separate files work too. Each one is its own table, and the agent combines them with run_code. A dashboard reads the tables it was built on, so when a new month's file arrives, ask the agent to add it.

Valv or another Excel MCP server?

Most Excel MCP servers are built to edit one workbook: write cells, apply formatting, add charts and pivot tables. If that's the job, use one of them. Valv is for reading: many files at once, CSV included, with answers and dashboards that keep up as the files change.

Valv Desktop

Desktop app, local HTTP endpoint

Read-only. A whole folder of .xlsx and .csv files as tables.

You want answers across many exports at once, and dashboards that update when a file is saved, from the agent you already use.

excel-mcp-server (haris-musa)

Python, uvx, stdio or HTTP

Reads and writes .xlsx and .xlsm: cells, formulas, formatting, charts, pivot tables

You want the agent to create or edit workbooks. It doesn't read CSV or .xls, and works one workbook at a time.

excel-mcp-server (negokaz)

Node 20+, npx, stdio

Reads and writes sheets, formats ranges, creates tables

You want a light editing server through npx. Reads are paged, 4,000 cells by default. On Windows it can edit the open workbook live and take screenshots.

ExcelMcp (sbroenne)

Windows, Excel 2016 or later, COM

Drives the real Excel app: Power Query, DAX, PivotTables, VBA, charts

You're on Windows and want the agent to operate Excel itself, including the Data Model and macros.

Microsoft 365 servers

Microsoft Graph, OAuth, hosted

Read and write workbooks in OneDrive or SharePoint

Your workbooks live in Microsoft 365 rather than on your disk, and you can register an app with Graph permissions.

Claude for Excel

Anthropic's Excel add-in, paid Claude plans

Works inside the open workbook: answers with cell citations, edits values, builds models

You work in one workbook in Excel and want Claude to change it there. Not an MCP server for your own agent.

Your data in a database instead? See the database MCP guide. For more on spreadsheet folders, see Spreadsheets.

Excel MCP, answered

What is an Excel MCP server?

An Excel MCP server gives an AI agent tools to read Excel files over the Model Context Protocol. Claude Code, Cursor, Codex, Copilot, and other MCP clients can then answer questions from your spreadsheets without you pasting data into the chat. Most Excel MCP servers also edit workbooks. Valv's is read-only and treats a whole folder of Excel and CSV files as queryable tables.

How do I connect Claude Code to my Excel files?

In Valv Desktop, add an Excel & CSV datasource and pick the folder. Then run: claude mcp add --transport http valv-desktop http://127.0.0.1:4319/mcp. Keep Valv open. Copy the exact URL from Settings, MCP Server, in case Valv picked a different port.

How is this different from Claude for Excel?

Claude for Excel is Anthropic's add-in that runs inside Excel and works on the workbook you have open. It can edit cells, build models, and debug formulas. Valv doesn't run inside Excel and never edits anything. It turns a folder of Excel and CSV files into tables that any MCP client can query, and builds dashboards that update when a file changes.

Can the agent change my spreadsheets?

No. Valv only reads the files. There are no tools to write cells, add rows, or save a workbook, and you can't edit cells in Valv's table viewer either. Your formatting and formulas stay exactly as they are.

Does it work with CSV files and .xls?

CSV, yes. Comma, semicolon, and tab delimiters are detected. Legacy .xls files are not supported, and neither is .xlsm. Save them as .xlsx in Excel and they load like any other workbook.

Can the agent combine data from two sheets or files?

Yes, with run_code. The agent runs several queries in one step and combines the results, for example targets from a workbook against invoices from a Stripe export. A single query reads one table at a time, because sheets have no relations between them.

Is Valv's Excel MCP server free?

Valv Desktop is free for personal, non-commercial use, with every feature included. Commercial use needs a license, a one-time $99 per user during the beta. There is no subscription.

Point your agent at your spreadsheets.

Free for personal use, every feature included. Commercial use needs a seat at beta pricing. See pricing.

All downloads Other platforms and builds