Server data from the Official MCP Registry
Local-first MCP server: read LAS well logs and DLIS files from your own disk.
Local-first MCP server: read LAS well logs and DLIS files from your own disk.
petromcp is a well-designed local-first MCP server with strong security principles: default-deny path allowlist, read-only operations, no network access, and comprehensive logging. Code quality is high with proper input validation and error handling. One minor information-level finding regarding broad exception handling in error paths, but this does not meaningfully impact security posture. Supply chain analysis found 5 known vulnerabilities in dependencies (1 critical, 3 high severity). Package verification found 1 issue.
5 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-ameyxd-petromcp": {
"args": [
"petroleum-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
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.
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.
Not a posture. Four things you can verify in the source:
openWorldHint: false and readOnlyHint: true, so your host
can verify that claim rather than take it.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.
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
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.
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.
| 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.
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.
MIT.
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.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.