프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Janee

제작자: rsdouglas버전 0.8.5i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.rsdouglas/janee

설치

개요

제작자가 쓴 설명(영어 원문)

Secure secrets proxy for AI agents — manages API keys so agents never see raw credentials.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "janee": {
      "command": "npx",
      "args": [
        "-y",
        "@true-and-useful/janee"
      ],
      "env": {
        "JANEE_CONFIG": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add janee --env JANEE_CONFIG=your-value -- npx -y @true-and-useful/janee

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "janee": {
      "command": "npx",
      "args": [
        "-y",
        "@true-and-useful/janee"
      ],
      "env": {
        "JANEE_CONFIG": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "janee": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@true-and-useful/janee"
      ],
      "env": {
        "JANEE_CONFIG": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • JANEE_CONFIG env
    Path to secrets configuration file

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 rsdouglas 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32680개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32680개 중 2%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32680개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Janee, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.8.5)은 9개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211그저께 업데이트
설치

EmbeddedCI BenchPod

제작자: embeddedci-com

Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Janee 🔐

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.

✨ Features
🔒 Zero-knowledge agentsAgents call APIs without ever seeing keys
📋 Full audit trailEvery request logged with timestamp, method, path, status
🛡️ Request policiesAllow/deny rules per capability (e.g., read-only Stripe)
⏱️ Session TTLsTime-limited access with instant revocation
🔌 Works with any MCP clientClaude Desktop, Cursor, OpenClaw, and more
🏠 Local-firstKeys encrypted on your machine, never sent to a cloud
🖥️ Exec modeRun CLI tools with injected credentials — agents never see the keys
🤖 GitHub App authShort-lived tokens for autonomous agents — no static PATs
🐦 Twitter/X OAuth 1.0aPer-request OAuth signing — 4 secrets stay encrypted
☁️ AWS SigV4Sign AWS API requests server-side — SES, S3, and more
🔧 Automatic git authgit push/pull just works when credentials include GitHub tokens

The Problem

AI agents need API access to be useful. The current approach is to give them your keys and hope they behave.

  • 🔓 Agents have full access to Stripe, Gmail, databases
  • 📊 No audit trail of what was accessed or why
  • 🚫 No kill switch when things go wrong
  • 💉 One prompt injection away from disaster

The Solution

Janee is an MCP server that manages API secrets for AI agents:

  1. Store your API keys — encrypted locally in ~/.janee/
  2. Run `janee serve` — starts MCP server
  3. Agent requests access — via execute MCP tool
  4. Janee injects the real key — agent never sees it
  5. Everything is logged — full audit trail

Your keys stay on your machine. Agents never see them. You stay in control.


Configure Once, Use Everywhere

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:

  • Claude Desktop — access your APIs
  • Cursor — access your APIs
  • OpenClaw — access your APIs
  • Any MCP client — access your APIs

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.


Quick Start

Install
npm install -g @true-and-useful/janee
Initialize
janee init

This creates ~/.janee/config.yaml with example services.

Add 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 Setup for flags that skip prompts, or the agent-specific guides below.

Option 2: Edit config directly

Edit ~/.janee/config.yaml:

services:

stripe: baseUrl: https://api.stripe.com auth: type: bearer key: sk_live_xxx

capabilities: stripe: service: stripe ttl: 1h autoApprove: true

Add CLI tools (exec mode)

Some tools need credentials as environment variables, not HTTP headers. Exec mode handles this:

janee add twitter --exec \

--key "tvly-xxx" \ --allow-commands "bird,tweet-cli" \ --env-map "TWITTER_API_KEY={{credential}}"

Now agents can run CLI tools through Janee without ever seeing the API key:

// Agent calls janee_exec tool

janee_exec({ capability: "twitter", command: ["bird", "post", "Hello world!"], cwd: "/home/agent/project", // optional working directory reason: "User asked to post a tweet" })

Janee spawns the process with TWITTER_API_KEY injected, runs the command, and returns stdout/stderr. The credential never enters the agent's context.

Key flags:

  • --exec — configure as exec-mode (CLI wrapper instead of HTTP proxy)
  • --allow-commands — whitelist of allowed executables (security)
  • --env-map — map credentials to environment variables
  • --work-dir — working directory for the subprocess
  • --timeout — max execution time (default: 30s)
Git operations (automatic HTTPS auth)

When using exec mode with GitHub credentials, Janee automatically handles git authentication. No extra configuration needed — git push, git pull, and git clone just work:

capabilities:
  • name: git-ops service: github mode: exec allowCommands: [git] env: GH_TOKEN: "{{credential}}"
// Agent can push code without ever seeing the token

janee_exec({ capability: "git-ops", command: ["git", "push", "origin", "main"], cwd: "/workspace/my-repo" })

Janee detects git commands with GH_TOKEN/GITHUB_TOKEN in the environment and creates a temporary askpass script for HTTPS authentication. The script is cleaned up automatically after the command completes.

Add GitHub App auth (for autonomous agents)

Static tokens are risky for long-running agents. GitHub App auth generates short-lived installation tokens on demand — no long-lived PATs required.

Option 1: Use create-gh-app (recommended)

npx @true-and-useful/create-gh-app create my-agent --owner @me

Opens browser → creates app → saves credentials locally

Install the app on your repos

https://github.com/apps/my-agent/installations/new

Register with Janee in one command

npx @true-and-useful/create-gh-app janee-add my-agent

Done. Your agent now gets short-lived GitHub tokens through Janee's MCP proxy.

Option 2: Manual setup

janee add github-app \

--auth-type github-app \ --app-id 123456 \ --pem-file /path/to/private-key.pem \ --installation-id 789

Or via config:

services:

github: baseUrl: https://api.github.com auth: type: github-app appId: "123456" pemFile: /path/to/private-key.pem installationId: "789"

How it works: When an agent requests access, Janee signs a JWT with the app's private key, exchanges it for a 1-hour installation token via GitHub's API, and caches the token until expiry. The agent never sees the private key — only the short-lived token reaches the API.

Start the MCP server
janee serve
Use with your agent

Agents that support MCP (Claude Desktop, Cursor, OpenClaw) can now call the execute tool to make API requests through Janee:

// Agent calls the execute tool

execute({ capability: "stripe", method: "GET", path: "/v1/balance", reason: "User asked for account balance" })

Janee decrypts the key, makes the request, logs everything, and returns the response.


Integrations

Works with any agent that speaks MCP:

  • OpenClaw — Native plugin (@true-and-useful/janee-openclaw)
  • Containerized agents? See Container setup guide
  • Cursor — Setup guide
  • Claude Code — Setup guide
  • Codex CLI — Setup guide
  • Any MCP client — just point at janee serve

OpenClaw Integration

If you're using OpenClaw, install the plugin for native tool support:

npm install -g @true-and-useful/janee

janee init

Edit ~/.janee/config.yaml with your services

Install the OpenClaw plugin

openclaw plugins install @true-and-useful/janee-openclaw

Enable in your agent config:

{

agents: { list: [{ id: "main", tools: { allow: ["janee"] } }] } }

Your agent now has these tools:

  • janee_list_services — Discover available APIs
  • janee_execute — Make API requests through Janee

The plugin spawns janee serve automatically. All requests are logged to ~/.janee/logs/.


MCP Tools

Janee exposes three MCP tools:

ToolDescription
list_servicesDiscover available APIs and their policies
executeMake an API request through Janee (HTTP proxy mode)
execRun a CLI command with injected credentials (exec mode)
manage_credentialView, grant, or revoke access to agent-scoped credentials
reload_configReload config from disk after adding/removing services (available when started with janee serve)

Agents discover what's available, then call APIs through Janee. Same audit trail, same protection.


Configuration

Config lives in ~/.janee/config.yaml:

server:

host: localhost

services: stripe: baseUrl: https://api.stripe.com auth: type: bearer key: sk_live_xxx # encrypted at rest

github: baseUrl: https://api.github.com auth: type: bearer key: ghp_xxx

capabilities: stripe: service: stripe ttl: 1h autoApprove: true

stripe_sensitive: service: stripe ttl: 5m requiresReason: true

Services = Real APIs with real keys Capabilities = What agents can request, with policies

Supported auth types
TypeDescriptionExample
bearerBearer token in Authorization headerStripe, OpenAI, GitHub
basicHTTP Basic Auth (username + password)Internal APIs
hmac-bybitHMAC-SHA256 signing for BybitBybit exchange
hmac-okxHMAC-SHA256 + passphrase for OKXOKX exchange
hmac-mexcHMAC-SHA256 signing for MEXCMEXC exchange
headersCustom key-value headersNon-standard APIs
service-accountGoogle service account JSON keyGoogle Cloud
github-appShort-lived GitHub installation tokensGitHub API
oauth1a-twitterOAuth 1.0a per-request signingTwitter/X API v2
aws-sigv4AWS Signature V4 per-request signingSES, S3, and other AWS services
Twitter/X OAuth 1.0a

Janee computes OAuth 1.0a signatures (HMAC-SHA1) server-side, so your 4 Twitter secrets stay encrypted at rest and never enter the agent's context:

services:

twitter: baseUrl: https://api.x.com auth: type: oauth1a-twitter consumerKey: xxx # encrypted at rest consumerSecret: xxx # encrypted at rest accessToken: xxx # encrypted at rest accessTokenSecret: xxx # encrypted at rest

capabilities: twitter: service: twitter ttl: 1h autoApprove: true

Or use the built-in template:

janee add twitter
AWS SigV4

Janee computes AWS Signature V4 (HMAC-SHA256) per-request, keeping your access keys encrypted at rest. Non-secret fields (region, awsService) stay in plain config:

services:

aws-ses: baseUrl: https://email.us-east-1.amazonaws.com auth: type: aws-sigv4 accessKeyId

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기