Secure secrets proxy for AI agents — manages API keys so agents never see raw credentials.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-rsdouglas-janee": {
"args": [
"-y",
"@true-and-useful/create-gh-app"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Your AI agents need API access to be useful. But they shouldn't have your raw API keys. > Janee sits between your agents and your APIs — injecting credentials, enforcing policies, and logging everything.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@true-and-useful/create-gh-app' 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 @true-and-useful/create-gh-app against OSV.dev.
Click any tool to inspect its schema.
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 ai-ml / security
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
Workspace template + MCP server for Claude Code, Codex CLI, Cursor & Windsurf. Multi-agent knowledge engine (ag-refresh / ag-ask) that turns any codebase into a queryable AI assistant.
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
MCP Security Weekly
Get CVE alerts and security updates for io.github.rsdouglas/janee and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Secrets management for AI agents via MCP
Your AI agents need API access to be useful. But they shouldn't have your raw API keys. Janee sits between your agents and your APIs — injecting credentials, enforcing policies, and logging everything.
| 🔒 Zero-knowledge agents | Agents call APIs without ever seeing keys |
| 📋 Full audit trail | Every request logged with timestamp, method, path, status |
| 🛡️ Request policies | Allow/deny rules per capability (e.g., read-only Stripe) |
| ⏱️ Session TTLs | Time-limited access with instant revocation |
| 🔌 Works with any MCP client | Claude Desktop, Cursor, OpenClaw, and more |
| 🏠 Local-first | Keys encrypted on your machine, never sent to a cloud |
| 🖥️ Exec mode | Run CLI tools with injected credentials — agents never see the keys |
| 🤖 GitHub App auth | Short-lived tokens for autonomous agents — no static PATs |
| 🐦 Twitter/X OAuth 1.0a | Per-request OAuth signing — 4 secrets stay encrypted |
| ☁️ AWS SigV4 | Sign AWS API requests server-side — SES, S3, and more |
| 🔧 Automatic git auth | git push/pull just works when credentials include GitHub tokens |
AI agents need API access to be useful. The current approach is to give them your keys and hope they behave.
Janee is an MCP server that manages API secrets for AI agents:
~/.janee/janee serve — starts MCP serverexecute MCP toolYour keys stay on your machine. Agents never see them. You stay in control.
Set up your APIs in Janee once:
services:
stripe:
baseUrl: https://api.stripe.com
auth: { type: bearer, key: sk_live_xxx }
github:
baseUrl: https://api.github.com
auth: { type: bearer, key: ghp_xxx }
openai:
baseUrl: https://api.openai.com
auth: { type: bearer, key: sk-xxx }
Now every agent that connects to Janee can use them:
No more copying keys between tools. No more "which agent has which API configured?" Add a new agent? It already has access to everything. Revoke a key? Update it once in Janee.
One config. Every agent. Full audit trail.
npm install -g @true-and-useful/janee
janee init
This creates ~/.janee/config.yaml with example services.
Option 1: Interactive (recommended for first-time users)
janee add
Janee will guide you through adding a service:
Service name: stripe
Base URL: https://api.stripe.com
Auth type: bearer
API key: sk_live_xxx
✓ Added service "stripe"
Create a capability for this service? (Y/n): y
Capability name (default: stripe):
TTL (e.g., 1h, 30m): 1h
Auto-approve? (Y/n): y
✓ Added capability "stripe"
Done! Run 'janee serve' to start.
Using an AI agent? See [Non-interactive