Skip to main content
Glama
composable-delivery

Snowfakery MCP Server

Snowfakery MCP Server

CI PyPI License

Power up your AI workflows with Snowfakery data generation — Use Claude, ChatGPT, and other AI assistants to author, debug, and run data recipes through the Model Context Protocol.

MCP Registry

mcp-name: io.github.composable-delivery/snowfakery-mcp

Related MCP server: mcp-code-mode

What is this?

Snowfakery is a YAML-based tool for programmatically generating test data. This MCP server connects Snowfakery to AI assistants, letting you:

  • Draft recipes with AI assistance backed by real Snowfakery docs and examples

  • Validate recipes before running them with detailed error feedback

  • Execute recipes and iterate on results interactively

  • Debug issues with static analysis and recipe inspection

  • Generate Salesforce mappings for CumulusCI workflows

Perfect for teams that need realistic test data—from Salesforce admins to developers building data pipelines.

Quick Start

Install uv

We recommend using uv for installs and for running from source.

  • Install uv (macOS/Linux):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Install uv (Windows PowerShell):

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

See the official uv install docs: https://docs.astral.sh/uv/getting-started/installation/

For Claude Desktop, prefer using the .mcpb bundle from Releases:

This bundle includes the pinned runtime metadata (uv.lock, manifest.json) and is the easiest way to get a reproducible setup.

Install & Run (CLI)

# Recommended: isolated install
uv tool install snowfakery-mcp

# Then run the server
snowfakery-mcp

Or from source:

git clone https://github.com/composable-delivery/snowfakery-mcp.git
cd snowfakery-mcp
uv sync
uv run snowfakery-mcp

Connect to Claude (Desktop)

Add to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "snowfakery-mcp": {
      "command": "snowfakery-mcp"
    }
  }
}

Then ask Claude:

"Show me an example Snowfakery recipe" or "Help me write a recipe to generate 100 Salesforce accounts"

Features

Resources — Access docs, examples, and schemas:

  • Snowfakery documentation and recipe examples

  • JSON schema for recipe validation

  • Run outputs and artifacts

Tools — Interact with recipes:

  • Validate & analyze recipes (catch errors early)

  • Run recipes and capture output

  • List & retrieve example recipes

  • Generate CumulusCI mapping files

Learn More

Community

We want this to be welcoming at any level. Questions, ideas, and contributions are always welcome!

Development

# Install dev dependencies
uv sync --all-groups

# Run tests
uv run pytest

# Type check
uv run mypy snowfakery_mcp

# Lint & format
uv run ruff check snowfakery_mcp tests scripts evals
uv run ruff format snowfakery_mcp tests scripts evals

Evals (Agentic Testing)

This repo includes inspect-ai tasks for testing the MCP server with AI models:

# Install eval dependencies
uv sync --group evals

# Run evaluation
uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model openai/gpt-4o-mini

See evals/ for more examples and troubleshooting.

Notes

  • The repo includes the upstream Snowfakery repo as a git submodule (Snowfakery/) for development

  • When running from source, use uv run ... to ensure the pinned environment

  • PyPI installs use bundled docs/examples (no submodule required)

Releases

See GitHub Releases for sdist, wheel, and .mcpb bundles (recommended for Claude Desktop).

Available Tools

10 tools
analyze_recipeA
Read-onlyIdempotent

Parse and analyze a Snowfakery recipe structure.

Returns structural information about the recipe including:

  • Tables and their fields

  • Declared plugins and options

  • Random reference usage

  • Recipe version

Use this before running to understand recipe structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_pathNo
recipe_textNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, which the description does not contradict. The description adds valuable behavioral context by detailing the returned structural information (tables, fields, plugins, options, etc.), going beyond the annotations.

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

Conciseness4/5

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

The description is concise at 5 sentences, with the main purpose in the first sentence and a bullet-like list of returned information. It wastes no words, though it could be slightly more compact.

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 the tool's moderate complexity (2 optional parameters, no output schema), the description covers the output structure well but lacks parameter semantics, making it incomplete for a fully informed call.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description does not explain the meaning or usage of the two parameters (recipe_path and recipe_text) beyond implying one provides a recipe. No guidance on mutual exclusivity or defaults is given.

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 parses and analyzes a Snowfakery recipe structure and lists specific return information (tables, fields, plugins, options, random references, version). It distinguishes from sibling tools like run_recipe and validate_recipe.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool 'before running to understand recipe structure,' providing clear context for when to use it. It does not explicitly mention alternatives or when not to use, but the guidance is sufficient.

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

generate_mappingA

Generate a CumulusCI mapping.yml file from a Snowfakery recipe.

Creates the mapping file needed to load Snowfakery-generated data into Salesforce using CumulusCI. Returns a preview and artifact URI.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_pathNoPath to recipe file (relative to workspace)
recipe_textNoRecipe YAML content as string
load_declarations_pathsNoOptional paths to load declaration files

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and idempotentHint=false, so the tool is a mutation. The description adds that it 'Creates the mapping file' and 'Returns a preview and artifact URI,' which provides useful behavioral context beyond the annotations. No contradictions.

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 two sentences long, front-loads the primary action, and contains no redundant information. Every word serves a purpose.

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 presence of an output schema (not shown), the description need not elaborate on return values. It covers the core action, preview, and artifact URI. With 0 required parameters and clear constraints, it is sufficiently complete for this 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?

All three parameters are documented in the input schema (100% coverage). The description does not add new parameter-specific meaning beyond what the schema already provides. Therefore, the baseline 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 it generates a CumulusCI mapping.yml file from a Snowfakery recipe, with a specific verb ('generate') and resource ('mapping.yml file'). This distinguishes it from sibling tools like analyze_recipe, run_recipe, or validate_recipe, which perform different actions.

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 usage context ('needed to load Snowfakery-generated data into Salesforce') but does not explicitly state when to use or when not to use this tool compared to alternatives. No guidance on prerequisites or fallback options.

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

get_exampleA
Read-onlyIdempotent

Fetch a Snowfakery example recipe by name.

Returns the full text of the specified example recipe. Use list_examples first to see available examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
pathYes
contentYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds that it returns full text, but does not discuss error handling or behavior for invalid names. With annotation coverage, a score of 3 is appropriate.

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?

Three concise sentences: action, return value, usage guidance. No redundant information, front-loaded with the core purpose.

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?

For a simple fetch tool with output schema and clear annotations, the description covers purpose, return, and usage context. Missing details on edge cases (e.g., name not found) but acceptable given tool simplicity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only states 'by name' without explaining what constitutes a valid name, case sensitivity, or format. The parameter purpose is implied but not explicitly defined.

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?

Clearly states it fetches a Snowfakery example recipe by name and returns full text. Distinguishes from sibling list_examples by recommending to use it first.

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

Usage Guidelines4/5

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

Explicitly advises to use list_examples first to see available examples, establishing a clear prerequisite. Does not detail when not to use or mention alternatives beyond list_examples.

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

get_schemaA
Read-onlyIdempotent

Return the Snowfakery recipe JSON schema.

Use this schema to understand the structure of valid recipes and for validation purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare the tool as readOnlyHint and idempotentHint, so the description does not need to add behavioral disclosures. It adds no extra behavioral context beyond stating it returns a schema.

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 concise with two sentences that immediately convey the tool's functionality and use. No superfluous information.

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

Completeness5/5

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

Given the tool has no parameters and the output schema exists, the description fully covers what the tool does and why it should be used. No missing context.

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?

There are zero parameters, so according to the baseline rule, the score is 4. The description accurately indicates no inputs are needed.

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 that the tool returns the Snowfakery recipe JSON schema, using the verb 'Return' and specifying the resource. This purpose is distinct from sibling tools like run_recipe or validate_recipe.

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

Usage Guidelines4/5

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

The description provides guidance on using the schema to understand recipe structure and for validation purposes. It does not explicitly mention when not to use it, but the intended use is clear.

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

iterative_recipe_genA

Create a recipe iteratively with validation.

This tool uses the LLM (via sampling) to draft a Snowfakery recipe, validates it, and if it fails, asks the LLM to fix it. Returns the final valid recipe or the last attempt.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes
max_iterationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Discloses LLM usage, validation, and retry behavior; no annotations to contradict. Adds value beyond the openWorldHint.

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

Conciseness4/5

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

Concise but could be tighter; two sentences plus bullet-like format is efficient.

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?

Covers main flow but lacks details on parameter roles and failure behavior; output schema exists but is not shown.

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

Parameters2/5

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

Schema has 0% description coverage and the description does not explain the 'max_iterations' parameter meaning or the role of 'goal' beyond implied intent.

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 creates a recipe iteratively with validation, and distinguishes it from sibling tools like validate_recipe and run_recipe.

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

Usage Guidelines4/5

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

The description implies usage for iterative recipe generation, but lacks explicit when-not or alternatives compared to siblings.

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

list_capabilitiesA
Read-onlyIdempotent

Return Snowfakery + server capability info.

Use this tool first to understand what the server can do, including:

  • Snowfakery version

  • Supported output formats

  • Server limits (timeout, max output, max reps)

  • Available resources

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitsYes
resourcesYes
snowfakery_versionYes
supported_output_formatsYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds value by detailing the categories of returned information (version, formats, limits, resources), beyond what annotations provide.

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?

Concise and front-loaded with purpose, then uses a bullet-style list for specifics. Every sentence is meaningful.

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

Completeness5/5

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

Low complexity tool with no parameters and an output schema. Description covers the key categories of returned information adequately.

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?

No parameters, baseline 4. Description adds no parameter details, but also no need.

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 returns capability info and lists specific items (version, formats, limits, resources). This distinguishes it from siblings like analyze_recipe or run_recipe.

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

Usage Guidelines4/5

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

Explicitly recommends using this tool 'first' to understand capabilities, implying it's for initial discovery. No explicit when-not-to-use, but the context is clear.

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

list_examplesA
Read-onlyIdempotent

List available Snowfakery example recipe files.

Returns a list of example recipe filenames from the bundled examples. Use prefix to filter results (e.g., "salesforce" for Salesforce examples).

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
examplesYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent. Description adds that it returns filenames from bundled examples with filtering, which is useful beyond annotations.

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?

Two clear, front-loaded sentences with no wasted words. Efficiently conveys purpose and key parameter behavior.

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?

For a simple list tool with one optional param and an output schema, the description covers purpose, parameter, and return type. Minor omission: behavior when prefix is null (returns all), but inferred.

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 has 0% description coverage, so description must compensate. It explains the prefix parameter with an example, adding meaningful context.

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 lists available Snowfakery example recipe files and returns filenames. It distinguishes from siblings like get_example (retrieve specific file) and list_capabilities.

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

Usage Guidelines4/5

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

The description hints at when to use the prefix filter but doesn't explicitly contrast with alternatives like get_example or state when not to use. However, sibling context makes usage clear.

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

run_recipeA

Run a Snowfakery recipe and generate fake data.

Executes the recipe and returns generated output along with artifact URIs. The complete output is always written to disk and available via the returned resource URI regardless of capture_output - that setting only controls how much of it also comes back inline in this response.

ParametersJSON Schema
NameRequiredDescriptionDefault
repsNoNumber of times to repeat the recipe
optionsNoUser options (--option key=value equivalent)
recipe_pathNoPath to recipe file (relative to workspace)
recipe_textNoRecipe YAML content as string
strict_modeNoFail on undefined field references
output_formatNoOutput format (txt, json, csv, sql, dot, svg, etc.)txt
target_numberNoGenerate until table reaches count {"table": "X", "count": N}
validate_onlyNoOnly validate, don't generate
capture_outputNoHow much generated output to include inline, in addition to the resource: "preview" (default) is a small preview plus output_bytes/record_count so you know how much data exists without paying to see all of it; "full" is the complete output inline, up to the server's max-capture-chars limit; "none" omits inline text entirely.preview
plugin_optionsNoPlugin configuration options
generate_continuationNoCreate continuation file for resuming

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Discloses that complete output is always written to disk and that capture_output only controls inline return, adding context beyond annotations. However, does not mention behavior on re-execution or effects on existing data.

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?

Two concise paragraphs: first states purpose, second adds a critical nuance about output persistence. No redundant or irrelevant content.

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?

Covers the key behavior (output always to disk, capture_output modes) for a tool with 11 parameters, 0 required, and an output schema. Leaves artifact URI details implicit but acceptable given output schema.

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 detailed parameter descriptions; the tool description adds no additional meaning beyond summarizing capture_output behavior. Baseline score of 3 applies.

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 'Run a Snowfakery recipe and generate fake data' with specific verb and resource, and distinguishes from siblings like analyze_recipe and validate_recipe by focusing on execution and output generation.

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 explicit guidance on when to use this tool versus alternatives; lacks when-to-use or when-not-to-use instructions. The description explains capture_output modes but does not direct the agent to choose this tool over others.

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

search_docsA
Read-onlyIdempotent

Search Snowfakery documentation for a query string.

Returns matching lines from the markdown documentation. Useful for finding specific syntax, features, or examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
queryYes
truncatedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnlyHint and idempotentHint. The description adds value by specifying the return format (matching lines from markdown) and the scope (Snowfakery documentation), which are beyond annotations.

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 three concise sentences. The most important information appears first, and every sentence adds value without fluff.

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 tool is simple, and the description covers purpose and output. However, it lacks parameter documentation, which is essential for correct invocation. Output schema partially compensates for return structure, but the gap in parameter semantics reduces completeness.

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 does not explain either parameter (query, limit). The agent must rely solely on parameter names, which is insufficient. The description should compensate by describing what each parameter does.

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 verb ('Search') and resource ('Snowfakery documentation'), and explains the output ('matching lines from the markdown documentation'). It distinguishes from sibling tools, none of which are 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 Guidelines3/5

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

The description implies usage context ('useful for finding specific syntax, features, or examples') but provides no explicit when-to-use or when-not-to-use guidance. Since no sibling overlaps, it is adequate but minimal.

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

validate_recipeA
Read-onlyIdempotent

Validate a Snowfakery recipe without generating data.

Checks recipe syntax and structure. Returns validation errors if any. Use either recipe_path (file on disk) or recipe_text (inline YAML).

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoUser options to pass to the recipe
recipe_pathNoPath to a recipe file (relative to workspace root)
recipe_textNoRecipe YAML content as a string
strict_modeNoIf True, fail on undefined field references
plugin_optionsNoPlugin-specific options
schema_validateNoReserved for future JSON schema validation

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true and idempotentHint=true. Description adds that it returns validation errors, consistent with read-only 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?

Three sentences, front-loaded with purpose, no redundancy. Every sentence earns its place.

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?

Moderate complexity (6 params, none required). Output schema exists (not shown). Description covers validation outcome but could explicitly state success condition. Still adequate.

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 descriptions for all 6 parameters. Description adds value by highlighting recipe_path and recipe_text as alternatives, but offers no new info on other parameters.

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?

Clearly states 'Validate a Snowfakery recipe without generating data', specifying verb (validate) and resource (recipe). Distinguishes from generating tools like run_recipe.

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

Usage Guidelines4/5

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

Provides guidance on when to use recipe_path vs recipe_text. Lacks explicit exclusions or comparisons to siblings like analyze_recipe, but context is clear.

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. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.0
    • First observedanalyze_recipe
    • First observedgenerate_mapping
    • First observedget_example
    • First observedget_schema
    • First observediterative_recipe_gen
    • First observedlist_capabilities
    • First observedlist_examples
    • First observedrun_recipe
    • First observedsearch_docs
    • First observedvalidate_recipe

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have distinct purposes, but analyze_recipe and validate_recipe could cause some confusion—both inspect recipes but one focuses on structure, the other on syntax. Overall, the differences are clear with careful reading.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_example, list_examples, run_recipe), making them predictable and easy to understand.

Tool Count5/5

10 tools is well-scoped for a recipe-based data generation server, covering analysis, validation, execution, documentation, and examples without being overwhelming.

Completeness4/5

The tool surface covers the main workflow (create, validate, run, analyze) and includes helpful extras like documentation search and examples. A minor gap is the lack of a tool to edit existing recipes, but the iterative generation tool mitigates this.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    A Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.
    14
    178
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query, mutate, and analyze Salesforce CRM data natively through the Model Context Protocol, without requiring API glue code.
    16
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Databricks workspaces, running SQL queries, managing jobs, and exploring schemas via the Model Context Protocol.
    1
    GPL 3.0

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/composable-delivery/snowfakery-mcp'

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