Token导航 LogoToken导航

MCP Server · 安全风控

Create Gh App

Janee是一款通过MCP协议为AI代理提供密钥管理的本地优先服务,可安全注入凭证、执行策略并记录完整审计日志。

stdio官方级别未说明来源级核验工具 5@true-and-useful/create-gh-app
密钥管理安全TypeScriptClaudeClaude DesktopCursor

快速开始

作者 / 组织
rsdouglas
提供方
rsdouglas
运行时
Node.js

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

27

仓库热度

收录来源

1 个

MCP World

选型结论

Create Gh App 属于安全风控类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

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

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

珍妮🔐

通过MCP对AI代理进行秘密管理

您的人工智能代理需要API访问才能发挥作用。但是他们不应该有你的原始API密钥。 Janee位于代理和API之间——注入凭据、执行策略和记录所有内容。

✨ 特性

🔒 零知识代理代理在没有看到密钥的情况下调用API
📋 完整的审计追踪每个请求都记录了时间戳、方法、路径和状态
🛡️ 请求策略允许/拒绝每个功能的规则(例如,只读条带)
⏱️ 会话TTL具有即时撤销功能的限时访问
🔌 适用于任何MCP客户端Claude Desktop、Cursor、OpenClaw等
🏠 本地优先密钥在您的计算机上加密,从不发送到云端
🖥️ 执行模式使用注入的凭据运行CLI工具——代理永远看不到密钥
🤖 GitHub应用程序认证自治代理的短期令牌——没有静态PAT
🐦 Twitter/X OAuth 1.0a按请求OAuth签名——4个秘密保持加密
☁️ AWS SigV4签署AWS API服务器端请求-SES、S3等
🔧 自动git身份验证git push/pull 仅在凭据包含GitHub令牌时有效

______________________________________________________________________

问题

人工智能代理需要API访问才能发挥作用。目前的做法是给他们你的钥匙,并希望他们表现良好。

  • 🔓 客服可以完全访问Stripe、Gmail和数据库
  • 📊 没有访问内容或原因的审计跟踪
  • 🚫 事情出错时没有停止开关
  • 💉 一次及时注射远离灾难

______________________________________________________________________

解决方案

珍妮是一个 主控程序 为人工智能代理管理API机密的服务器:

  1. 存储API密钥 --在本地加密 ~/.janee/
  2. 跑 janee serve --启动MCP服务器
  3. 代理请求访问 --via execute MCP工具
  4. Janee注入真正的密钥 --特工从未见过它
  5. 所有内容都已记录 --完整审计追踪

你的钥匙留在你的机器上。特工们从未见过他们。你保持控制。

______________________________________________________________________

配置一次,随处使用

在Janee中设置API一次:

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 }

现在 每个代理人 连接到Janee的用户可以使用它们:

  • 克劳德桌面版 --访问您的API
  • 光标 --访问您的API
  • 开爪 --访问您的API
  • 任何MCP客户端 --访问您的API

不再在工具之间复制密钥。不再是“哪个代理配置了哪个API?”添加新代理?它已经可以访问一切。撤销钥匙?在Janee中更新一次。

一个配置。每个特工。完整的审计跟踪。

______________________________________________________________________

快速开始

安装

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

初始化

janee init

这创造了 ~/.janee/config.yaml 示例服务。

添加服务

选项1:交互式(建议首次使用)

janee add

Janee将指导您添加服务:

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.

使用AI代理? 看 非交互式设置 对于跳过提示的标志,或 特定代理指南 在......下面

选项2:直接编辑配置

编辑 ~/.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

添加CLI工具(exec模式)

一些工具需要凭据作为环境变量,而不是HTTP标头。Exec模式处理此问题:

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

现在,代理可以通过Janee运行CLI工具,而无需看到API密钥:

// 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创建了这个过程 TWITTER_API_KEY 注入后,运行命令并返回stdout/stderr。凭证永远不会进入代理的上下文。

关键标志:

  • --exec --配置为exec模式(CLI包装器而不是HTTP代理)
  • --allow-commands --允许的可执行文件白名单(安全)
  • --env-map --将凭据映射到环境变量
  • --work-dir --子流程的工作目录
  • --timeout --最大执行时间(默认值:30秒)

Git操作(自动HTTPS身份验证)

当使用带有GitHub凭据的exec模式时,Janee会自动处理git身份验证。无需额外配置-- git push, git pull,以及 git clone 只是工作:

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检测到 git 命令与 GH_TOKEN/GITHUB_TOKEN 并为HTTPS身份验证创建临时askpass脚本。命令完成后,脚本会自动清理。

添加GitHub App auth(适用于自主代理)

静态令牌对于长时间运行的代理来说是有风险的。GitHub App auth按需生成短期安装令牌,不需要长期PAT。

选项1:使用create gh应用程序(推荐)

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

完成。您的代理现在通过Janee的MCP代理获得短期GitHub令牌。

选项2:手动设置

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

或者通过配置:

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

它是如何工作的: 当代理请求访问时,Janee使用应用程序的私钥签署JWT,通过GitHub的API将其交换为1小时的安装令牌,并缓存该令牌直到到期。代理永远看不到私钥——只有短暂的令牌到达API。

启动MCP服务器

janee serve

与您的代理人一起使用

支持MCP(Claude Desktop、Cursor、OpenClaw)的代理现在可以调用 execute 通过Janee发出API请求的工具:

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

Janee解密密钥,发出请求,记录所有内容,并返回响应。

______________________________________________________________________

集成

与任何讲MCP的代理合作:

  • 开爪 --原生插件(@true-and-useful/janee-openclaw)

- 集装箱代理? 看 容器设置指南

______________________________________________________________________

OpenClaw集成

如果你正在使用 开爪,安装本机工具支持插件:

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

在代理配置中启用:

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

您的代理现在拥有以下工具:

  • janee_list_services --发现可用的API
  • janee_execute -通过Janee发出API请求

插件生成 janee serve 自动。所有请求都记录到 ~/.janee/logs/.

______________________________________________________________________

MCP工具

Janee公开了三个MCP工具:

工具说明
list_services发现可用的API及其策略
execute通过Janee(HTTP代理模式)发出API请求
exec使用注入的凭据运行CLI命令(exec模式)
manage_credential查看、授予或撤销对代理范围凭据的访问权限
reload_config添加/删除服务后从磁盘重新加载配置(在启动时可用 janee serve)

代理发现可用的内容,然后通过Janee调用API。相同的审计追踪,相同的保护。

______________________________________________________________________

配置

Config住在 ~/.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

服务 =具有真实密钥的真实API\ 能力 =代理可以根据策略请求什么

支持的身份验证类型

类型描述示例
bearer授权头中的承载令牌Stripe、OpenAI、GitHub
basicHTTP基本身份验证(用户名+密码)内部API
hmac-bybitBybit的HMAC-SHA256签名Bybit交换
hmac-okxHMAC-SHA256+用于OKXOKX交换的密码
hmac-mexcMEXCMEXC交易所的HMAC-SHA256签名
headers自定义键值头非标准API
service-account谷歌服务帐户JSON密钥谷歌云
github-app短时间使用的GitHub安装令牌GitHub API
oauth1a-twitterOAuth 1.0a per-request签名Twitter/X API v2
aws-sigv4AWS Signature V4每次请求签名SES、S3和其他AWS服务
Twitter/X OAuth 1.0a

Janee在服务器端计算OAuth 1.0a签名(HMAC-SHA1),因此您的4个推特秘密在静止时保持加密,永远不会进入代理的上下文:

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

或者使用内置模板:

janee add twitter
AWS SigV4

Janee根据每个请求计算AWS签名V4(HMAC-SHA256),使您的访问密钥保持加密状态。非机密字段(region, awsService)保持普通配置:

services:
  aws-ses:
    baseUrl: https://email.us-east-1.amazonaws.com
    auth:
      type: aws-sigv4
      accessKeyId: AKIA...     # encrypted at rest
      secretAccessKey: xxx     # encrypted at rest
      region: us-east-1
      awsService: ses

capabilities:
  aws-ses:
    service: aws-ses
    ttl: 1h
    autoApprove: true

常见AWS服务的内置模板:

janee add aws-ses    # Amazon SES
janee add aws-s3     # Amazon S3

访问控制

控制哪些代理可以使用哪些功能:

server:
  host: localhost
  defaultAccess: restricted   # capabilities require explicit allowlist

capabilities:
  stripe:
    service: stripe
    ttl: 1h
    allowedAgents: ["agent-a", "agent-b"]   # only these agents can use it

  github:
    service: github
    ttl: 1h
    # no allowedAgents + defaultAccess: restricted → no agent can use this
  • defaultAccess: restricted --能力没有 allowedAgents 列表对所有代理隐藏
  • defaultAccess: open (默认)--没有 allowedAgents 列表可供所有代理使用
  • allowedAgents --代理名称的每个功能列表(与 clientInfo.name 从MCP初始化握手开始)

代理在运行时创建的凭据默认为 agent-only access——只有创建代理可以使用它们,除非它通过 manage_credential 工具。

执行模式功能

services:
  twitter:
    auth:
      type: bearer
      key: tvly-xxx

capabilities:
  twitter:
    service: twitter
    mode: exec
    allowCommands: ["bird", "tweet-cli"]
    envMap:
      TWITTER_API_KEY: "{{credential}}"
    ttl: 1h
    autoApprove: true

执行模式功能使用 janee_exec 而不是 execute。凭据作为环境变量注入——代理只看到stdout/stderr。

exec模式下的转轮硬化默认值:

  • 隔离的最小环境(没有完整的主机环境继承)
  • 临时的 HOME 按命令
  • 超时会终止进程组

运行者/权限模式(适用于容器)

当代理在Docker容器内运行时, janee_exec 在远程主机上无法访问容器文件系统。Runner/Authority架构解决了这个问题:

  • 权威 在主机上运行:保存凭据,强制执行策略,代理API请求
  • 跑者 在每个容器内运行:将MCP提供给代理,将非exec调用转发给权威机构,运行 janee_exec 本地
# Host: start Authority (MCP + exec authorization on one port)
janee serve -t http -p 3100 --host 0.0.0.0 --runner-key "$JANEE_RUNNER_KEY"

# Container: start Runner (agent talks to this)
janee serve -t http -p 3200 --host 127.0.0.1 \
  --authority http://host.docker.internal:3100 --runner-key "$JANEE_RUNNER_KEY"

代理人只需要 JANEE_URL=http://localhost:3200.

您还可以将管理局作为独立进程运行:

janee authority --runner-key "$JANEE_RUNNER_KEY" --host 127.0.0.1 --port 9120

请参阅 跑步者/权威指南 完整的架构、exec授权流程、Docker Compose示例和故障排除。

______________________________________________________________________

请求策略

准确控制每个功能可以使用哪些请求 rules:

capabilities:
  stripe_readonly:
    service: stripe
    ttl: 1h
    rules:
      allow:
        - GET *
      deny:
        - POST *
        - PUT *
        - DELETE *

  stripe_billing:
    service: stripe
    ttl: 15m
    requiresReason: true
    rules:
      allow:
        - GET *
        - POST /v1/refunds/*
        - POST /v1/invoices/*
      deny:
        - POST /v1/charges/*  # Can't charge cards
        - DELETE *

规则如何运作:

  1. deny 先检查图案 --明确否认总是成功的
  2. 然后 allow 检查图案 --必须匹配才能继续
  3. 未定义规则 → 允许所有(向后兼容)
  4. 规则已定义但不匹配 → 默认拒绝

图案格式: METHOD PATH

  • GET * → 任何GET请求
  • POST /v1/charges/* → POST到/v1/charges/和子路径
  • * /v1/customers → 任何方法到/v1/客户
  • DELETE /v1/customers/* → 删除任何客户

这使得安全成为现实: 即使代理对其“原因”撒谎,它也只能访问策略允许的端点。执行发生在服务器端。

______________________________________________________________________

CLI参考

janee init                    # Set up ~/.janee/ with example config
janee add                     # Add a service (interactive)
janee add stripe -u https://api.stripe.com -k sk_xxx  # Add with args
janee remove         # Remove a service
janee remove  --yes  # Remove without confirmation
janee list                    # List configured services
janee list --json             # Output as JSON (for integrations)
janee search [query]          # Search service directory
janee search stripe --json    # Search with JSON output
janee cap list                # List capabilities
janee cap list --json         # List capabilities as JSON
janee cap add  --service   # Add capability
janee cap edit          # Edit capability
janee cap remove        # Remove capability
janee serve                   # Start MCP server (stdio, default)
janee serve --transport http --port 9100  # Start with HTTP transport (for containers)
janee serve --authority https://janee.example.com --runner-key $JANEE_RUNNER_KEY  # Runner mode
janee authority --runner-key $JANEE_RUNNER_KEY  # Start authority API
janee logs                    # View audit log
janee logs -f                 # Tail audit log
janee logs --json             # Output as JSON
janee sessions                # List active sessions
janee sessions --json         # Output as JSON
janee revoke              # Kill a session

非交互式设置(适用于AI代理)

AI代理无法响应交互式提示。使用 --*-from-env 从环境变量中读取凭据的标志——这可以将秘密排除在代理的上下文窗口之外:

# Bearer auth (Stripe, OpenAI, etc.)
janee add stripe -u https://api.stripe.com --auth-type bearer --key-from-env STRIPE_KEY

# HMAC auth (Bybit)
janee add bybit --auth-type hmac-bybit --key-from-env BYBIT_KEY --secret-from-env BYBIT_SECRET

# HMAC auth with passphrase (OKX)
janee add okx --auth-type hmac-okx --key-from-env OKX_KEY --secret-from-env OKX_SECRET --passphrase-from-env OKX_PASS

# GitHub App auth (short-lived tokens)
janee add github --auth-type github-app --app-id-from-env GH_APP_ID --pem-from-env GH_PEM --installation-id-from-env GH_INSTALL_ID

# Twitter/X OAuth 1.0a (per-request signing)
janee add twitter --consumer-key $TWITTER_CONSUMER_KEY --consumer-secret $TWITTER_CONSUMER_SECRET \
  --access-token $TWITTER_ACCESS_TOKEN --access-token-secret $TWITTER_ACCESS_TOKEN_SECRET

# AWS SigV4 (SES, S3, etc.)
janee add aws-ses --access-key-id $AWS_ACCESS_KEY_ID --secret-access-key $AWS_SECRET_ACCESS_KEY \
  --region us-east-1 --aws-service ses

当所有必需的凭据都通过标志提供时,Janee:

  • 从不打开读线(不挂在stdin上)
  • 自动创建具有合理默认值的功能(1h TTL,自动批准)

您还可以编辑 ~/.janee/config.yaml 如果你愿意,可以直接。

______________________________________________________________________

运作原理

┌─────────────┐      ┌──────────┐      ┌─────────┐
│  AI Agent   │─────▶│  Janee   │─────▶│  Stripe │
│             │ MCP  │   MCP    │ HTTP │   API   │
└─────────────┘      └──────────┘      └─────────┘
      │                   │
   No key           Injects key
                    + logs request
  1. 客服电话 execute 具有能力、方法和路径的MCP工具
  2. Janee查找服务配置,解密真实密钥
  3. 使用密钥向真实的API发出HTTP请求
  4. 日志:时间戳、服务、方法、路径、状态
  5. 向代理返回响应

特工从不碰真正的钥匙。

📐 深潜: 看 架构和安全模型 查看详细的图表、威胁模型以及与替代方案的比较。

______________________________________________________________________

安全

  • 加密:使用AES-256-GCM存储的密钥
  • 代理人身份:源自 clientInfo.name 在MCP初始化握手中--不需要自定义标头
  • 代理隔离:每个代理都有自己的会话,具有隔离的身份(HTTP传输为每个会话创建服务器+传输)
  • 访问控制:按能力 allowedAgents 白名单+服务器范围 defaultAccess 政策
  • 凭证范围:代理创建的凭据默认为 agent-only
  • 审核日志:记录到的每个请求 ~/.janee/logs/
  • 会话:有时限,可撤销
  • 紧急停止开关: janee revoke 或删除配置

______________________________________________________________________

码头工人

将Janee作为容器运行——不需要本地Node.js:

# Build
docker build -t janee .

# Run in HTTP mode
docker run -d -p 3000:3000 \
  -v ~/.janee:/root/.janee:ro \
  janee --transport http --port 3000 --host 0.0.0.0

或者使用Docker Compose:

mkdir -p config && cp ~/.janee/config.yaml config/
docker compose up -d

有关带Docker的Claude Desktop,请参阅 .

______________________________________________________________________

贡献

我们欢迎捐款!请阅读 贡献.md 在提交PR之前,它包括所需的PR清单(测试、变更日志、版本升级等)。

______________________________________________________________________

许可证

麻省理工学院-由 真实有用有限责任公司

______________________________________________________________________

停止向AI代理提供密钥。开始控制访问。 🔐

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

密钥管理TypeScript本地部署AI安全零信任架构API网关审计日志

支持客户端

Claude DesktopClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Create Gh App

MCP World · 本页

5stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Create Gh App 怎么安装?

公开资料给出的安装命令是 npx @true-and-useful/create-gh-app create my-agent --owner @me,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Create Gh App 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Create Gh App 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Create Gh App 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Create Gh App 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP