everyrowdocs
Overview
  • Installation
  • Getting Started
  • API Key
  • MCP Server
  • Skills vs MCP
  • Progress Monitoring
  • Chaining Operations
  • GitHub
API Reference
  • dedupe
  • merge
  • rank
  • agent_map
  • screen
Guides
  • How to replace human data annotators with LLMs in active learning
  • How to Add A Column to a DataFrame with Web Research
  • How to Classify and Label Data with an LLM in Python
  • Remove Duplicates from ML Training Data in Python
  • Filter a Pandas DataFrame with LLMs
  • How to Fuzzy Join DataFrames in Python
  • How to sort a dataset using web data in Python
  • How to resolve duplicate rows in Python with LLMs
  • How to scale LLM deduplication to 20,000 rows
Case Studies
  • Build an AI lead qualification pipeline in Python
  • Fuzzy join two Pandas DataFrames using LLMs
  • Fuzzy match and merge contact lists in Python
  • How to filter job postings with LLM Agents
  • How to merge datasets without common ID in Python
  • How to score and prioritize leads with AI in Python
  • How to Screen Stocks in Python with AI Agents
  • How to use LLMs to deduplicate CRM Data
  • LLM-powered Merging at Scale
  • LLM-powered Screening at Scale
  • Python Notebook to screen stocks using AI Agents
  • Run 10,000 LLM Web Research Agents
  • Score and rank leads without a CRM in Python
  • Understanding `agent_map` Effort Levels
  • Use LLM Agents to research government data at scale
everyrowby futuresearch
by futuresearch

MCP Server Reference

The everyrow MCP server exposes tools for AI-powered data processing. These tools are called directly by Claude Code, Codex CLI, and other MCP clients — no Python code is needed.

All operations use an async pattern: submit the task, poll for progress, then retrieve results. This allows long-running operations (1–10+ minutes) to work reliably with MCP clients.

Operation Tools

everyrow_screen

Filter rows in a CSV based on criteria that require judgment.

Parameter Type Required Description
task string Yes Screening criteria. Rows that meet the criteria pass.
input_csv string Yes Absolute path to input CSV.
response_schema object No JSON schema for custom fields. Default: {passes: bool}.

Returns task_id and session_url. Call everyrow_progress to monitor.

everyrow_rank

Score and sort rows by qualitative criteria.

Parameter Type Required Description
task string Yes What makes a row score higher or lower.
input_csv string Yes Absolute path to input CSV.
field_name string Yes Column name for the score.
field_type string No Score type: float (default), int, str, bool.
ascending_order bool No true = lowest first (default).
response_schema object No JSON schema for additional fields.

Returns task_id and session_url. Call everyrow_progress to monitor.

everyrow_dedupe

Remove semantic duplicates.

Parameter Type Required Description
equivalence_relation string Yes What makes two rows duplicates.
input_csv string Yes Absolute path to input CSV.

Returns task_id and session_url. Call everyrow_progress to monitor.

everyrow_merge

Join two CSVs using intelligent entity matching.

Parameter Type Required Description
task string Yes How to match rows between tables.
left_csv string Yes Absolute path to primary CSV.
right_csv string Yes Absolute path to secondary CSV.
merge_on_left string No Column in left table to match on.
merge_on_right string No Column in right table to match on.
use_web_search string No auto (default), yes, or no.

Returns task_id and session_url. Call everyrow_progress to monitor.

everyrow_agent

Run web research agents on each row.

Parameter Type Required Description
task string Yes Task for the agent to perform on each row.
input_csv string Yes Absolute path to input CSV.
response_schema object No JSON schema for structured output. Default: {answer: str}.

Returns task_id and session_url. Call everyrow_progress to monitor.

Progress and Results Tools

everyrow_progress

Check progress of a running task. Blocks for a few seconds before returning.

Parameter Type Required Description
task_id string Yes The task ID from an operation tool.

Returns status text with completion counts and elapsed time. Instructs the agent to call again immediately until the task completes or fails.

everyrow_results

Retrieve results from a completed task and save to CSV.

Parameter Type Required Description
task_id string Yes The task ID of the completed task.
output_path string Yes Directory or full .csv path for output.

Returns confirmation with row count and file path.

Workflow

1. everyrow_agent(task, input_csv)
   → Returns task_id + session_url (~0.6s)

2. everyrow_progress(task_id)
   → Blocks 12s, returns "Running: 5/50 complete, 8 running (15s elapsed)"
   → Response says "call everyrow_progress again immediately"

3. everyrow_progress(task_id)  (repeat)
   → "Running: 23/50 complete, 5 running (45s elapsed)"

4. everyrow_progress(task_id)  (final)
   → "Completed: 49 succeeded, 1 failed (142s total)"

5. everyrow_results(task_id, output_path)
   → "Saved 50 rows to /path/to/agent_companies.csv"

The agent handles this loop automatically. You don't need to intervene.

Custom Response Schemas

All tools that accept response_schema take a JSON schema object:

{
  "properties": {
    "annual_revenue": {
      "type": "integer",
      "description": "Annual revenue in USD"
    },
    "employee_count": {
      "type": "integer",
      "description": "Number of employees"
    }
  },
  "required": ["annual_revenue"]
}

Supported types: string, integer, number, boolean, array, object.

Plugin

The Claude Code plugin (.claude-plugin/plugin.json) bundles:

  1. MCP server, with all tools above
  2. Hooks, such as stop guard (prevents ending turn during operations), results notification (macOS), session cleanup
  3. Skill, to guide agents with quick SDK code generation for the Python SDK path

Install with:

claude plugin marketplace add futuresearch/everyrow-sdk
claude plugin install everyrow@futuresearch

See Progress Monitoring for status line setup and hook details.