Governed warehouse context for agents: docs, lineage, freshness and read-only, PII-safe SQL.
MCPpedia last refreshed this data
io.github.AndreMuraro/warehouse-context-mcp is an MCP server that governed warehouse context for agents: docs, lineage, freshness and read-only, PII-safe SQL. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 59/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-andremuraro-warehouse-context-mcp": {
"args": [
"warehouse-context-mcp"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Governed warehouse context for agents: docs, lineage, freshness and read-only, PII-safe SQL.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
uvx 'warehouse-context-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked warehouse-context-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in ecommerce
Which credit card earns the most at a merchant, from your cards or every card, and why.
Dutch construction facts with measured accuracy + NL coordination. Never holds third-party funds.
MCP server for EPLAN Electric P8: ~200 tools to drive EPLAN from Claude Code, Codex, Cursor or any MCP client (actions, scripts, live DataModel, exports). Includes the eplan-tools plugin marketplace.
Read-only MCP servers for Russian marketplaces: prices, stock, ratings, reviews, seller identity
MCP Security Weekly
Get CVE alerts and security updates for io.github.AndreMuraro/warehouse-context-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server that gives AI agents trustworthy, governed context about a data warehouse: what each table means, where it comes from, how fresh it is, and a way to query it that cannot write, cannot run away, and cannot leak personal data.
Coding and analytics agents are good at SQL and bad at knowing which table to trust. Schema alone does not tell them that fct_voyage_economics is the governed source for TCE, that stg_voyages is staging, that contact_email is personal data, or that a table stopped updating two days ago. This server puts that context one tool call away, and puts guardrails around everything else.
| Tool | What the agent gets |
|---|---|
list_tables | Every table with its documented purpose and owner |
describe_table | Columns, types, descriptions, PII flags, grain, row count, undocumented columns |
table_lineage | Upstream sources and downstream consumers, cycle-safe, depth-limited |
table_freshness | Last update, age, and whether it meets the documented expectation |
sample_rows | A few example rows, PII masked |
run_query | One read-only SELECT, row-limited, with PII protected |
| Backend | Status | Native context it reads | Read-only connection layer |
|---|---|---|---|
| DuckDB | v0.1 | none (YAML catalog only) | file opened read_only |
| Snowflake | v0.2 | table/column comments, pii object tags | a SELECT-only role (WCM_READER in the demo script) |
| Databricks | v0.2 | Unity Catalog comments, pii column tags | a principal with only USE + SELECT grants |
Comments and tags stored in the warehouse are merged with the curated YAML catalog: curated values win, native ones fill the gaps, and a PII flag from either source sticks.
Every query an agent sends is treated as written by an attacker, since agents can be prompt-injected by what they read. Protection comes in independent layers, each tested on its own:
LATERAL, SUMMARIZE, recursive CTEs and every vendor function such as SYSTEM$…, READ_FILES, SECRET, HTTP_REQUEST or GETENV.* is expanded and every column must resolve to a real column of a known table, through aliases, CTEs and subqueries; a whole row used as a value is refused.'***' before the query is sent, so the value never leaves the warehouse. It can be counted (COUNT(DISTINCT email)), but filtering, sorting, grouping or computing on it is refused, so its values cannot be guessed one test at a time.USE and SELECT grants.Scope: only tables in the configured schema; names are compared after the dialect's own case rules and every table is fully qualified in the SQL that runs.
PII tags stored in the warehouse (Snowflake tags, Unity Catalog column tags) are merged with the curated catalog, must be readable at startup (fail closed), and are refreshed every 10 minutes. For production data, also use warehouse-native masking (masking policies or column masks): the server's masking is defence in depth.
The quer