Skip to main content

MCP server for everyrow: a researcher for every row

Project description

everyrow MCP Server

Most users don't need to run the MCP server locally. Use the hosted remote server at https://mcp.everyrow.io/mcp — it authenticates via OAuth, no API key needed. See the setup guide. The instructions below are for self-hosted or advanced use cases where an API key is required.

MCP (Model Context Protocol) server for everyrow: agent ops at spreadsheet scale.

This server exposes everyrow's core operations as MCP tools, allowing LLM applications to classify, rank, dedupe, merge, forecast, and run agents on CSV files.

All tools operate on local CSV files. Provide absolute file paths as input, and transformed results are written to new CSV files at your specified output path.

Installation

The server requires an everyrow API key. Get one at everyrow.io/api-key ($20 free credit).

Claude Desktop

Download the latest .mcpb bundle from the GitHub Releases page and double-click to install in Claude Desktop. You'll be prompted to enter your everyrow API key during setup. After installing the bundle, you can use everyrow from Chat, Cowork and Code within Claude Desktop.

Cursor

Set the environment variable in your terminal shell before opening cursor. You may need to re-open cursor from your shell after this. Alternatively, hardcode the api key within cursor settings instead of the hard-coded ${env:EVERYROW_API_KEY}

export EVERYROW_API_KEY=your_key_here

Install MCP Server

Manual Config

Either set the API key in your shell environment as mentioned above, or hardcode it directly in the config below. Environment variable interpolation may differ between MCP clients.

export EVERYROW_API_KEY=your_key_here

Add this to your MCP config. If you have uv installed:

{
  "mcpServers": {
    "everyrow": {
      "command": "uvx",
      "args": ["everyrow-mcp"],
      "env": {
        "EVERYROW_API_KEY": "${EVERYROW_API_KEY}"
      }
    }
  }
}

Alternatively, install with pip (ideally in a venv) and use "command": "everyrow-mcp" instead of uvx.

Workflow

All operations follow an async pattern:

  1. Start - Call an operation tool (e.g., everyrow_agent) to start a task. Returns immediately with a task ID and session URL.
  2. Monitor - Call everyrow_progress(task_id) repeatedly to check status. The tool blocks ~12s to limit the polling rate.
  3. Retrieve - Once complete, call everyrow_results(task_id, output_path) to save results to CSV.

Available Tools

everyrow_rank

Score and sort CSV rows based on qualitative criteria.

Parameters:
- task: Natural language instructions for scoring a single row
- input_csv: Absolute path to input CSV
- field_name: Name of the score field to add
- field_type: Type of the score field (float, int, str, bool)
- ascending_order: Sort direction (default: true)
- response_schema: (optional) JSON schema for custom response fields

Example: Rank leads by "likelihood to need data integration solutions"

everyrow_dedupe

Remove duplicate rows using semantic equivalence.

Parameters:
- equivalence_relation: Natural language description of what makes rows duplicates
- input_csv: Absolute path to input CSV

Example: Dedupe contacts where "same person even with name abbreviations or career changes"

everyrow_merge

Join two CSV files using intelligent entity matching (LEFT JOIN semantics).

Parameters:
- task: Natural language description of how to match rows
- left_csv: The table being enriched — all its rows are kept in the output
- right_csv: The lookup/reference table — its columns are appended to matches; unmatched left rows get nulls
- merge_on_left: (optional) Only set if you expect exact string matches on this column or want to draw agent attention to it. Fine to omit.
- merge_on_right: (optional) Only set if you expect exact string matches on this column or want to draw agent attention to it. Fine to omit.
- use_web_search: (optional) "auto" (default), "yes", or "no"
- relationship_type: (optional) "many_to_one" (default) if multiple left rows can match one right row, "one_to_one" matches must be unique, "one_to_many" one left row can match multiple right rows, "many_to_many" multiple left rows can match multiple right rows. For one_to_many and many_to_many, multiple matches are joined with " | " in each added column.

Example: Match software products (left, enriched) to parent companies (right, lookup): Photoshop -> Adobe

everyrow_classify

Classify each row into one of the provided categories.

Parameters:
- task: Natural language classification instructions
- categories: Allowed categories (minimum 2)
- classification_field: (optional) Output column name (default: "classification")
- include_reasoning: (optional) Include reasoning column (default: false)

Example: Classify companies by GICS sector with categories ["Energy", "Financials", "Information Technology", ...]

everyrow_forecast

Forecast the probability of binary questions.

Parameters:
- context: (optional) Batch-level context for all questions

Example: "Will the US Federal Reserve cut rates before July 2027?"

everyrow_agent

Run web research agents on each row of a CSV.

Parameters:
- task: Natural language description of research task
- input_csv: Absolute path to input CSV
- response_schema: (optional) JSON schema for custom response fields

Example: "Find this company's latest funding round and lead investors"

everyrow_progress

Check progress of a running task.

Parameters:
- task_id: The task ID returned by an operation tool

Blocks ~12s before returning status. Call repeatedly until task completes.

everyrow_results

Retrieve and save results from a completed task.

Parameters:
- task_id: The task ID of the completed task
- output_path: Full absolute path to output CSV file (must end in .csv)

Only call after everyrow_progress reports status "completed".

Development

cd everyrow-mcp
uv sync
uv run pytest

For MCP registry publishing:

mcp-name: io.github.futuresearch/everyrow-mcp

License

MIT - See LICENSE.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

everyrow_mcp-0.5.1.tar.gz (141.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

everyrow_mcp-0.5.1-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

Details for the file everyrow_mcp-0.5.1.tar.gz.

File metadata

  • Download URL: everyrow_mcp-0.5.1.tar.gz
  • Upload date:
  • Size: 141.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for everyrow_mcp-0.5.1.tar.gz
Algorithm Hash digest
SHA256 9c12b99377f96f3202e9860fa52b3bf187ec8a19100479bbd7bda730d0914990
MD5 80a418540cf0100344f6156dc659ff1b
BLAKE2b-256 51b11757024504237e1718c69ad95c28b6a35c6d4695d713af1c0185a24fb784

See more details on using hashes here.

Provenance

The following attestation bundles were made for everyrow_mcp-0.5.1.tar.gz:

Publisher: publish.yaml on futuresearch/everyrow-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file everyrow_mcp-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: everyrow_mcp-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 80.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for everyrow_mcp-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d9689170dbc6453bcae9335345e73822ca04f2c15b8fa89af15a0b711d15361
MD5 e2144f0dd3b3c85fab6c9770e3ff4f0f
BLAKE2b-256 1be79964c1b91bef25574a503a9d21b23b800891f8ef8b2e1f687f7daaf238ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for everyrow_mcp-0.5.1-py3-none-any.whl:

Publisher: publish.yaml on futuresearch/everyrow-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page