返回市场
Python资源工具箱-MCP

Python资源工具箱-MCP

作者:gabrielserrao12 星标更新:2025-11-22

项目介绍

技术文档摘要

<div align="center">

pyResToolbox MCP Server

将油藏工程计算带入AI

通过行业标准的石油工程计算增强您的AI助手

License: GPL v3 Python 3.10+ Tests FastMCP Production Ready

Model Context Protocol Built with pyResToolbox Buy Me A Coffee

快速开始功能示例查询文档贡献


47个生产就绪工具 | 油田单位 | 零配置

PVT分析井性能模拟支持盐水性质非均质性分析


</div>

一个生产就绪的模型上下文协议(MCP)服务器,使像Claude这样的AI代理能够访问全面的油藏工程库pyResToolbox。现在Claude可以通过自然对话执行复杂的PVT计算、井性能分析和油藏模拟任务。

pyResToolbox MCP Demo


<div align="center">

☕ 支持这个项目

如果您觉得这个项目有用,请考虑给我买杯咖啡!您的支持有助于维护和改进这个开源工具。

<a href="https://buymeacoffee.com/gabrielsero" target="_blank"> <img src="https://gips3.baidu.com/it/u=2811292181,1350118012&fm=3081&app=3081&f=PNG?w=545&h=153" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" > </a> </div>

这是什么?

这个MCP服务器弥合了AI助手与石油工程工作流程之间的差距。您无需手动计算油藏属性或编写复杂的脚本,只需简单地询问Claude:

"使用Valko-McCain相关性计算API 35°原油在180°F下,溶液GOR为800 scf/stb,气体密度为0.75时的泡点压力"

"生成我的井的IPR曲线,Pi=4000 psia,Pb=3500 psia,API 38°,175°F,有效厚度75英尺,渗透率150 mD"

"创建一个用于模拟的压力范围从500到5000 psia的黑油表"

Claude将使用行业标准的相关性执行计算,并返回准确、格式化的结果。

构建于

  • pyResToolbox 由Mark Burgoyne创建 - 全面的Python库,用于油藏工程计算
  • FastMCP - 用于构建MCP服务器的现代Python框架
  • 模型上下文协议 由Anthropic创建 - AI应用程序集成的标准

主要特点

  • 47个生产就绪工具 - 所有工具均已测试并验证
  • 行业标准相关性 - Standing, Valko-McCain, Velarde, DAK, Beggs-Robinson, Corey, LET等
  • 油田单位 - 使用熟悉的油田单位(psia, °F, STB/day, MSCF/day)
  • 数组支持 - 同时计算多个压力下的属性
  • 零配置 - 与Claude Desktop开箱即用
  • GPL-3.0许可 - 免费且开源

快速开始

安装

前提条件: Python 3.10+(推荐但可选的UV包管理器)

# 1. 克隆仓库
git clone https://github.com/gabrielserrao/pyrestoolbox-mcp.git
cd pyrestoolbox-mcp

# 2. 安装UV(可选但比pip快10-100倍)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 3. 设置和测试
make uv-install    # 创建虚拟环境并安装依赖项
make uv-test       # 验证所有47个工具是否正确工作

连接到Claude Desktop

将以下内容添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

重要提示: 对于uv和项目目录,请使用绝对路径。GUI应用程序如Claude Desktop不会继承终端的PATH。

找到您的UV路径:

# macOS/Linux
which uv

# Windows (PowerShell)
Get-Command uv | Select-Object -ExpandProperty Source

配置:

{
  "mcpServers": {
    "pyrestoolbox": {
      "command": "/absolute/path/to/uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/pyrestoolbox-mcp",
        "fastmcp",
        "run",
        "server.py"
      ]
    }
  }
}

常见的UV路径:

  • macOS/Linux: /Users/username/.local/bin/uv/home/username/.local/bin/uv
  • Windows: C:\Users\username\.cargo\bin\uv.exe

示例(macOS):

{
  "mcpServers": {
    "pyrestoolbox": {
      "command": "/Users/john/.local/bin/uv",
      "args": [
        "run",
        "--directory",
        "/Users/john/projects/pyrestoolbox-mcp",
        "fastmcp",
        "run",
        "server.py"
      ]
    }
  }
}

示例(Linux):

{
  "mcpServers": {
    "pyrestoolbox": {
      "command": "/home/john/.local/bin/uv",
      "args": [
        "run",
        "--directory",
        "/home/john/projects/pyrestoolbox-mcp",
        "fastmcp",
        "run",
        "server.py"
      ]
    }
  }
}

示例(Windows):

{
  "mcpServers": {
    "pyrestoolbox": {
      "command": "C:\\Users\\john\\.cargo\\bin\\uv.exe",
      "args": [
        "run",
        "--directory",
        "C:\\Users\\john\\projects\\pyrestoolbox-mcp",
        "fastmcp",
        "run",
        "server.py"
      ]
    }
  }
}

完全重启Claude Desktop(退出并重新打开,不仅仅是关闭窗口),然后就可以开始了!

您的第一个查询

打开Claude Desktop并尝试:

"API 35°原油在180°F下,溶液GOR为800 scf/stb,气体密度为0.75时的泡点压力是多少?"

Claude将使用oil_bubble_point工具并返回如下结果:

泡点压力: 3,456.7 psia
方法: Valko-McCain (VALMC)
输入: API=35°, T=180°F, Rs=800 scf/stb, SG_gas=0.75

您可以做什么?

原油PVT分析

  • 计算泡点压力(Standing, Valko-McCain, Velarde)
  • 溶解气油比,地层体积系数,粘度,密度,压缩性
  • 为模拟器生成全面的黑油表

天然气PVT分析

  • Z因子计算(DAK, Hall-Yarborough, WYW, Burrows)
  • 含杂质(CO₂, H₂S, N₂, H₂)的临界性质
  • 天然气粘度,密度,压缩性,伪压力
  • 地层体积系数

井性能及IPR

  • 油气产量(径向和线性流)
  • 生成垂直和水平井的IPR曲线
  • 泡点压力以下的Vogel IPR
  • 渗透率、皮肤、油藏压力的敏感性分析

油藏模拟支持

  • 相对渗透率表(SWOF, SGOF, SGWFN)
  • Corey和LET相关性
  • Van Everdingen & Hurst含水层影响函数(AQUTAB)
  • Rachford-Rice闪蒸计算相行为

高级计算

  • 盐水性质(甲烷和CO₂饱和)
  • CO₂封存研究
  • 油藏非均质性分析(洛伦兹系数,贝塔参数)
  • 层渗透率分布
  • 组件库(100多种烃类的临界性质)

配置及帮助

  • 查询可用的计算方法及相关性
  • 访问单位系统文档
  • 获取物理常数
  • 全面的使用指南

示例查询给Claude

基本PVT计算

"使用DAK方法计算SG为0.7的气体在3500 psia和180°F下的Z因子"

"38° API原油在3000 psia和175°F下,Rs=600时的地层体积系数是多少?"

"比较使用Standing, Valko-McCain和Velarde方法计算35° API原油的泡点压力"

井性能分析

"生成井的IPR曲线:Pi=4000 psia, Pb=3500 psia, API 38, T=175°F,
 h=75英尺, k=150 mD, 皮肤=-2, re=1500英尺, rw=0.5英尺"

"计算相同井在2000 psia流动压力下的油产量"

"展示渗透率如何影响产量 - 测试50, 100, 150, 200, 250 mD"

模拟准备

"使用Corey相关性生成包含25行的相对渗透率表,kromax=1.0, krwmax=0.25, swc=0.15, sorw=0.15, no=2.5, nw=1.5"

"为无量纲半径10.0生成含水层影响函数"

"生成从500到5000 psia的38° API原油在175°F下的黑油表"

油藏非均质性

"将洛伦兹系数0.5转换为Dykstra-Parsons贝塔值"

"为洛伦兹系数0.6生成分层渗透率分布,10层,平均渗透率100 mD"

多步骤工作流程

"执行完整的油藏分析:计算泡点,生成PVT表,
创建IPR曲线,并分析38° API原油在175°F下的井性能,初始压力4000 psia"

"设计井完成:计算最优流动压力,生成IPR,
并比较不同的皮肤因素"

"评估天然气藏:计算临界性质,生成IPR,
并比较不同的Z因子方法"

高级查询

全面的PVT工作流程

"为API 38原油在175°F下,气体密度0.68
和溶解气油比750 scf/stb生成完整的PVT表。包括压力从500到4000 psia,
显示Rs, Bo, 粘度和密度"

"比较使用Standing, Valko-McCain和Velarde
相关性计算API 35原油在180°F下,溶解气油比800 scf/stb的泡点压力"

"计算API 38原油在175°F下多个压力下的PVT属性:1000, 2000, 3000, 和4000 psia"

天然气分析

"计算含有2% CO₂, 1% H₂S和3% N₂的特定重力0.7的气体的临界性质(Tc和Pc)"

"比较使用DAK, HY和WYW方法在3500 psia和180°F下的Z因子"

"计算SG为0.7的气体在1000到3500 psia范围内的伪压力"

井性能及IPR

"生成一个油井的IPR曲线,油藏压力4000 psia,
泡点3500 psia,API 38原油在175°F。井的有效厚度75英尺,
渗透率150 mD,皮肤-2,排水半径1500英尺"

"在2000 psia流动压力下,Pi=4000 psia, Pb=3500 psia, API 35, 180°F, 50英尺有效厚度,100 mD渗透率的井的油产量是多少?"

"生成API 38原油在泡点压力以下的Vogel IPR曲线"

敏感性分析

"油产量如何随渗透率变化?测试50到250 mD的值"

"皮肤因素对产量的影响是什么?比较皮肤值从-5到+10的速率"

"分析有效厚度对产量的影响:测试25,  50, 75, 和100英尺"

"油藏压力耗竭如何影响产量?计算4000, 3500, 3000, 和2500 psia的压力下的速率"

盐水及CO₂封存

"计算3000 psia和175°F下的淡水盐水性质"

"在油藏条件下(3000 psia, 175°F)的盐水盐水(5% NaCl)的性质是什么?"

"计算3000 psia和180°F下,盐度50000 ppm的CO₂-盐水相互溶解度"

"比较在封存条件下有无CO₂饱和的盐水性质"

油藏非均质性

"将洛伦兹系数0.5转换为Dykstra-Parsons贝塔参数"

"从生产日志数据计算洛伦兹系数:流量分数
[0.45, 0.25, 0.15, 0.10, 0.05]和渗透率分数[0.30, 0.25, 0.20, 0.15, 0.10]"

"为洛伦兹系数0.5生成分层渗透率分布,10层,平均渗透率100 mD"

相态行为及闪蒸计算

"求解具有组成[0.5, 0.3, 0.2]
和K值[2.5, 1.8, 0.6]的混合物的Rachford-Rice闪蒸"

"计算三组分系统的汽液平衡"

组件库

"甲烷的临界性质是什么?"

"获取乙烷、丙烷和丁烷的临界温度和压力"

"正庚烷的分子量是多少?"

经济及优化

"什么是最优流动压力以最大化产量?生成IPR
并找到最佳点"

"比较刺激井(皮肤-2)与受损井(皮肤+5)的产量"

"分析油藏压力耗竭对井性能随时间的影响"

比较及基准测试

"比较同种原油的Standing vs Valko-McCain vs Velarde泡点相关性"

"比较DAK vs HY vs WYW Z因子方法及其对气体速率计算的影响"

"比较相同的油藏属性下的径向与线性流几何形状"

教育查询

"解释泡点压力的意义并计算35° API原油的泡点压力"

"溶解气油比和产气比有什么区别?计算两者"

"气体密度如何影响Z因子?给我展示不同密度的计算"

"解释洛伦兹系数并计算异质油藏的洛伦兹系数"

故障排除及验证

"验证我的P