Skip to main content

Vecten

PyPI CI Apache-2.0 alpha

The Vecten MCP

Your warehouse, served to Claude and your agents, as each person, with a receipt for every answer. An open-source Model Context Protocol (MCP) server for the Snowflake or Postgres warehouse you already run.

Who it is for

You have a warehouse and data applications on top of it. Now people want to ask questions from Claude or another chat assistant, and you want agents to use the same data. What is missing is an MCP interface: the open protocol those assistants use to reach tools and data. The Vecten MCP is that interface, and it runs on your own cloud. It is one half of Vecten Open; the other half, a data platform that builds a warehouse, you can leave out.

Security at the core

Who can see what is decided by your warehouse, not by the AI. Each person gets their own warehouse identity: a Postgres role or a Snowflake user. Every query runs as that identity, so what their grants forbid, they cannot read, whatever the assistant asks. Queries are read-only, with a row cap and a timeout, and the server treats questions and agent-written SQL as untrusted data.

The server holds no admin warehouse account. It creates people's identities through one narrowly granted login and never keeps their passwords. It refuses to start when that login's grants differ from what is expected. vecten mcp provisioner-script prints the setup SQL, so your warehouse administrator reads it before anything runs.

You can prove what happened. Every call is recorded with the person, their question, the tool, the SQL and the tables and columns it touched. Every answer carries a receipt that anyone signed in can check later with verify_receipt. Administrators see who asked what, and which questions the data could not answer.

Sign-in is a password or your identity provider over OpenID Connect. Identity and access has the full model, and Connections, credentials, and compromise says what v0.1 does not protect against.

Common definitions and metrics

An assistant left to write its own SQL will invent its own revenue. Here each metric is defined once, in a semantic model kept in your repository (an Apache Ossie model), and reviewed like code.

  • Start from what you have. vecten mcp import --dbt <path> builds the datasets (the tables the model may read) from an existing dbt project; vecten mcp introspect drafts them from the warehouse catalog. You and your agent write the metrics.
  • Answers come from the definitions. query_metrics turns a question into SQL from the shared definitions and returns the definitions it used. When the model cannot answer exactly, it refuses with a reason; it never returns an approximate number.
  • Numbers stay put. Evaluation cases pin what each metric request must compile to, so a later edit cannot quietly change a number someone relies on.
  • Wrong answers become fixes. A person who gets a wrong answer reports it. That opens a gap, a tracked record of what the model got wrong, and the fix comes back as a pull request with a regression case for you to review.

Authoring the semantic model · Querying metrics · Correcting a business definition

Install

You install the vecten CLI, not this package. vecten sets up the project, and the server runs as a container from the ghcr.io/vecten/vecten-mcp image: on your laptop with Docker, and deployed on your cloud. This package is the code inside that image.

uv tool install vecten
vecten init warehouse-assistant --name warehouse-assistant --users 5 \
  --has-warehouse yes --warehouse-url postgres://warehouse.example.com/analytics
cd warehouse-assistant
vecten next

A Snowflake address has the form snowflake://account/database. The address never holds a password; vecten secret set stores a credential when a setup step asks for one. vecten next lists what the project needs, in order: the setup SQL for your administrator, the semantic model, the first people. On Postgres, vecten up then runs the server on your laptop at https://mcp.localhost:8443. With an agent such as Claude Code, point it at the directory and it runs vecten next --json and follows the items.

To connect, vecten mcp connection --env prod prints the deployed address. In Claude Code: claude mcp add --transport http vecten https://mcp.<domain>/mcp. In Claude Desktop: Settings, Connectors, add a custom connector with the same address. The first call opens the sign-in page.

What v0.1 covers

This is an alpha.

v0.1
Warehouses Postgres, Snowflake. Support for Databricks, BigQuery and Redshift is planned.
Runs on your laptop with Docker (Postgres only), AWS or Scaleway, deployed with Terraform through GitHub Actions
Snowflake deployed only: Snowflake trusts the server's sign-in at its public address, so a laptop cannot stand in
Clients Claude Desktop, Claude Code, and any client that speaks MCP over streamable HTTP
Metrics one dataset per metric query; a question that needs a join gets a SQL starting point instead

Minor releases in the 0.x series may break things; pin the minor.

More

Apache-2.0, copyright 2026 Vecten. Released together with vecten, vecten-platform and vecten-shared at one version.

Metadata

Release files for vecten-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vecten-mcp 0.1.0
File Size Uploaded Provenance Actions
vecten_mcp-0.1.0.tar.gz 353.1 kB Without provenance Details for vecten_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vecten-mcp 0.1.0
File Interpreter ABI Platform Actions
vecten_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for vecten_mcp-0.1.0-py3-none-any.whl

Total release size: 642.8 kB

Release files / vecten_mcp-0.1.0.tar.gz

Download URL vecten_mcp-0.1.0.tar.gz
Size 353.1 kB
Tags Source
SHA-256 checksum
How to use checksums
361dc9454b307afa48d9264fe285ef3e9bccdaa146dd321d0dc99eac74f86ba1
BLAKE2b-256 checksum
How to use checksums
579a7b08ff14003b9d206e83d2ae0a577cd0700cf0c3135181bc992903797ebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.15

Release files / vecten_mcp-0.1.0-py3-none-any.whl

Download URL vecten_mcp-0.1.0-py3-none-any.whl
Size 289.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f06e3b51670eee248f7e21fee741c9d00a0d87483a8e7520ec70913f5bf011b
BLAKE2b-256 checksum
How to use checksums
fe6be05fad8a2123fb1c6050fa3e94ccb682b824e2c2ff0a0fff7801dc341ed1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.15

Security for vecten-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page