MCP server for authoring, analyzing, debugging, and running Snowfakery recipes
Reason this release was yanked:
Accidental minor version release
Project description
snowfakery-mcp
MCP server for authoring, analyzing, debugging, and running Snowfakery recipes.
Upstream Snowfakery:
See MCP_SERVER_SPEC.md for the initial server spec.
Run the server
Install dependencies and run the MCP server over stdio:
uv syncuv run snowfakery-mcp
Install from releases / PyPI:
- Recommended (isolated):
pipx install snowfakery-mcp - Or:
python -m pip install snowfakery-mcp - Then run:
snowfakery-mcp
Development
- Install all groups (dev + evals):
uv sync --all-groups - Run tests:
uv run pytest - Typecheck:
uv run mypy snowfakery_mcp - Lint:
uv run ruff check snowfakery_mcp tests scripts evals - Format:
uv run ruff format snowfakery_mcp tests scripts evals
Notes:
- The repo includes the upstream Snowfakery repo as a git submodule under
Snowfakery/. - The MCP server serves
snowfakery://docs/*andsnowfakery://examples/*from the submodule when present, but falls back to a bundled snapshot shipped inside thesnowfakery_mcpwheel for installs where submodules are not available. - When running any Snowfakery-related commands locally, prefer
uv run ...to ensure you’re using the pinned environment.
What’s included (MVP)
- Resources:
snowfakery://schema/recipe-jsonschemasnowfakery://docs/index/snowfakery://docs/extending/snowfakery://docs/salesforce/snowfakery://docs/architecturesnowfakery://examples/listandsnowfakery://examples/{name}snowfakery://runs/{run_id}/{artifact}for run artifacts
- Tools:
list_capabilities,list_examples,get_example,get_schema,search_docsvalidate_recipe,analyze_recipe,run_recipe,generate_mapping
Evals (inspect-ai)
For more agentic evals (tool use + iterative debugging), this repo includes an inspect-ai task that exposes the full MCP tool suite to the model.
- Install eval deps:
uv sync --group evals
- Run:
uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model <api>/<model_name>- (Optional) set a base URL with
INSPECT_EVAL_MODEL_BASE_URLor--model-base-url.
Examples:
uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model openai/gpt-4o-miniOPENAI_API_KEY=$GITHUB_TOKEN INSPECT_EVAL_MODEL_BASE_URL=https://models.inference.ai.azure.com uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model openai/gpt-4o-mini
GitHub Models notes:
-
Some GitHub Models endpoints do not support the OpenAI
responsesAPI yet. If you seeapi_not_supportedor a 404 to/responses, force chat-completions mode:OPENAI_API_KEY=$GITHUB_TOKEN INSPECT_EVAL_MODEL_BASE_URL=https://models.inference.ai.azure.com uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model openai/gpt-5-mini -M responses_api=false --display plain
-
GitHub Models can also rate-limit aggressively, and a parallel eval can look hung while requests are being retried. For the most reliable runs, go serial:
OPENAI_API_KEY=$GITHUB_TOKEN INSPECT_EVAL_MODEL_BASE_URL=https://models.inference.ai.azure.com uv run inspect eval evals/inspect_tasks.py@snowfakery_mcp_agentic --model openai/gpt-5-mini -M responses_api=false --display plain --max-samples 1 --max-connections 1- (Optional) add timeouts to fail fast:
--timeout 90 --attempt-timeout 90
-
To run just one sample at a time:
... --sample-id debug_broken_reference... --sample-id salesforce_standard_objects
Troubleshooting:
- If it "hangs" with no visible progress, use
--display plain(or setINSPECT_DISPLAY=plain). - To narrow down a slow sample: add
--limit 1. - If it still looks stuck, check whether the log is growing:
ls -lt logs | headuv run inspect log dump logs/<file>.eval --header-only
View logs:
- List recent runs:
uv run inspect log list - Dump a log as JSON:
uv run inspect log dump logs/<file>.eval - Convert to JSON log format:
uv run inspect log convert logs/<file>.eval --to json --output-dir logs-json - Start the log viewer (web UI):
uv run inspect view start --log-dir logs
Quick summaries (when JSON is huge):
- Dump a log then summarize it:
uv run inspect log dump logs/<file>.eval > out.jsonuv run python evals/summarize_log.py out.json
Releases
GitHub Releases attach:
- Python sdist + wheel in
dist/ - An experimental
.mcpbbundle (a ZIP with metadata + example config)
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 snowfakery_mcp-0.1.0.tar.gz.
File metadata
- Download URL: snowfakery_mcp-0.1.0.tar.gz
- Upload date:
- Size: 60.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1542fb73ad792d32e9b21e85edbe44e245075fd4531d11db5d744e73971496b0
|
|
| MD5 |
d66a41d29642f20c74515d3a3a4caaac
|
|
| BLAKE2b-256 |
359e753c445bba2cb1aee9b64c4496aadfaa20bb232d448fb09d35e0f391a1f7
|
Provenance
The following attestation bundles were made for snowfakery_mcp-0.1.0.tar.gz:
Publisher:
release.yml on composable-delivery/snowfakery-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
snowfakery_mcp-0.1.0.tar.gz -
Subject digest:
1542fb73ad792d32e9b21e85edbe44e245075fd4531d11db5d744e73971496b0 - Sigstore transparency entry: 820927825
- Sigstore integration time:
-
Permalink:
composable-delivery/snowfakery-mcp@16b4714d3b467b3ad7d77743f6a5c77a561fa16e -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/composable-delivery
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@16b4714d3b467b3ad7d77743f6a5c77a561fa16e -
Trigger Event:
push
-
Statement type:
File details
Details for the file snowfakery_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: snowfakery_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 67.3 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 |
a1a30ee61e15a1587abda982990c7cf36d9f99ffeea5c911aa93140861268da9
|
|
| MD5 |
016c4690af20462e566352081566c1e8
|
|
| BLAKE2b-256 |
65967bbb7d5c5af537225be7f6fcf9f9446d4c15c49640d134d5123abbeecc39
|
Provenance
The following attestation bundles were made for snowfakery_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on composable-delivery/snowfakery-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
snowfakery_mcp-0.1.0-py3-none-any.whl -
Subject digest:
a1a30ee61e15a1587abda982990c7cf36d9f99ffeea5c911aa93140861268da9 - Sigstore transparency entry: 820927832
- Sigstore integration time:
-
Permalink:
composable-delivery/snowfakery-mcp@16b4714d3b467b3ad7d77743f6a5c77a561fa16e -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/composable-delivery
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@16b4714d3b467b3ad7d77743f6a5c77a561fa16e -
Trigger Event:
push
-
Statement type: