Back to the catalog

Vault MCP

MCP server for credential isolation — bots use passwords and API keys without seeing them

Open source Open in the app JSON README (API)

About

MCP server for credential isolation — bots use passwords and API keys without seeing them

Details

Kind
MCP servers
Topic
Security & identity
Publisher
chill-ai-space
Origin
official
Category
ferramentas
Transport
local
Version
0.2.1
Stars
2
Last push
2026-09-05T23:39:50Z
Repository state
ativo
Language
TypeScript
Added
2026-08-29 03:01:47
Updated
2026-08-29 03:01:47
Origin id
io.github.Chill-AI-Space/vault

README

# zerocreds-mcp

MCP server for [ZeroCreds](https://zerocreds.ru) — collect credentials from users without exposing them to the LLM.

## How it works

```
Claude                    ZeroCreds Server            User
  │                            │                        │
  ├─zerocreds_create_session──►│                        │
  │◄─{ token, url }────────────┤                        │
  │                            │                        │
  │  "Please fill: <url>"──────────────────────────────►│
  │                            │◄──── form submit ───────┤
  │                            │  (credentials saved)    │
  │                            │                        │
  ├─zerocreds_check_status─────►│                        │
  │◄─{ status: "done" }────────┤                        │
  │                            │                        │
  │  (proceeds — never saw the credentials)
```

## Setup

```bash
npm install -g zerocreds-mcp
```

Add to `~/.claude/mcp.json` (Claude Code) or Claude Desktop config:

```json
{
  "mcpServers": {
    "zerocreds": {
      "command": "zerocreds-mcp",
      "env": {
        "ZEROCREDS_URL": "https://zerocreds.ru",
        "ZEROCREDS_TOKEN": "your-admin-or-integrator-token",
        "ZEROCREDS_DEFAULT_DESTINATION": "local-dev",
        "ZEROCREDS_TG_BOT_TOKEN": "optional — sends link via Telegram",
        "ZEROCREDS_TG_CHAT_ID": "optional"
      }
    }
  }
}
```

## Environment variables

| Variable | Required | Description |
|----------|----------|-------------|
| `ZEROCREDS_URL` | no | Server URL (default: `https://zerocreds.ru`) |
| `ZEROCREDS_TOKEN` | yes | Admin or integrator token |
| `ZEROCREDS_DEFAULT_DESTINATION` | no | Default destination name (default: `local-dev`) |
| `ZEROCREDS_TG_BOT_TOKEN` | no | Telegram bot token — auto-sends the link |
| `ZEROCREDS_TG_CHAT_ID` | no | Telegram chat ID |

## Tools

### `zerocreds_create_session`

Creates a one-time form session. Returns `{ token, url, expires_at }`.

Claude shows `url` to the user, then polls `zerocreds_check_status` every 5–10 seconds.

**Parameters:**
- `title` (required) — form heading
- `fields` (required) — array of `{ name, label, type?, placeholder?, required?, level? }`
- `description` — optional subtext
- `destination` — named destination from server config; overrides env default
- `ttl_minutes` — link expiry (default: 30)

**Field types:** `text`, `password`, `email`, `tel`, `number`, `textarea`, `url`

**Field levels** (optional, shown to user as privacy indicator):
`secret` · `pii` · `attribute` · `credential`

### `zerocreds_check_status`

Polls session status. Returns `{ status: "pending" | "done" | "expired" }`.

## Example agent flow

```
User: "Log me into GitHub"

Claude: [zerocreds_create_session]
  title: "Connect GitHub"
  fields: [
    { name: "token", label: "Personal Access Token", type: "password" }
  ]
→ { token: "abc123", url: "https://zerocreds.ru/f/abc123" }

Claude: "Please fill in your token here: https://zerocreds.ru/f/abc123"

[polls zerocreds_check_status every 5s]
→ { status: "done" }

Claude: "GitHub connected! Proceeding..."
[reads token from secret store via configured destination]
```

## Self-hosting

See [zerocreds-server](https://github.com/Zerocreds-com/zerocreds-server) to run your own instance.

## License

MIT

More