mcpField
P
Petromcp

Petromcp

本地服务
github.com开发工具313 周前更新

关于 Petromcp

Petromcp 是用于读取 LAS 和 DLIS 石油测井数据的本地优先 MCP 服务,面向无法将文件上传到云服务的团队。它以路径白名单限制文件访问,并提供只读工具和有上限的曲线输出。

主要功能

  1. 01读取 LAS 和 DLIS 文件
  2. 02汇总曲线并采样数据
  3. 03比较测井数据
  4. 04转换支持的单位
  5. 05限制访问已允许的路径
  6. 06记录工具调用并限制输出

适用场景

  1. 01检查测井数据质量
  2. 02比较多口井的曲线和深度范围
  3. 03查看 DLIS 帧与通道
  4. 04转换石油测量单位

MCP 相关

向 MCP 客户端提供读取石油数据文件的只读工具和 QC 提示词。工具声明不访问网络,且文件访问仅限明确允许的目录。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"petromcp": {
"command": "uvx",
"args": [
"petroleum-mcp"
]
}
}
}
启动命令uvx petroleum-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipetroleum-mcp0.8.1

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是

详细介绍

petromcp

使用 Claude 读取测井数据,全程不让数据离开你的设备。

petromcp 是一个用于石油数据格式的 MCP 服务,专为文件依法不得上传到云服务的团队打造。没有遥测、没有回传、没有自动更新,并采用默认拒绝的路径允许列表:未明确授权的文件一律拒绝打开。目前支持 LAS;DLIS、SEG-Y 和泵卡即将支持。

如果你可以把数据上传到某处,可选方案比这多。如果不能,这正是为你准备的。

它能为你做什么

大模型宿主无法读取二进制或半结构化石油数据格式。petromcp 封装了成熟的开源解析器——目前使用 lasio 和 dlisio,segyio 已列入后续计划——并将其作为 MCP 工具提供,让你可以直接与数据对话,而不必把曲线值复制粘贴到聊天中。

这里的“本地优先”具体意味着什么

不只是表态。以下四点都可以在源代码中验证:

  • 默认拒绝。 全新安装时无法读取任何内容。访问权限按目录授予,每个工具都会通过同一个验证器处理路径,并在检查前解析符号链接,因此允许目录中的链接无法指向目录之外。没有任何环境变量可以扩大允许列表,也没有任何工具可以在运行时更改它。
  • 明确声明不联网。 petromcp 不会发起任何出站连接。全部五个工具都设置了 openWorldHint: false 和 readOnlyHint: true,宿主可以自行验证这一点,而不必只听信声明。
  • 审计记录。 每次工具调用都会记录时间戳、工具名称和解析后的路径。
  • 限制输出大小。 曲线读取有数量上限,并会报告 downsampled 和 original_count,因此不会让包含 20,000 个点的测井数据悄无声息地塞满上下文窗口。

威胁模型以及哪些情况不算漏洞,见 SECURITY.md。将其用于真实数据前,请先阅读 docs/DATA_PRIVACY.md——该文档具有权威性;如果代码与文档矛盾,问题就在代码。

安装

需要 Python 3.10+ 和 uv。

将 petromcp 添加到 MCP 宿主的配置中——无需克隆或构建:

{
  "mcpServers": {
    "petromcp": {
      "command": "uvx",
      "args": ["petroleum-mcp", "serve"]
    }
  }
}

在 macOS 上,该文件位于 ~/Library/Application Support/Claude/claude_desktop_config.json。之后重启宿主。macOS 说明和故障排除: docs/INSTALL.md。

如需参与 petromcp 开发,而不只是使用它:

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

配置

默认情况下,petromcp 无法读取任何内容。指定允许访问的目录:

uvx petroleum-mcp config init
uvx petroleum-mcp config add-path ~/petroleum/wells

或者,如果你想先试用而不使用自己的数据,可以从代码检出版本生成合成样例,并将其加入允许列表:

make generate
uvx petroleum-mcp config add-path "$(pwd)/examples/sample_data"

编辑允许列表后,请重启 MCP 宿主——它只会在启动时读取一次。

使用

开启新对话,然后用自然语言提问:

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 会选择合适的工具,通过 petromcp 读取文件并给出回答。

实用示例,展示真实工具输出而非文字描述:

这些文档中的每个值都由调用工具生成;如果内容发生偏差,CI 就会失败。

工具

工具功能说明
read_las_fileLAS 文件的头部摘要
summarize_las_curves每条曲线的最小值、最大值、平均值、标准差、间隙百分比
read_las_curve一条曲线的深度和值,并设有采样上限
compare_well_logs共有曲线、深度重叠、单位一致性、标记
convert_unitsft<->m、psi<->kPa、psi<->bar、bbl<->m3、degF<->degC、mD<->m2
list_supported_units所有可转换的单位对及其物理量
read_dlis_fileDLIS 结构:逻辑文件、帧、索引类型
list_dlis_channels所有 DLIS 通道及其帧、单位和长度
read_dlis_channel一条 DLIS 通道的值,并设有采样上限
qc_a_well_log prompt引导 Claude 完成标准质检流程

所有工具均为只读,不会建立网络连接,并在其 MCP 注释中声明了这一点。完整参考: docs/TOOLS_REFERENCE.md。

DLIS 文件包含多次测井作业,每次作业又包含多个帧,因此通道名称仅在单个帧内唯一。read_dlis_channel 遇到有歧义的名称时会拒绝执行,并列出候选项,而不会猜测,因为这些候选项的值各不相同。

SEG-Y 和泵卡支持将在后续版本中推出。

状态

v0.7 提供了 LAS 和 DLIS 功能、比较工具、单位实用工具以及配置管理 CLI 子命令。其余格式列于 SPEC_petromcp.md 中。该文档中的非目标列表是认真的;提交功能请求前请先阅读。

发布历史:CHANGELOG.md。安全策略和威胁模型:SECURITY.md。

许可证

MIT。

mcp-name: io.github.ameyxd/petromcp


由 Amey Ambade 构建。我撰写有关 AI 系统的文章,聚焦数据无法离开企业环境的行业,见 writing.heyamey.com。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。