Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Local-first MCP credential broker: agents use gated APIs through scoped, audited requests without ever seeing the secret.
翻訳待ち
Loading the full README.
Read the full README ↗A local-first MCP server that lets AI agents use gated APIs without ever holding the keys.
The agent asks the broker to make a request. The broker canonicalises the URL, checks a declarative per-operation policy, verifies any required approval at execution time, injects the secret at the last moment, calls the upstream, redacts and filters the response, and writes a content-free audit record. The secret lives with the broker process and is never relayed to the agent in any representation the broker creates: raw, hex, Base64, base64url, percent-encoded, form-encoded, or Unicode-normalised. An upstream that transforms a secret with a one-way function of its own defeats string matching; scoped operations and metadata-only responses are the defence there, and SECURITY.md states this boundary honestly.
Early release (0.x). Published to npm with provenance from GitHub Actions. Expect the policy format and tools to change before 1.0.
Needs Node 22 or 24. Keys are stored in the OS keychain: Windows Credential
Manager, the macOS login keychain, or the Secret Service on Linux
(GNOME Keyring or KWallet through secret-tool). Without one, set each
credential's env_var instead.
Open the key manager. It prints a local link and opens it in your browser.
npx -y -p @sarutobi-sasuke/credential-broker-mcp credential-broker-keys
Run through npx, the policy, audit log and approvals live in
~/.credential-broker (%USERPROFILE%\.credential-broker on Windows), so
they survive npm cache clean-ups and upgrades. Set BROKER_HOME, or
BROKER_POLICY_FILE, BROKER_AUDIT_FILE and BROKER_APPROVALS_FILE, to
put them somewhere else. From a clone of this repo, run npm ci then
npm run keys; the files then stay in the checkout.
Add one key. Open New key. Use the short name github, base URL
https://api.github.com, paste a token, tick the agent that may use it
(or add an identity such as codex), then press Add key. The key goes
into your OS keychain and the policy file gets a read-only grant. Press
Test on the card to prove the key works.
Connect your MCP client. Go to Settings → Connect an MCP client,
select Codex or Claude Code, then pick the agent. For Codex, paste
the copied TOML into ~/.codex/config.toml or update the existing
credential-broker entry. For Claude Code, run the copied command.
Restart your client. Both options use local stdio and require Node on PATH.
The Codex configuration also applies to local sessions in the ChatGPT
desktop app on the same host. If you use environment-backed credentials,
list the variable names in env_vars under the Codex server table.
See the Codex MCP configuration guide.
Make a granted call and a denied call. In your client:
Use
broker_explain_requestfor a GET tohttps://api.github.com/repos/octocat/hello-worldwith credentialgithub.
It answers allowed and names the deciding rule. Now ask the same with
DELETE: denied, no grant. Then ask for broker_read on the GET and
you get the response body with the token redacted wherever it might
appear. The audit log (data/audit.jsonl) now holds the who, what and
outcome, never the content.
Pause and resume. Press Pause all access in the page header and
type PAUSE. The agent's next call is refused with a message not to
retry. Press Resume all access and type RESUME. From a terminal:
npm run pause -- on and npm run pause -- off.
The broker's native connection is local stdio. For a private ChatGPT integration, an eligible workspace can connect through OpenAI Secure MCP Tunnel, with the tunnel client launching the broker under a dedicated policy identity. Run the tunnel client under the OS account that owns the keys and keep the key manager on loopback. This connection needs its own workspace setup and verification. Public distribution as a local ChatGPT desktop plugin is limited to approved partners.
Giving an agent an API key gives it everything the key can do, for as long as the key lives, invisibly. Most agent tasks need a fraction of that: read these repos, query this endpoint, GET but never DELETE. This broker turns "here is my key" into "here is a scoped, observable capability":
evaluate(). What the broker reports and what it
enforces cannot drift apart.This is the beginning of the README. Read the rest at the original. Read the full README ↗