petromcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@petromcpWhat's wrong with this well log? /path/to/well.las"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: FilePilot AI
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: falseandreadOnlyHint: 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
downsampledandoriginal_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-claudeConfigure
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/wellsOr, 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:
QC a well log — finds a planted density gap, a washout, and a gamma ray spike
Compare two wells — depth overlap, a missing curve, and a unit mismatch that is invisible in one file
Read a DLIS file — logical files, frames, and what happens when a channel name is ambiguous
Every value in those documents is generated by calling the tools; CI fails if they drift.
Tools
Tool | What it does |
| Header-level summary of a LAS file |
| Per-curve min, max, mean, stddev, gap percentage |
| Depths and values for one curve, with sampling cap |
| Common curves, depth overlap, unit consistency, flags |
| ft<->m, psi<->kPa, psi<->bar, bbl<->m3, degF<->degC, mD<->m2 |
| Every convertible pair with its physical quantity |
| DLIS structure: logical files, frames, index types |
| Every DLIS channel with its frame, units, and length |
| One DLIS channel's values, with a sampling cap |
| 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.
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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server that gives LLMs access to petroleum engineering data and tools. Parse well logs, query production data, fit decline curves, calculate EUR, and run nodal analysis -- all through natural language with any MCP-compatible AI assistant.Last updated831MIT
- Alicense-qualityAmaintenanceLocal-first MCP server for safely searching, reading, summarizing, tagging, deduplicating, and organizing local files with scoped access, read-only defaults, and dry-run plans.Last updated13MIT
- FlicenseAqualityCmaintenanceA local-first MCP server providing secure workspace file operations, offline full-text search, and web search/fetch capabilities without requiring API keys.Last updated10
- Alicense-qualityAmaintenanceA full-featured secure MCP server for local file system operations, with built-in image processing, OCR and media tools. Fully compliant with the official Model Context Protocol specification, offering standardized request/response schemas, large-file streaming I/O, multi-transport remote deployment, and comprehensive text search & replace functionality for LLM agent integration.Last updatedApache 2.0
Related MCP Connectors
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
Read-only DERO blockchain MCP: 33 tools (12 composites) incl. TELA discovery + bundled docs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ameyxd/petromcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server