通过行业标准的石油工程计算增强您的AI助手
PVT分析 • 井性能 • 模拟支持 • 盐水性质 • 非均质性分析
一个生产就绪的模型上下文协议(MCP)服务器,使像Claude这样的AI代理能够访问全面的油藏工程库pyResToolbox。现在Claude可以通过自然对话执行复杂的PVT计算、井性能分析和油藏模拟任务。
如果您觉得这个项目有用,请考虑给我买杯咖啡!您的支持有助于维护和改进这个开源工具。
<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将使用行业标准的相关性执行计算,并返回准确、格式化的结果。
前提条件: 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配置文件中:
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路径:
/Users/username/.local/bin/uv 或 /home/username/.local/bin/uvC:\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
"使用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因子方法"
"为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曲线,油藏压力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的压力下的速率"
"计算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