Borrowing it
Nothing to install: this file belongs to christianclaudio/mcp-server-snowflake. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/christianclaudio/mcp-server-snowflake/main/AGENTS.mdgit clone --depth 1 https://github.com/christianclaudio/mcp-server-snowflakeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/christianclaudio/mcp-server-snowflake/agents-md)<a href="https://agentmods.dev/instructions/christianclaudio/mcp-server-snowflake/agents-md"><img src="https://agentmods.dev/badge/instructions/christianclaudio/mcp-server-snowflake/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80Γ15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/christianclaudio/mcp-server-snowflake/agents-md"><img src="https://agentmods.dev/badge/instructions/christianclaudio/mcp-server-snowflake/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.05653 | $0.05653 |
| Opus 5.5 | $0.02261 | $0.02261 |
| Sonnet 5.5 | $0.01131 | $0.01131 |
| Haiku 4.5 | $0.00565 | $0.00565 |
Grade C, and why
mcp-server-snowflake AGENTS.md scanned grade C with 2 findings against 26 rules in 11 categories β prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency β measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf dist && uv build && uv run python scripts/check_version.py Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
TOKEN=$(curl -s "https://ghcr.io/token?scope=repository:christianclaudio/mcp-server-snowflake:pull" | jq -r .token) How it starts
The opening of the file, as written. The whole thing β 143 lines β stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
Instructions for AI coding agents (Antigravity, Claude Code, Copilot, Cursor, Windsurf) working on this repository.
π― Project Overview
This is mcp-server-snowflake β an Enterprise Model Context Protocol (MCP) server exposing Snowflake's Data Cloud and Cortex AI as MCP tools (the expected tool set lives in scripts/check_tool_contract.py). It runs over stdio, streamable HTTP, or the deprecated SSE transport, and is consumed by AI clients (Claude Desktop, VS Code, Antigravity, Cursor, etc.).
The default tools/list is one flat catalog of all 140 tools. RegexSearchTransform (search_tools + call_tool) is opt-in via --enable-tool-search or SNOWFLAKE_MCP_ENABLE_TOOL_SEARCH=1.
ποΈ Key Paths
src/snowflake_mcp/server.pyβcreate_serverfactory; mounts each domain module withnamespace=<domain>; stamps all four hints (readOnlyHint,destructiveHint,idempotentHint,openWorldHint) in_annotate_local_tools; applies--profileand opt-in tool search.src/snowflake_mcp/middleware.pyβParentAuditMiddleware(outermost: timing,redact_messageon exception args, re-raise the same exception),ReadOnlyGateMiddleware(blocks mutatingtools/callnames while read-only mode is on), andErrorHandlingMiddleware(re-raises protocol errors unchanged and redacts tool-result payloads).src/snowflake_mcp/errors.pyβ template v1.6.0 whole-value redaction (redact_secrets,redact_message,redact_payload,tool_error,tool_failure, andstatus_error, the{"status": "error", ...}ToolErrorevery tool handler raises) plus the Snowflake extras, andredact_error_payload/redact_error_valuefor tool payloads (any non-None value under a credential key is masked; JSON inside error strings keeps its shape), plusSnowflakeMCPErrorandAuthenticationError,ResourceNotFoundError,RateLimitError, andSafetyViolationError. Replacement text is[REDACTED]. Messages are redacted at construction.src/snowflake_mcp/tools/<domain>.pyβ one module per domain (queries, databases, tables, warehouses, governance, cortex, recipes, β¦), each exposingregister_<name>_tools(mcp, client), where<name>is usually the singular of the module (for exampleregister_query_toolsinqueries.py).src/snowflake_mcp/connection.pyβSnowflakeClient(DictCursor query executor,snowflake.core.Rootbridge).config.pyβ multi-auth resolver (PAT, key-pair, OAuth, user/password,connections.toml).cli.pyβ stdio / streamable-http / SSE runner (--profile,--enable-tool-search, host-origin protection on both network transports, and the exit-2 refusal of a tokenless HTTP bind to a non-localhost host).auth.pyβSNOWFLAKE_MCP_AUTH_TOKENbearer verifier (SharedTokenVerifier, attached bycreate_server) and the strictSNOWFLAKE_MCP_ALLOW_UNAUTHENTICATED_BINDopt-in.scripts/check_tool_contract.pyβ source of truth for the expected tool count and annotations. Do not hard-code tool counts elsewhere.scripts/check_conformance.sh+conformance-baseline.yml,scripts/check_snowflake_drift.py.scripts/release_notes.pyβ release body from squash commits since the previousv*tag.scripts/check_version.pyβ runs after the build and reads the version from the single wheel indist/(the file that ships, as release.yml's tag check does); fails on0.0.0(no git metadata) or0.0.1.devN(no reachable tag, a shallow checkout).tests/β offline unit, mocked, and protocol tests; live checks intests/test_e2e_live.pybehind@pytest.mark.e2e, deselected by the default pytestaddopts(-m 'not e2e') and in CI. Version and release-tooling tests aretests/test_version.py,tests/test_release_notes.py, andtests/test_check_version.py.tests/test_otel_spans.pyrecords a failing tool's OpenTelemetry spans with an in-memory exporter (per-test SDK provider, global restored) and asserts no secret appears.tests/conftest.pyclears the HTTP auth env vars and the cached module-level server before every test..github/workflows/βci.yml(CI checks),release.yml(on av*tag: build with full history, check the wheel version matches the tag, build the release notes, create the GitHub Release fromscripts/release_notes.pywith the wheel, sdist, and SBOM attached, then push the GHCR image only after that job succeeds, then a separateattestjob with onlycontents: read,id-token: writeandattestations: writeattestsdist/*and the pushed image digest; PyPI and MCP Registry publishing stay commented out, and the registry job needsattestonce enabled),dependabot-automerge.yml(squash auto-merge only for Dependabot PRs whose highest update is minor or patch; major updates wait for a human review).server.json(MCP Registry metadata; commits version0.0.0and one OCI package, the GHCR image, whose tag lives inidentifier),Dockerfile,pyproject.toml(console scriptsmcp-server-snowflakeandsnowflake-mcp).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed Β· +1 lines Β· +302 tokens per session 26e34d2daf28
- 2d ago Changed 7c161325c36a
- 6d ago Changed Β· +6 lines Β· +625 tokens per session b871cff4230b
- 9d ago Changed ebca975069f0
- 13d ago Changed Β· +66 tokens per session c25813133265
- 17d ago Changed Β· +548 tokens per session 44011b3f21ba
- 19d ago Changed Β· +31 lines Β· +1,785 tokens per session scan A β C acf905062f67
- 20d ago Changed Β· +25 lines Β· +1,231 tokens per session 38ea2461ec00
- 22d ago Changed Β· -40 lines Β· -613 tokens per session d268fb5d70af
- 24d ago First seen Β· 120 lines Β· 1,709 tokens per session scan A 89d852464138
mcp-server-snowflake AGENTS.md is an instructions file published in the GitHub repository christianclaudio/mcp-server-snowflake (1 stars, last pushed today), licensed Apache-2.0. It adds 5,653 tokens to every session, about $0.0226 per session on Opus 5.5. A static security scan graded it C with 2 findings (recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
vscode model-prompts.instructions.md
Model-specific prompt authoring and registry guidelines.