Petromcp

Created By
ameyxda day ago
petromcp is a small MCP server that lets Claude (or Cursor, or Codex CLI, or anything else that speaks MCP) read .las well log files directly. If you have ever tried asking an LLM about a well log you know the workflow today is to copy-paste curve values into the chat. Petroleum file formats are binary or semi-structured and the hosts can't open them. The current release wraps lasio (the established open-source LAS parser) and exposes five tools: read_las_file, summarize_las_curves, read_las_curve, compare_well_logs, and convert_units. There is a strict path allowlist by default, the server makes zero outbound network calls, and the only data that leaves your machine is whatever the host application would have sent to its language model anyway. DLIS, SEG-Y headers, and pump card data are queued for the next releases. Repo, install instructions, and tool reference are in the README. Feedback on the QC heuristics from anyone with a petrophysics background would be particularly welcome. They are defensible defaults but I would rather have them shaken out than discover problems after a launch demo. If you have the repo cloned, the server config is: { "mcpServers": { "petromcp": { "command": "uv", "args": [ "run", "--no-sync", "--project", "/absolute/path/to/petromcp", "petromcp", "serve" ] } } } Else, you can use { "mcpServers": { "petromcp": { "command": "uvx", "args": [ "--from", "git+https://github.com/ameyxd/petromcp", "petromcp", "serve" ] } } }
Overview

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 for v0.2, 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+, uv, and Claude Desktop.

git clone https://github.com/ameyxd/petromcp
cd petromcp
make setup
make install-claude

Restart Claude Desktop. The petromcp tools and the qc_a_well_log prompt should appear in a new conversation. macOS notes and troubleshooting: docs/INSTALL.md.

Configure

By default petromcp can read nothing. Tell it which directories are fair game:

uv run --no-sync petromcp config init
uv run --no-sync petromcp config add-path ~/petroleum/wells

Or, if you want to try it without your own data, generate the synthetic sample and allowlist that:

make generate
uv run --no-sync petromcp config add-path "$(pwd)/examples/sample_data"

Restart Claude Desktop after editing the allowlist.

Use

Open a new conversation in Claude Desktop 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 (LAS, v0.2)

ToolWhat it does
read_las_fileHeader-level summary of a LAS file
summarize_las_curvesPer-curve min, max, mean, stddev, gap percentage
read_las_curveDepths and values for one curve, with sampling cap
compare_well_logsCommon curves, depth overlap, unit consistency, flags
convert_unitsft<->m, psi<->kPa, psi<->bar, bbl<->m3, degF<->degC, mD<->m2
qc_a_well_log promptWalks Claude through a standard QC pass

Full reference: docs/TOOLS_REFERENCE.md.

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

Status

v0.2 ships the LAS slice plus 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.

License

MIT.

Server Config

{
  "mcpServers": {
    "petromcp": {
      "command": "uv",
      "args": [
        "run",
        "--no-sync",
        "--project",
        "/absolute/path/to/petromcp",
        "petromcp",
        "serve"
      ]
    }
  }
}
Project Info
Created At
a day ago
Updated At
21 hours ago
Author Name
ameyxd
Star
-
Language
-
License
-
Category
Tags

Recommend Servers

View All
Context Repo Mcp Server
@ContextRepo

*One workspace for your prompts, documents, and collections — accessible from every AI client you use.* Context Repo is an AI context management platform for capturing, organizing, versioning, and searching the knowledge artifacts you use with AI tools. This MCP server exposes **28 tools** that give Claude, Cursor, ChatGPT, Factory, Windsurf, Codex, Claude Code, and any other MCP-compatible client direct read-and-write access to your personal workspace — no copy-paste, no context loss between conversations. ## Features - **Prompts** — Full CRUD with version history, rollback, and semantic search across your prompt library - **Documents** — Markdown and plain-text storage with automatic chunking and 1536-dim vector embeddings - **Collections** — Named folders that group prompts and documents into project-scoped contexts - **Catalog Search** — `find_items` returns ranked results across prompts, documents, and collections in a single call (semantic by default, literal fallback) - **Deep Search** — Hierarchical document navigation: search ranked passages, then expand up to parents, down to children, or sideways to siblings for token-efficient exploration of long content - **Version History** — Every content edit creates a new version; restore any prompt or document to any previous state - **Real-time Sync** — Changes propagate instantly via Convex live queries; AI clients always see the latest content - **ChatGPT Apps Ready** — `search` and `fetch` are OpenAI Apps SDK Company-Knowledge eligible; `find_items` carries an optional `ui://` resource for inline result rendering ## Tools (28 total) | Category | Tools | |---|---| | User Info (1) | `get_user_info` | | Prompts (7) | `search_prompts` · `read_prompt` · `create_prompt` · `update_prompt` · `delete_prompt` · `get_prompt_versions` · `restore_prompt_version` | | Documents (7) | `list_documents` · `get_document` · `create_document` · `update_document` · `delete_document` · `get_document_versions` · `restore_document_version` | | Collections (7) | `list_collections` · `get_collection` · `create_collection` · `update_collection` · `delete_collection` · `add_to_collection` · `remove_from_collection` | | Catalog (1) | `find_items` | | Deep Search (3) | `deep_search` · `deep_read` · `deep_expand` | | ChatGPT Apps (2) | `search` · `fetch` | ## Authentication Two ways to connect: 1. **API Key** — Generate a scoped `gm_*` key at [contextrepo.com/dashboard/settings](https://contextrepo.com/dashboard/settings). Per-key permissions: `prompts.read`, `prompts.write`, `documents.read`, `documents.write`, `documents.scrape`. Sent as `Authorization: Bearer gm_...`. 2. **Clerk OAuth 2.0** — RFC 9728 protected-resource metadata at `/.well-known/oauth-protected-resource/mcp`, RFC 8414 authorization-server metadata at `/.well-known/oauth-authorization-server`. Standard OAuth flow for clients that support it. ## Use Cases - **Prompt library that follows you.** Stop copy-pasting prompts between Claude, Cursor, and ChatGPT. Maintain one canonical version, retrieve it from any client. - **Personal knowledge base.** Save research articles, documentation, and AI conversations with the [Context Repo Chrome Extension](https://contextrepo.com/chrome-extension), then pull them in as grounded context inside your AI tools. - **Project-scoped collections.** Separate workspaces per client, repo, or topic so an AI assistant only sees what's relevant to the task at hand. - **Version-controlled prompts.** Track how prompts evolve, A/B test variants, and roll back when an "improvement" turns out worse. - **Long-document exploration.** Deep Search navigates book-length documents passage by passage instead of dumping them into context — every chunk carries parent/child/sibling links the agent can walk. ## Compatibility Streamable HTTP transport, MCP spec ≥ 2025-03-26. Verified with Claude Desktop, Cursor, ChatGPT (via the OpenAI Apps SDK), Factory, Windsurf, Codex, Claude Code, VS Code (Continue), and Amp. Any MCP-compatible client should work. ## Resources - Website: [contextrepo.com](https://contextrepo.com) - Documentation: [contextrepo.com/docs](https://contextrepo.com/docs) - Pricing & free trial: [contextrepo.com/pricing](https://contextrepo.com/pricing) - Agent discovery: [contextrepo.com/llms.txt](https://contextrepo.com/llms.txt) - API reference: [contextrepo.com/openapi.json](https://contextrepo.com/openapi.json)

a day ago
Nordic Data

44 minutes ago
Tavily Mcp
@tavily-ai

JavaScript
a year ago
Datagrout

a day ago
Pipeworx

a day ago