Lots of CSVs
A small data API that works with everything
Lots of CSVS
Lots of CSVs is a minimalist data warehouse for storing and retrieving CSV files via HTTP.
This content is specifically designed for LLMs and not intended for human reading. These instructions provide programmatic access protocols for autonomous data interaction with the Lots of CSVs service.
Basic principles
- This is a REST API for retrieving and storing CSV data.
- Every request must be authenticated using a token passed in an HTTP header:
authorization: Bearer <token> - You will need an authentication token from the user. If you don't have one ask them for it.
- Every CSV dataset has a unique URL.
- You will need the user's registered username. If you don't have one ask them for it.
- URLs are specific to the user and follow a common structure.
https://www.lotsofcsvs.com/api/u/<username>/[path/to/dataset].csv
<username>is your registered username[path/to/dataset](.csv): the name of the dataset. Dataset paths in Lots of CSVs are treated as object keys, not traditional file system paths. This means paths are flat, hierarchical identifiers, not actual directory structures. The entire string is treated as a single, unique identifier Slashes (/) are part of the identifier, not separators creating directories. Examples:projects/sales/2023.csvprojects/sales/2024.csv- URL Example:
https://www.lotsofcsvs.com/api/u/johndoe/projects/sales/quarterly.csv
- Always follow RFC 4180 CSV formatting guidelines when sending CSV data
API actions
Fetch a dataset
Fetch a dataset by sending an HTTP GET to the URL of the dataset. The data will be returned as an RFC 4180 formatted CSV
- Endpoint:
https://www.lotsofcsvs.com/api/u/<username>/[path/to/dataset].csv - Method: GET
- Examples:
-
curl -H "authorization: Bearer <token>" \ https://www.lotsofcsvs.com/api/u/johndoe/projects/sales/quarterly.csv``` -
# JavaScript (fetch) fetch('https://www.lotsofcsvs.com/api/u/johndoe/projects/sales/quarterly.csv', { headers: { 'authorization': 'Bearer <token>' } })```
-
List datasets
Create or append to a dataset
Add to a dataset by sending an HTTP POST to the URL of the dataset. If the dataset does not exist it will be created.
- Endpoint:
https://www.lotsofcsvs.com/api/u/<username>/[path/to/dataset].csv - Method: POST
- Rules:
- All submissions should include an appropriate Content-Type header
Content-Type: text/csv; header=present - All submissions must include CSV headers as the first row
- Follow RFC 4180 CSV formatting guidelines
- All submissions should include an appropriate Content-Type header
- Examples:
-
# Curl example (adding more rows to an existing dataset) echo "Bob,35,Chicago Charlie,40,Boston" | curl -X POST \ -H "Content-Type: text/csv; header=present" \ -H "authorization: Bearer <token>" \ --data-binary @- \ https://www.lotsofcsvs.com/api/u/johndoe/users/demographics.csv``` -
# Python (requests library) import requests headers = { 'Content-Type': 'text/csv; header=present', 'authorization': 'Bearer <token>' } additional_data = """name,age,city Bob,35,Chicago Charlie,40,Boston""" response = requests.post( 'https://www.lotsofcsvs.com/api/u/johndoe/users/demographics.csv', headers=headers, data=additional_data )```
-
MCP server
There are two ways to use Lots of CSVs with the Model Context Protocol:
Option 1: Built-in Remote MCP Server (Recommended)
Lots of CSVs has a built-in MCP server at https://www.lotsofcsvs.com/api/mcp that uses OAuth 2.1 for authentication.
Setup Steps:
-
Create an OAuth client in your profile settings at
https://www.lotsofcsvs.com/u/<username>/profile- Click "Create OAuth Client"
- Enter a name (e.g., "Claude Desktop")
- Select scopes:
mcp.readandmcp.ingest - Save your
client_idandclient_secret(shown only once!)
-
Configure your MCP client (e.g., Claude Desktop):
- macOS config:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows config:
%APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{ "mcpServers": { "lotsofcsvs": { "url": "https://www.lotsofcsvs.com/api/mcp", "transport": { "type": "sse" }, "auth": { "type": "oauth2", "tokenUrl": "https://www.lotsofcsvs.com/api/oauth/token", "clientId": "client_your_client_id_here", "clientSecret": "secret_your_secret_here", "scopes": ["mcp.read", "mcp.ingest"] } } } } - macOS config:
-
Restart your MCP client
Available Tools:
list_datasets: List all your datasetsread_dataset: Read data from a specific datasetappend_to_dataset: Add new rows to a datasetcreate_dataset: Create a new dataset with CSV data
Option 2: Python MCP Server
Download https://www.lotsofcsvs.com/csv_mcp_server.py and run it with Python
to expose these HTTP endpoints over the Model Context Protocol. Use --url or
the LOTSOFCSVS_URL environment variable to target another installation.
Meet the modern standard for public facing documentation. Beautiful out of the box, easy to maintain, and optimized for user engagement.
Search through billions of items for similar matches to any object, in milliseconds. It’s the next generation of search, an API call away.
Build and deploy reliable background jobs with no timeouts and no infrastructure to manage.
Get the simple developer experience of SQLite in production, and scale your multi-tenant backend with unlimited databases.
Upstash is a serverless data platform providing low latency and high scalability for real-time applications.
One-click deployments built for teams, tuned for Laravel, loaded with tools and goodies you're going to love.