SkillAgentSearch skills...

petromcp

Local-first MCP server for petroleum data. Read LAS well logs from Claude, behind a default-deny path allowlist.

Install / Use

claude mcp add ameyxd -- npx -y github:ameyxd/petromcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

75/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of petromcp

petromcp scores 75/100 on our quality scale, 3714th of 4,586 Development & Engineering skills we index.

Its MCP Server is 6.3 KB long, well organised into 9 sections with 1 code example: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
17/20
Description
12/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 3 months ago, so petromcp is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

petromcp compared with similar skills

All 4 of these similar skills score higher than petromcp; compare them before choosing.

SkillScoreStarsUpdatedFormat
petromcp (this skill)by ameyxd7533mo agoMCP Server
Agent-Reachby Panniantong100100.5k1d agoCLAUDE.md
taste-skillby Leonxlnx100100.2ktodayCLAUDE.md
headroomby headroomlabs-ai10077.0ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10062.2ktodayCLAUDE.md

Frequently asked questions

How do I install petromcp?
Run claude mcp add ameyxd -- npx -y github:ameyxd/petromcp. The install tabs above show the steps for each supported agent.
Which AI agents does petromcp work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is petromcp safe to use?
It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is petromcp still maintained?
The repository was last updated about 3 months ago, so petromcp is actively maintained.

petromcp

Read well logs with Claude without the data ever leaving your machine.

petromcp is an MCP server for petroleum data formats, built for teams whose files legally cannot be uploaded to a cloud service. No telemetry, no phone-home, no automatic updates, and a default-deny path allowlist that refuses to open anything you have not explicitly permitted. LAS today; DLIS, SEG-Y, and pump cards next.

If you can upload your data somewhere, you have more options than this. If you can't, this was written for you.

What this gives you

LLM hosts cannot read binary or semi-structured petroleum formats. petromcp wraps the established open-source parsers — lasio and dlisio today, with segyio queued for a later slice — and exposes them as MCP tools, so you can have a conversation with your data instead of copy-pasting curve values into chat.

What "local-first" means here, concretely

Not a posture. Four things you can verify in the source:

  • Default deny. A fresh install can read nothing. Access is granted per directory, and every tool routes through one validator that resolves symlinks before checking, so a link inside an allowed directory cannot reach outside it. There is no environment variable that widens the allowlist and no tool that changes it at runtime.
  • No network, declared. petromcp opens no outbound connections. All five tools ship openWorldHint: false and readOnlyHint: true, so your host can verify that claim rather than take it.
  • An audit trail. Every tool call is logged with a timestamp, the tool name, and the resolved path.
  • Bounded output. Curve reads are capped and report downsampled and original_count, so a 20,000-point log cannot silently dump into a context window.

The threat model, and what does not count as a vulnerability, are in SECURITY.md. Read docs/DATA_PRIVACY.md before pointing this at real data — it is authoritative, and if the code contradicts it the code is the bug.

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
uvx petroleum-mcp 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.

Worked examples, with real tool output rather than prose:

Every value in those documents is generated by calling the tools; CI fails if they drift.

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 | | list_supported_units | Every convertible pair with its physical quantity | | read_dlis_file | DLIS structure: logical files, frames, index types | | list_dlis_channels | Every DLIS channel with its frame, units, and length | | read_dlis_channel | One DLIS channel's values, with a sampling cap | | 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 files hold several logging runs, each with several frames, so a channel name is unique only within a frame. read_dlis_channel refuses an ambiguous name and lists the candidates rather than guessing, because the values differ.

SEG-Y and pump card support land in subsequent releases.

Status

v0.7 ships the LAS and DLIS slices, 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.

<!-- The official MCP registry verifies that whoever publishes `io.github.ameyxd/petromcp` also controls the PyPI package, by looking for this marker in the package's README. Removing it makes registry publishing fail with a 400; `make release-check` guards it. -->

mcp-name: io.github.ameyxd/petromcp


Built by Amey Ambade. I write about AI systems in industries where the data can't leave the building, at writing.heyamey.com.

Related Skills

View on GitHub
GitHub Stars3
CategoryDevelopment
Updated2mo ago
Forks0

Languages

Python

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low