MCP server for Simba Marketing Mix Modeling — connect AI assistants to your MMM models
Project description
Simba MCP Server
Simba is a Bayesian Marketing Mix Modeling (MMM) platform. This MCP server lets AI assistants interact with your Marketing Mix Models directly — upload data, build models, check results, and run budget optimizations through natural language in Claude, Cursor, or Claude Code.
See Also
- getsimba.ai — the main Simba website (features, pricing, demos)
- getsimba-ai/simba-mmm — platform repo with full documentation on MMM concepts, data requirements, model configuration, optimization, and scenario planning
Installation
pip install simba-mcp
Or run directly without installing:
uvx simba-mcp
Quick Start
Cursor IDE
Add to your Cursor MCP settings (.cursor/mcp.json in the workspace or global settings):
{
"mcpServers": {
"simba": {
"command": "uvx",
"args": ["simba-mcp"],
"env": {
"SIMBA_API_URL": "https://app.getsimba.ai",
"SIMBA_API_KEY": "simba_sk_..."
}
}
}
}
Claude Code
Add to your Claude Code MCP config:
{
"mcpServers": {
"simba": {
"command": "uvx",
"args": ["simba-mcp"],
"env": {
"SIMBA_API_URL": "https://app.getsimba.ai",
"SIMBA_API_KEY": "simba_sk_..."
}
}
}
}
Claude API (MCP Connector)
Use the remote Streamable HTTP transport with the Anthropic MCP connector:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[{"role": "user", "content": "List my Simba models"}],
mcp_servers=[
{
"type": "url",
"url": "https://app.getsimba.ai/mcp",
"name": "simba",
"authorization_token": "simba_sk_...",
}
],
tools=[{"type": "mcp_toolset", "mcp_server_name": "simba"}],
betas=["mcp-client-2025-11-20"],
)
Available Tools
| Tool | Description |
|---|---|
get_data_schema |
Get the canonical CSV schema for MMM input files |
upload_data |
Upload a CSV dataset to Simba |
list_models |
List all models with their status |
create_model |
Configure and start fitting a new MMM model |
get_model_status |
Poll fitting progress for a model |
get_model_results |
Get results (ROI, contributions, response curves, diagnostics, and more) |
run_optimizer |
Run budget optimization on a completed model |
get_optimizer_results |
Get optimizer status and results |
get_scenario_template |
Generate a forward-period template for scenario planning |
run_scenario |
Run a "what-if" scenario prediction |
get_scenario_results |
Get scenario prediction results |
Example Prompts
Try these with any connected AI assistant:
Explore your models:
"List my Simba models and show me the channel ROI summary for the most recent complete model."
Build a model:
"Upload this CSV data to Simba and create a new MMM model with TV, Search, and Social as media channels. Use 'revenue' as the KPI and 'date' as the date column."
Check progress:
"What's the fitting status of model a1b2c3d4?"
Get results:
"Show me the model diagnostics and channel contributions for model a1b2c3d4."
Optimize budget:
"Run a budget optimization on model a1b2c3d4 with $1M total budget over 12 months. Set TV bounds to 5-40% and Search to 10-50%. Use uniform laydown weights."
Response curves:
"Show me the response curves for model a1b2c3d4. At what spend level does TV hit diminishing returns?"
Scenario planning:
"Get a scenario template for model a1b2c3d4 for the next 12 weeks. Then run a scenario where I increase TV by 20% and cut Search by 10%. What happens to revenue?"
Full workflow:
"I have marketing data I want to analyze. First get the schema so I know what format is needed, then upload my data, create a model, and once it's done show me the ROI by channel."
API Key Setup
The MCP server authenticates with the same API keys used by the Simba REST API. Create a key with the required scopes:
- Go to Profile > API Keys in the Simba UI
- Click Create Key
- Set scopes:
ingest,read:models,read:results,create:models,optimize,scenario - Copy the key (shown only once)
Set the key as the SIMBA_API_KEY environment variable in your MCP config.
Configuration
| Environment Variable | Description | Default |
|---|---|---|
SIMBA_API_URL |
Simba API base URL | http://localhost:5005 |
SIMBA_API_KEY |
Your Simba API key | (required) |
Transport Modes
The server supports all MCP transport modes:
# stdio (default) — for Cursor, Claude Code
simba-mcp
# Streamable HTTP — for remote deployment
simba-mcp --transport streamable-http --port 8100
# SSE — legacy transport
simba-mcp --transport sse --port 8100
# Or via uvicorn directly
uvicorn "simba_mcp.server:create_app()" --host 0.0.0.0 --port 8100
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simba_mcp-0.1.0.tar.gz.
File metadata
- Download URL: simba_mcp-0.1.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
763c5711f2e5a66eb116a0c666cef028a007aaa72d76aa3a9fd79d206545addb
|
|
| MD5 |
e71c7a4913421b4e0b8b0e386fbd1bbc
|
|
| BLAKE2b-256 |
27880ef96644918bcc4ad6c421fc908d304ad0076aca49ac8601f41d178efd50
|
Provenance
The following attestation bundles were made for simba_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on getsimba-ai/simba-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simba_mcp-0.1.0.tar.gz -
Subject digest:
763c5711f2e5a66eb116a0c666cef028a007aaa72d76aa3a9fd79d206545addb - Sigstore transparency entry: 1239447840
- Sigstore integration time:
-
Permalink:
getsimba-ai/simba-mcp@27b8c02dc9f90a98a582251b0167328a8f1a40f6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/getsimba-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@27b8c02dc9f90a98a582251b0167328a8f1a40f6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file simba_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: simba_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fab0ea16c960f5e415b97ae03c678988c038d0de2d287037a3c6e3e414eeca70
|
|
| MD5 |
ba7bf1921b3e581012914f4c8b88e1bf
|
|
| BLAKE2b-256 |
fa916e76adaabc8e3e27f13d0a0f5cfdfc5db164241f6e37c0ff93e02f5ec658
|
Provenance
The following attestation bundles were made for simba_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on getsimba-ai/simba-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simba_mcp-0.1.0-py3-none-any.whl -
Subject digest:
fab0ea16c960f5e415b97ae03c678988c038d0de2d287037a3c6e3e414eeca70 - Sigstore transparency entry: 1239447845
- Sigstore integration time:
-
Permalink:
getsimba-ai/simba-mcp@27b8c02dc9f90a98a582251b0167328a8f1a40f6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/getsimba-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@27b8c02dc9f90a98a582251b0167328a8f1a40f6 -
Trigger Event:
release
-
Statement type: