io.github.KN0WBOT/clavis
Encrypted credential vault for AI agents — auto OAuth refresh, rate limiting, audit logging.
Open source Open in the app JSON README (API)
About
Encrypted credential vault for AI agents — auto OAuth refresh, rate limiting, audit logging.
Details
- Kind
- MCP servers
- Topic
- Security & identity
- Publisher
- kn0wbot
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.3
- Last push
- 2026-08-16T00:52:16Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 03:02:00
- Updated
- 2026-08-29 03:02:00
- Origin id
io.github.KN0WBOT/clavis
README
# Clavis MCP Server
Secure credential management for Claude Desktop and MCP servers.
## Features
- 🔐 Encrypted credential storage (AES-128-CBC + HMAC-SHA256, via Fernet)
- 🛡️ Server-side credential injection — the raw key never enters the conversation
- 🔄 Automatic OAuth token refresh
- 📡 Thin forwarding layer — rate limiting, audit logging, and usage tracking are all handled by the Clavis server
## Installation
```bash
npx @clavisagent/mcp-server
```
Or install globally:
```bash
npm install -g @clavisagent/mcp-server
```
## Usage with Claude Desktop
Add the following to your Claude Desktop configuration file (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"clavis": {
"command": "npx",
"args": ["-y", "@clavisagent/mcp-server"],
"env": {
"CLAVIS_API_KEY": "eyJ..."
}
}
}
}
```
## Usage with Claude Code
```bash
claude mcp add clavis -- npx -y @clavisagent/mcp-server
```
## Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
| `CLAVIS_API_KEY` | yes | — | Your Clavis JWT, from `POST /v1/auth/login`. Not the `cla_…` key shown at sign-up. |
| `CLAVIS_API_URL` | no | `https://clavisagent.com` | Base URL of your Clavis instance. Set this for self-hosted deployments. |
## Available Tools
| Tool | Description |
|---|---|
| `call_service` | **Recommended.** Make an API call with server-side credential injection — the credential is injected into the upstream request server-side, so the raw key never enters the conversation. |
| `get_credentials` | Legacy. Returns the raw access token or API key for a named service. Prefer `call_service`. |
| `list_services` | List all services with stored credentials |
| `check_credential_status` | Check the status and expiry of credentials for a service |
### Security note
Prefer `call_service` over `get_credentials`. `call_service` keeps the secret
server-side, so a prompt injection has no credential in context to exfiltrate.
`get_credentials` places the raw key in the conversation and exists only for
callers that must hold the token themselves.
## License
MIT