Local-first MCP server for petroleum data. Reads LAS well logs; DLIS, SEG-Y, and pump cards next.
Project description
petromcp
An MCP server that lets Claude read your LAS well log files directly. Local-first. Synthetic data only by default. DLIS, SEG-Y, and pump card support coming next.
What this gives you
LLM hosts cannot read binary or semi-structured petroleum formats. petromcp
wraps the established open-source parsers — lasio today, with dlisio
and segyio queued for the next slices — and exposes them as MCP tools, so
you can have a conversation with your data instead of copy-pasting curve
values into chat.
Privacy first
petromcp runs on your machine. It refuses to read any file outside an explicit allowlist. There is no telemetry, no phone-home, no automatic updates. Read docs/DATA_PRIVACY.md before pointing it at real data.
Install
Requires Python 3.10+ and uv.
Add petromcp to your MCP host's config — no clone, no build:
{
"mcpServers": {
"petromcp": {
"command": "uvx",
"args": ["petroleum-mcp", "serve"]
}
}
}
On macOS that file is
~/Library/Application Support/Claude/claude_desktop_config.json. Restart
the host afterwards. macOS notes and troubleshooting:
docs/INSTALL.md.
To work on petromcp rather than just use it:
git clone https://github.com/ameyxd/petromcp
cd petromcp
make setup
make install-claude
Configure
By default petromcp can read nothing. Tell it which directories are fair game:
uvx petroleum-mcp config init
uvx petroleum-mcp config add-path ~/petroleum/wells
Or, if you want to try it without your own data, generate the synthetic sample from a checkout and allowlist that:
make generate
uv run --no-sync petromcp config add-path "$(pwd)/examples/sample_data"
Restart your MCP host after editing the allowlist — it is read once at startup.
Use
Open a new conversation and ask, in plain language:
What's wrong with this well log? /path/to/well.las
Compare these two wells: /path/to/A.las and /path/to/B.las
Convert 1500 psi to kPa.
Claude picks the right tool, reads the file through petromcp, and answers.
Tools
| Tool | What it does |
|---|---|
read_las_file |
Header-level summary of a LAS file |
summarize_las_curves |
Per-curve min, max, mean, stddev, gap percentage |
read_las_curve |
Depths and values for one curve, with sampling cap |
compare_well_logs |
Common curves, depth overlap, unit consistency, flags |
convert_units |
ft<->m, psi<->kPa, psi<->bar, bbl<->m3, degF<->degC, mD<->m2 |
qc_a_well_log prompt |
Walks Claude through a standard QC pass |
Every tool is read-only and opens no network connection, and declares that in its MCP annotations. Full reference: docs/TOOLS_REFERENCE.md.
DLIS, SEG-Y, and pump card support land in subsequent releases.
Status
v0.4 ships the LAS slice, a comparison tool, a units utility, and config-management CLI subcommands. The remaining formats are tracked in SPEC_petromcp.md. The non-goals list there is real; read it before filing feature requests.
Release history: CHANGELOG.md. Security policy and threat model: SECURITY.md.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file petroleum_mcp-0.4.0.tar.gz.
File metadata
- Download URL: petroleum_mcp-0.4.0.tar.gz
- Upload date:
- Size: 46.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a460c2082e34dfa0938fa21d08512ceb2474a3c839da3171f22c9845319b430c
|
|
| MD5 |
75d03d2c11e580f73e5cc144f7c0ceb0
|
|
| BLAKE2b-256 |
fdadc53149a7a570876d02d4112b9e040b67fa0e2c9528c9af9c3890241d3f82
|
File details
Details for the file petroleum_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: petroleum_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c49e36d9014c86dd3019b77cb999914894a15d123e805ad6bb1c2ac7ee02b127
|
|
| MD5 |
f234ca27889e7bab47ec6a7d81fdf066
|
|
| BLAKE2b-256 |
12ed91731e1c0226a964632fdaf94385fda2007df9b63ef732dfadc6d7c987ca
|