Vaultic

MCP Server

Give agentic tools like Claude the ability to interface with the Vaultic API.

The Vaultic MCP Server implements the Model Context Protocol, allowing agentic AI tools to interface with the Vaultic API — list workspaces, projects, and environments; read, set, and reveal secrets; diff and promote between environments; and manage service tokens.

The Vaultic MCP Server is experimental and intended for development, testing, and evaluation purposes. Because outputs are non-deterministic and vary with the connected model, query, and session state, always scope the connection to only the workspace, project/environment, and read-vs-write access you intend to allow, and review agentic output for alignment with your security and compliance requirements.

Prerequisites

  • An MCP client that supports remote/HTTP connectors (Claude Desktop, claude.ai, and others)
  • A Vaultic account you can log into in your browser

No local install, no JSON config file, and no credential to copy/paste — connecting happens entirely through your MCP client's UI and a browser-based approval screen.

Setup

Add the connector

In your MCP client, go to Settings → Connectors → Add custom connector and paste the gateway URL: https://mcp.vaultic.dev on the hosted service, or your own gateway's URL if you're self-hosting (see Self-hosting the gateway below).

Approve in your browser

Your client opens a browser tab and sends you to Vaultic to log in (if you aren't already) and shows a consent screen: pick which workspace, and optionally which project/environment, the client should be scoped to, and whether it gets read or write access.

Approving creates (or reuses) an agent identity for you and this client, and starts a scoped session under it — every action it takes is attributed to both of you in the audit log (see Scoping access below). The client never sees or handles the underlying credential directly, and you're returned to it, connected.

Try it

Ask your client something like "list my Vaultic workspaces" or "what secrets are set in the production environment of the backend-api project?" — it should call vaultic_list_workspaces / vaultic_list_secrets and show you the (masked) result.

Still early: connection state lives in the gateway process's memory, so it doesn't survive a restart, and there are no OAuth refresh tokens yet — your client has to redo browser approval about once a month, when the underlying session expires (~30 days). Disconnecting a client from Settings → Connectors only stops the gateway from accepting that session going forward — revoking access for real still requires ending the session from the workspace's Agents page (or vaultic agent session end).

Self-hosting the gateway

The gateway (packages/mcp-gateway) is a separate service from server/web — it's off by default in docker-compose.prod.yml and needs its own public HTTPS origin:

Env varRequiredPurpose
MCP_GATEWAY_ISSUER_URLyes, to enable itThis gateway's own public https:// URL, e.g. https://mcp.your-vaultic-instance.com. Also read by web (as VITE_MCP_GATEWAY_URL) so the consent screen knows which gateway origin to trust
WEB_APP_URLyesYour web app's origin, so the gateway knows where to send users for consent

Leave MCP_GATEWAY_ISSUER_URL unset to skip deploying the gateway entirely — the consent page just refuses every request rather than trusting an unvalidated origin, so nothing breaks on the rest of the deployment.

Tools

ToolDescription
vaultic_list_workspacesList workspaces visible to the token
vaultic_list_projectsList projects in a workspace
vaultic_create_projectCreate a project, optionally seeding environments
vaultic_list_environmentsList environments in a project
vaultic_create_environmentCreate a base or inheriting/sandbox environment
vaultic_diff_environmentsDiff two environments' secret keys (no values)
vaultic_promote_environmentCopy changed/added values from one environment to another
vaultic_list_secretsList secrets in an environment, masked
vaultic_get_secretGet one secret's metadata, masked
vaultic_reveal_secretGet one secret's real value (separately audited)
vaultic_set_secretCreate or update a secret's value/metadata
vaultic_delete_secretSoft-delete a secret
vaultic_get_secret_historyList a secret's version history, optionally revealed
vaultic_list_service_tokensList service tokens in a workspace
vaultic_create_service_tokenCreate a scoped service token
vaultic_revoke_service_tokenRevoke a service token

Each tool's full description — arguments, return shape, and error cases — is visible to the connected MCP client; that's the source of truth, not this table.

Not covered (use the CLI or web app instead): webhooks, member/invite management, access grants, secret comments, Git integration, secret sharing links, and rotation plugins — lower-frequency, higher-blast-radius operations that don't fit naturally into an agent workflow.

Scoping access

Every request the MCP server makes is tagged x-vaultic-source: mcp, so anything an agent does shows up in the workspace's audit log with source: "mcp" — distinct from cli, ui, and plain api activity, and attributed to both the agent identity and the human who approved the connection (agent:name (session ...) on behalf of you@...). Reveals (vaultic_reveal_secret, and reveal: true on vaultic_get_secret_history) are further logged as their own audited action.

Scope is chosen on the consent screen each time you connect — pick the narrowest workspace, project/environment, and read-vs-write access the client actually needs, the same discipline you'd apply to a manually-created service token. Approving the same client again later reuses its existing agent identity rather than creating a new one, so you can review and manage every connected client from the workspace's Agents page — see who's connected, what they're scoped to, and end a session immediately if something looks wrong.

On this page