Skip to main content

meryn MCP

Connect Claude to your meryn account: read your MMM results and launch runs without leaving the conversation.

The server runs on your machine, talks to the meryn API over HTTPS, and holds nothing — your key lives in your own config.

Install

claude mcp add meryn -e MERYN_API_KEY=mk_… -- uvx meryn-mcp

Or, in any MCP client's config file:

{
  "mcpServers": {
    "meryn": {
      "command": "uvx",
      "args": ["meryn-mcp"],
      "env": {
        "MERYN_API_KEY": "mk_...",
        "MERYN_BASE_URL": "https://meryn.ai"
      }
    }
  }
}

MERYN_BASE_URL is optional; it defaults to https://meryn.ai.

The key is the one you create in your team's settings → API keys (how). It is shown once, so copy it then. Give it read unless you want the assistant to be able to launch runs.

⚠️ API access is part of the plan. Professional and Enterprise include it; Free does not. Without it the first tool call returns 403: This team plan does not include API access.

What it can do

Read projects, datasets, mappings and periods; models with their metrics and readiness verdict; the progress, logs and run history; every chart dataset and the finer-grained result tables; EDA runs; the budget allocator's split by channel and by market, and its efficiency
Launch create a model on an existing period, run it, cancel it; create and run a budget optimisation

What it deliberately doesn't do: upload and map a CSV. That step stays in the web app, where a person confirms how the file was interpreted — which column is the date, what each column means, what got normalised.

Three things worth knowing

The knobs aren't written into the server. list_engine_params fetches them live from the API, with each one's type, default, bounds and help text. They're the same rows that draw the modals in the app, so they can't go stale — and it's the first place to look before building a config.

Anything that costs compute asks first. run_model and run_allocator start containers: tens of minutes of compute and one of your plan's concurrent-run slots. The server refuses them without an explicit confirm, so an assistant can't fire one in passing. That's a guard in the code, not a hint in the description.

Retries don't duplicate runs. Every POST carries an Idempotency-Key derived from the operation and its arguments, so if the assistant retries because it didn't see the response, the API returns what it already created instead of launching a second run.

How to read the numbers

The API returns raw values with a units map beside them, and that is on purpose: an assistant doing arithmetic on "12.3%" gets it wrong two steps later, in a budget recommendation. Four rules that matter:

  • fraction is 0–1 and percent is 0–100 — both appear in the same response, so read the unit instead of guessing from the field name;
  • a null means not measured, never zero — an organic channel's ROI is null because it has no spend, and averaging it as zero drags the average down;
  • anything listed in not_applicable does not exist for that engine (Robyn does no MCMC, so it has no r-hat). That is not missing data;
  • on the readiness verdict, pending and not_evaluated are not green: the first means it hasn't been computed yet, the second that it ran and could not measure anything.

⚠️ And on charts, watch national_only. When it is set, the rows are national, not the market you asked for — either because that chart cannot be cut by market (Meridian estimates one decay per channel, shared across markets) or because the model was trained before we started saving it per market. Reporting them as that market's is the mistake the field exists to prevent.

Not hosted anywhere

There is no remote MCP endpoint to point at, and that is deliberate for now: stdio on your own machine means the key never leaves it and there is no third party in the path. A hosted version with OAuth is something we will build when someone needs it.

  • Using the API — authentication, pagination, retries, and the same four rules in more detail
  • API reference — generated from the API itself

Para el repo

Archivo Qué es
meryn_mcp/__init__.py el cliente HTTP y el catálogo de tools. Sin dependencias, y es lo que prueba la suite (apps/api/tests/test_mcp.py)
meryn_mcp/servidor.py el cableado del SDK de MCP. Lo mínimo que no se puede probar sin el paquete mcp

⚠️ Es un paquete y no dos módulos sueltos, y el motivo aparece recién al publicar: el wheel dejaba un top-level llamado servidor en el site-packages de cualquiera que lo instalara. Adentro del repo daba igual; distribuido, no.

Publicar: uv build && uv publish desde clients/mcp/. ⚠️ Subir la versión en pyproject.toml antes — PyPI no deja re-subir una versión ya publicada.

Metadata

Release files for meryn-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meryn-mcp 0.1.0
File Size Uploaded Provenance Actions
meryn_mcp-0.1.0.tar.gz 16.9 kB Without provenance Details for meryn_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for meryn-mcp 0.1.0
File Interpreter ABI Platform Actions
meryn_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for meryn_mcp-0.1.0-py3-none-any.whl

Total release size: 33.2 kB

Release files / meryn_mcp-0.1.0.tar.gz

Download URL meryn_mcp-0.1.0.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dc439dab24596d1c3e433713e186ef682b9fc2988d158c502e294cede74ae238
BLAKE2b-256 checksum
How to use checksums
327facb2ce4d05aa9728642438cc72ec52af490d1f8f028f5b4e62da11de1a0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / meryn_mcp-0.1.0-py3-none-any.whl

Download URL meryn_mcp-0.1.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
813d580db6342e65ea48c0a33f02fa52fa5142e30908f179005c03a2d6158b46
BLAKE2b-256 checksum
How to use checksums
de1b6f088bc5edb8ba4e504f987fe40ff46b9a35be070434fc9ba11445c2cbb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Security for meryn-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page