Use gridprims from your AI agent
The same tools run locally through an MCP server in a clone of the repository. It never touches the network and reads only the folders you allow.
Clone the repository, then add the server to your client. Replace /path/to/gridprims with your clone and /path/to/your/meter-files with a folder of meter files it may read.
Claude Code
terminal
claude mcp add gridprims -- node --permission --allow-fs-read=/path/to/gridprims --allow-fs-read=/path/to/your/meter-files /path/to/gridprims/mcp/server.mjs --allow-dir /path/to/your/meter-files
Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"gridprims": {
"command": "node",
"args": [
"--permission",
"--allow-fs-read=/path/to/gridprims",
"--allow-fs-read=/path/to/your/meter-files",
"/path/to/gridprims/mcp/server.mjs",
"--allow-dir",
"/path/to/your/meter-files"
]
}
}
}VS Code
.vscode/mcp.json
{
"servers": {
"gridprims": {
"type": "stdio",
"command": "node",
"args": [
"--permission",
"--allow-fs-read=/path/to/gridprims",
"--allow-fs-read=/path/to/your/meter-files",
"/path/to/gridprims/mcp/server.mjs",
"--allow-dir",
"/path/to/your/meter-files"
]
}
}
}Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"gridprims": {
"command": "node",
"args": [
"--permission",
"--allow-fs-read=/path/to/gridprims",
"--allow-fs-read=/path/to/your/meter-files",
"/path/to/gridprims/mcp/server.mjs",
"--allow-dir",
"/path/to/your/meter-files"
]
}
}
}
It offers six tools: search, describe, run, analyze a file, query public data, and prepare a problem report for you to send.
The data addresses
Every dataset version is a folder of plain files at a permanent address. There is no key and no account.
| Address | What it holds |
|---|---|
| /data/<dataset>/current.json | The current version id, such as {"dataset": "eia-861", "version": "2026-10"}. |
| /data/<dataset>/<version>/manifest.json | The version's manifest: publisher, terms, credit, as-of and retrieved dates, the raw files with their SHA-256, and each table's columns, license, credits, changelog, shards, and download. |
| /data/<dataset>/<version>/<table>.csv.gz | A table as gzip CSV: ISO dates, a point for decimals, and empty cells for missing values. |
| /data/<dataset>/<version>/<table>/<state>.bin | A table's rows for one state in the column shard format documented in docs/formats/column-shard.md. |
| /data/<dataset>/latest/<file> | Redirects to the same file in the current version. Cite the permanent address, which never changes. |
Data files are served to any origin without credentials, so a notebook or another website can read them directly.
const m = await (await fetch('https://gridprims.com/data/eia-861/latest/manifest.json')).json();
console.log(m.version, m.tables.map((t) => t.name));
The shard format and the manifest fields are documented in the repository, with a script that rebuilds every version from the publishers' own files.