Skip to main content
Glama
muhammad1azmi

google-meridian-mcp

Google Meridian MCP Server (google-meridian-mcp)

License: MIT Python 3.11+ Node.js 18+ MCP Standard

A Cloud-Agnostic, First-Principles Model Context Protocol (MCP) server for Google Meridian and Marketing Mix Modeling (MMM).

It empowers data scientists and AI assistants (Cursor, Claude Desktop, Antigravity) to create, audit, calibrate, and optimize mathematically sound, causally valid Marketing Mix Models with zero cloud vendor lock-in.


πŸ’‘ Why First Principles Over Rigid Scripts?

Most assistant implementations rely on hardcoded procedural scripts (SKILL.md). In real-world data science, rigid scripts break because every business, industry, and marketing dataset is unique:

  • A retail brand with 50 DMAs operates differently than a B2B SaaS startup with national data.

  • App install targets (NON_REVENUE) require different priors than revenue models (REVENUE).

  • Specific channel CPMs, flighting patterns, and Lift Tests vary across campaigns.

First Principles never change. Causal identification (DAGs), carryover/saturation physics (Adstock & Hill curves), Bayesian probability calibration, NUTS MCMC geometry ($\hat{R} < 1.05$), and KKT convex budget optimization apply universally to every dataset on Earth.

By anchoring this MCP server in First Principles & Dynamic Data Science Tools, the co-pilot adapts seamlessly to any specific edge case while guaranteeing mathematical rigor.


Related MCP server: OpenTelemetry Documentation MCP Server

πŸ›οΈ The 4 Mandate Pillars

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. EVERY CONTROL POINT   β”‚ Covers Data Inputs, Controls/DAG, Baseline, Adstock,        β”‚
β”‚                          β”‚ Hill Saturation, Bayesian Priors, MCMC, Optimization.       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 2. END-TO-END WORKFLOW   β”‚ Guides the 5 phases & 3 iteration loops (Convergence        β”‚
β”‚                          β”‚ Diagnostics βž” Causal Plausibility βž” Lift Calibration).      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 3. FIRST PRINCIPLES      β”‚ Grounded in causal inference, probability theory, HMC/NUTS  β”‚
β”‚                          β”‚ sampling geometry, and convex optimization math.            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 4. PLATFORM AGNOSTIC     β”‚ 100% portable with zero cloud vendor lock-in. Runs locally, β”‚
β”‚                          β”‚ in Docker, or on AWS, Azure, GCP, Railway, Render, etc.     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Complete MCP Tool Suite (11 Tools)

Category

Tool

Parameters

Description

Control Points

get_control_point_guide

control_point: str

Operational parameters, math formulas, and bounds for all control points.

Workflow

get_mmm_workflow_guide

phase: str

Decision trees and iteration rules for the 5 modeling phases & 3 iteration loops.

Prior Math Engine

calculate_bayesian_prior

point_estimate, ci_lower, ci_upper

Converts 95% CIs from Lift Tests into exact Meridian LogNormal ($\mu, \sigma$) prior parameters.

Spec Auditor

audit_model_first_principles

config_json: str

Audits model specs for identifiability, knot density, prior variance, and Hill parameter bounds.

EDA Engine

run_eda_checks

config_json: str

Pre-modeling EDA checks (VIFSpec, PairwiseCorrSpec, DataParameterRatioArtifact).

Model Reviewer

run_model_review_checks

check_type: str

Diagnostic checks (BayesianPPPCheck, PriorPosteriorShiftCheck, ImplausibleROICheck).

Code Synthesizer

synthesize_meridian_code

pipeline_stage: str

Generates clean, portable, cloud-agnostic Python code for Google Meridian pipelines.

Data Utility

generate_schema_template

n_weeks, n_geos, n_channels

Generates synthetic CSV schema templates matching Meridian's input format.

Documentation

list_doc_sources

category: str

Lists documentation sources filtered by category.

Documentation

fetch_docs

url: str

Fetches and parses documentation pages/GitHub code to Markdown.

Documentation

search_doc_topics

query: str

Searches Meridian topic index (Adstock, Hill curves, NUTS, Priors, etc.).


⚑ Quick Connect (Remote SSE Mode)

Add this to your IDE's mcp_config.json:

{
  "mcpServers": {
    "google-meridian": {
      "url": "https://google-meridian.mcp.borobudur.ai/sse"
    }
  }
}

πŸ’» Local Setup & Running

# Install dependencies
pip install -r requirements.txt

# Run server in stdio mode
python server.py

mcp_config.json:

{
  "mcpServers": {
    "google-meridian-mcp": {
      "command": "python",
      "args": [
        "C:/path/to/google-meridian-mcp/server.py"
      ]
    }
  }
}

Option B: Node.js Setup

npm install
npm start

πŸ“„ License

MIT License. Open source and free for the community.

Available Tools

9 tools
audit_model_first_principlesC

Audits model spec for identifiability, knot density, prior variance, and Hill parameter bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_jsonNo{}

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior. It only states what is audited but omits critical details: whether the tool returns warnings, errors, or reports, whether it is read-only, and what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it sacrifices completeness. Every word is relevant but insufficient to convey necessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and a single optional parameter, the description lacks essential context. The agent cannot infer the tool's place among siblings (e.g., should it be run before or after calculate_bayesian_prior?) or what constitutes a valid input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, config_json, has no description in the schema (0% coverage) and is not explained in the tool description. The agent receives no help understanding how to set this parameter or what values are expected beyond the default empty object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies that the tool audits a model spec for identifiability, knot density, prior variance, and Hill parameter bounds. The verb 'audits' is somewhat vague, but listing the audited attributes clarifies the tool's scope and distinguishes it from siblings like calculate_bayesian_prior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, prerequisites, or alternatives. The description does not explain how this tool fits into a workflow or when it should be preferred over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_bayesian_priorA

Solves probability equations to convert 95% CIs into Meridian LogNormal (mu, sigma) prior parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
ci_lowerYesLower bound of 95% Confidence Interval (e.g. 1.2)
ci_upperYesUpper bound of 95% Confidence Interval (e.g. 2.8)
point_estimateYesPoint estimate ROI or multiplier (e.g. 2.0)
experiment_typeNoType of experiment ('geo_lift', 'conversion_lift', 'holdout')geo_lift

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the conversion goal but does not mention side effects, input validation, or output format. The tool appears to be a safe computation, but the description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is concise and front-loaded with the action. No wasted words; every part contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema), the description adequately states the purpose. However, it lacks details on output format, constraints (e.g., CI ordering), or error behavior, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description does not add semantic value beyond mentioning the output type ('mu, sigma'), which is implicit from the tool name. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the tool converts 95% CIs into Meridian LogNormal prior parameters using probability equations. It uses specific verbs ('solves', 'converts') and identifies the resource ('95% CIs', 'Meridian LogNormal prior parameters'), clearly distinguishing it from sibling doc/search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not specify prerequisites, conditions, or when not to use it. The description only states what it does, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_docsB

Fetch and parse Google Meridian documentation or code into clean Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to fetch documentation from.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description only states basic operation. No info on side effects, permissions, rate limits, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 10 words, directly conveys purpose without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 param, no output schema), description is adequate but minimal. Does not address potential failures or edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter described. Description adds no extra meaning beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'fetch', resource 'Google Meridian documentation or code', and output 'clean Markdown'. Distinct from sibling tools like list_doc_sources and search_doc_topics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_schema_templateC

Generates a synthetic benchmarking CSV schema template matching Meridian's input format.

ParametersJSON Schema
NameRequiredDescriptionDefault
n_geosNo
n_weeksNo
n_channelsNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It does not mention side effects, cost, limitations (e.g., no randomness, output format details), or if the tool is deterministic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently communicates the tool's purpose. Every word is necessary; there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the three unparameterized parameters and no output schema, the description is too sparse. It does not explain what the generated template contains, how to use it, or how it relates to Meridian benchmarking. A more complete description would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain the three parameters (n_geos, n_weeks, n_channels). Their purpose, allowed values, or impact on the output are entirely missing, forcing the agent to guess or default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a synthetic benchmarking CSV schema template in Meridian's input format. It is specific and distinguishes the tool from siblings, though it could briefly note why one would need a benchmarking schema template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like synthesize_meridian_code or calculate_bayesian_prior. The description lacks any context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_control_point_guideB

Provides operational parameters, math formulas, and bounds for data science control points.

ParametersJSON Schema
NameRequiredDescriptionDefault
control_pointNodata_inputs, confounders_and_dag, adstock_decay, hill_saturation, bayesian_priors, mcmc_diagnostics, optimization_bounds, or ALLALL

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It states what the tool provides but omits critical details such as return format (e.g., JSON, plain text), error handling, or any side effects (though likely read-only). The user is left unsure what to expect from the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficiently worded sentence that immediately communicates the tool's purpose. No extraneous information is included, and all phrases ('operational parameters', 'math formulas', 'bounds') add value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool returns detailed information (formulas, bounds), the description fails to specify the output structure or format. With no output schema and no annotations, the user lacks crucial context about how to interpret the result, making the description insufficient for a complex guide tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, with clear allowed values already enumerated in the input schema. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'operational parameters, math formulas, and bounds for data science control points', specifying a distinct resource (control points) and action (providing details). This distinguishes it from sibling tools like 'get_mmm_workflow_guide' which focus on workflows, and 'calculate_bayesian_prior' which performs calculations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no explicit guidance on when to use this tool versus alternatives. While the purpose implies usage for retrieving control point details, it does not mention when not to use it (e.g., for general documentation or calculations) or highlight sister tools like 'fetch_docs' or 'get_mmm_workflow_guide' as alternatives for different needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mmm_workflow_guideB

Provides decision trees and iteration rules for modeling phases and iteration loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
phaseNophase1_data_prep, phase2_specification, loop_a_convergence, loop_b_plausibility, loop_c_calibration, phase4_optimization, or ALLALL

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states it provides information, but does not disclose potential side effects, required permissions, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no unnecessary words. It efficiently communicates the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides minimal context. It does not explain the structure of the output, the range of phases, or how the decision trees are organized. While the parameter definition helps, the overall completeness is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the single parameter phase has a description listing valid values). The tool description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool provides decision trees and iteration rules for modeling phases and iteration loops, which is a specific verb+resource. However, it does not elaborate on what 'modeling phases' specifically refer to, nor does it differentiate from sibling tools like get_control_point_guide.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives (e.g., fetch_docs, get_control_point_guide). It lacks any context about prerequisites, typical scenarios, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_doc_sourcesA

List all available Google Meridian documentation sources, user guides, API references, and GitHub repository links.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory filter (ALL, OVERVIEW_AND_SETUP, PRE_MODELING, MODELING_AND_FITTING, POST_MODELING_AND_OPTIMIZATION, CAUSAL_INFERENCE_THEORY, ADVANCED_MODELING, API_REFERENCE, GITHUB_REPOSITORY)ALL

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states a read-only listing action without mentioning potential side effects, authentication, rate limits, or response structure. The description lacks depth beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 14 words, efficiently conveying the tool's purpose. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter with enum, no output schema), the description adequately covers the output (listed sources). While it could mention the return format, the low complexity means the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, including the parameter 'category' with a default and enum descriptions. The tool description does not add any extra meaning beyond the schemaβ€”it fails to explain how the filter works or what the values represent. Baseline 3 is appropriate as schema covers the parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all available Google Meridian documentation sources, user guides, API references, and GitHub repository links,' specifying the verb (list) and resources. It distinguishes from sibling tools like fetch_docs or search_doc_topics, which retrieve content rather than listing sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for obtaining an overview of documentation sources, but it does not explicitly specify when to use it or contrast with sibling tools like fetch_docs or search_doc_topics. No when-not or alternative usage is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_doc_topicsA

Search Google Meridian documentation by topic or keyword (e.g., 'adstock', 'priors', 'budget optimizer', 'NUTS', 'R-hat', 'DAG', 'causal').

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKeyword or topic to search for.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states the basic search action without mentioning any behavioral traits like result structure, pagination, or safety (read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with examples is very concise and front-loaded. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter search tool, the description is adequate but lacks information about the output format (e.g., list of document titles). No output schema exists, so more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already describes the query parameter. The description adds helpful examples (e.g., 'adstock', 'NUTS') that clarify acceptable inputs beyond the schema's generic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Google Meridian documentation by topic or keyword, with specific examples. It distinguishes from sibling tools like fetch_docs and list_doc_sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied for keyword search but no explicit guidance on when to use vs siblings like fetch_docs or list_doc_sources. No exclusions or alternatives provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

synthesize_meridian_codeC

Synthesizes clean, portable, cloud-agnostic Python code for Google Meridian.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_jsonNo{}
pipeline_stageNoFULL_PIPELINE

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral traits such as output format, side effects, or dependencies. With no annotations, the description fails to provide necessary context for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, but it is too brief to be effective. It earns its place but lacks structure and substantive content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (no output schema, only two parameters), the description is incomplete. It does not explain return values, expected input format, or how the tool integrates with siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no information about the two parameters (config_json, pipeline_stage). It does not compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool synthesizes Python code for Google Meridian, and it distinguishes from sibling tools like fetch_docs and list_doc_sources which are about documentation. However, it could be more specific about what 'synthesize' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any context on prerequisites or limitations. The description lacks any usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedaudit_model_first_principles
    • First observedcalculate_bayesian_prior
    • First observedfetch_docs
    • First observedgenerate_schema_template
    • First observedget_control_point_guide
    • First observedget_mmm_workflow_guide
    • First observedlist_doc_sources
    • First observedsearch_doc_topics
    • First observedsynthesize_meridian_code

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose. Documentation tools (fetch, list, search) are separated by action, guides target different aspects (control points vs workflow), and remaining tools cover calculation, auditing, code synthesis, and schema generation without overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, e.g., fetch_docs, get_control_point_guide, calculate_bayesian_prior, list_doc_sources. The verbs are varied but predictable, and there is no mixing of conventions.

Tool Count5/5

With 9 tools, the set is well-scoped for a domain-specific MCP server. It covers documentation, guides, prior calculation, auditing, code synthesis, and schema generation without being overloaded or too sparse.

Completeness4/5

The tool surface covers core documentation, guides, prior calculation, and auditing. Minor gaps exist: missing tools for directly running models or retrieving results, but these may be handled by synthesized code. Overall, it's fairly complete for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers