bayes msp
A Model Calling Protocol server that enables LLMs to perform rigorous Bayesian analysis and probabilistic reasoning, including inference, model comparison, and predictive modeling with uncertainty quantification.
A Model Calling Protocol server that enables LLMs to perform rigorous Bayesian analysis and probabilistic reasoning, including inference, model comparison, and predictive modeling with uncertainty quantification.
A Model Calling Protocol (MCP) server for Bayesian reasoning, inference, and belief updating. This tool enables LLMs to perform rigorous Bayesian analysis and probabilistic reasoning.
Clone the repository and install dependencies:
git clone https://github.com/wrenchchatrepo/bayesian-mcp.git
cd bayesian-mcp
pip install -e .
# Run with default settings
python bayesian_mcp.py
# Specify host and port
python bayesian_mcp.py --host 0.0.0.0 --port 8080
# Set log level
python bayesian_mcp.py --log-level debug
The server will start and listen for MCP requests on the specified host and port.
The Bayesian MCP server exposes several functions through its API:
Create a new Bayesian model with specified variables.
# MCP Request
{
"function_name": "create_model",
"parameters": {
"model_name": "my_model",
"variables": {
"theta": {
"distribution": "normal",
"params": {"mu": 0, "sigma": 1}
},
"likelihood": {
"distribution": "normal",
"params": {"mu": "theta", "sigma": 0.5},
"observed": [0.1, 0.2, 0.3, 0.4]
}
}
}
}
Update model beliefs with new evidence.
# MCP Request
{
"function_name": "update_beliefs",
"parameters": {
"model_name": "my_model",
"evidence": {
"data": [0.1, 0.2, 0.3, 0.4]
},
"sample_kwargs": {
"draws": 1000,
"tune": 1000,
"chains": 2
}
}
}
Generate predictions using the posterior distribution.
# MCP Request
{
"function_name": "predict",
"parameters": {
"model_name": "my_model",
"variables": ["theta"],
"conditions": {
"x": [1.0, 2.0, 3.0]
}
}
}
Compare multiple models using information criteria.
# MCP Request
{
"function_name": "compare_models",
"parameters": {
"model_names": ["model_1", "model_2"],
"metric": "waic"
}
}
Generate visualizations of model posterior distributions.
# MCP Request
{
"function_name": "create_visualization",
"parameters": {
"model_name": "my_model",
"plot_type": "trace",
"variables": ["theta"]
}
}
The examples/
directory contains several examples demonstrating how to use the Bayesian MCP server:
A simple linear regression example to demonstrate parameter estimation:
python examples/linear_regression.py
An example of Bayesian A/B testing for conversion rates:
python examples/ab_test.py
The Bayesian engine supports the following distributions:
normal
: Normal (Gaussian) distributionlognormal
: Log-normal distributionbeta
: Beta distributiongamma
: Gamma distributionexponential
: Exponential distributionuniform
: Uniform distributionbernoulli
: Bernoulli distributionbinomial
: Binomial distributionpoisson
: Poisson distributiondeterministic
: Deterministic transformationThis server implements the Model Calling Protocol, making it compatible with a wide range of LLMs and frameworks. To use it with your LLM:
import requests
response = requests.post("http://localhost:8000/mcp", json={
"function_name": "create_model",
"parameters": {
"model_name": "example_model",
"variables": {...}
}
})
result = response.json()
MIT
Based on concepts and code from the Wrench AI framework.