Skip to main content
Glama

pyResToolbox MCP Server

brine_models.py2.39 kB
"""Pydantic models for Brine calculations.""" from pydantic import BaseModel, Field, field_validator, ConfigDict from typing import Literal, Union, List class BrinePropertiesRequest(BaseModel): """Request model for brine properties calculation.""" model_config = ConfigDict( json_schema_extra={ "example": { "p": 3000.0, "degf": 150.0, "wt": 10.0, "ch4": 0.0, "co2": 0.02, } } ) p: Union[float, List[float]] = Field( ..., description="Pressure (psia) - scalar or array" ) degf: Union[float, List[float]] = Field( ..., description="Temperature (degrees Fahrenheit) - scalar or array" ) wt: float = Field( ..., ge=0, le=30, description="Brine salinity (weight percent NaCl)" ) ch4: float = Field( 0.0, ge=0, description="Dissolved CH4 mole fraction (dimensionless)" ) co2: float = Field( 0.0, ge=0, description="Dissolved CO2 mole fraction (dimensionless)" ) @field_validator("p", "degf") @classmethod def validate_arrays(cls, v): """Validate array inputs.""" if isinstance(v, list): if not all(val > 0 for val in v): raise ValueError("All values must be positive") else: if v <= 0: raise ValueError("Value must be positive") return v class CO2BrineMixtureRequest(BaseModel): """Request model for CO2-brine mutual solubility calculation.""" model_config = ConfigDict( json_schema_extra={ "example": { "pres": 3000.0, "temp": 150.0, "ppm": 50000.0, "metric": False, "cw_sat": 0.0, } } ) pres: float = Field(..., gt=0, description="Pressure (psia if metric=False, bar if metric=True)") temp: float = Field(..., gt=0, description="Temperature (degF if metric=False, degC if metric=True)") ppm: float = Field(..., ge=0, description="Brine salinity (ppm)") metric: bool = Field(False, description="Use metric units (True) or field units (False)") cw_sat: float = Field( 0.0, ge=0, description="Cw at saturation pressure (1/psi or 1/bar) - 0 for auto-calculate" )

Implementation Reference

Latest Blog Posts

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/gabrielserrao/pyrestoolbox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server