Skip to main content

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


Download files

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

Source Distribution

petroleum_mcp-0.4.0.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

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

petroleum_mcp-0.4.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

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

Hashes for petroleum_mcp-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a460c2082e34dfa0938fa21d08512ceb2474a3c839da3171f22c9845319b430c
MD5 75d03d2c11e580f73e5cc144f7c0ceb0
BLAKE2b-256 fdadc53149a7a570876d02d4112b9e040b67fa0e2c9528c9af9c3890241d3f82

See more details on using hashes here.

File details

Details for the file petroleum_mcp-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for petroleum_mcp-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c49e36d9014c86dd3019b77cb999914894a15d123e805ad6bb1c2ac7ee02b127
MD5 f234ca27889e7bab47ec6a7d81fdf066
BLAKE2b-256 12ed91731e1c0226a964632fdaf94385fda2007df9b63ef732dfadc6d7c987ca

See more details on using hashes here.

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