Trusty Squire
Signs up to SaaS platforms and vaults the credential so you can focus on coding
README
<p align="center"> <a href="https://trustysquire.ai" target="_blank" rel="noopener noreferrer"> <img width="84" height="84" src="https://trustysquire.ai/logo.svg" alt="Trusty Squire" /> </a> </p>
<h1 align="center">Trusty Squire</h1>
<p align="center"> <a href="https://www.npmjs.com/package/@trusty-squire/mcp"><img src="https://img.shields.io/npm/v/@trusty-squire/mcp?logo=npm&color=cb3837" alt="npm version" /></a> <a href="https://github.com/Trusty-Squire/trusty-squire/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Trusty-Squire/trusty-squire/ci.yml?branch=main&label=CI&logo=github" alt="CI status" /></a> <a href="https://github.com/Trusty-Squire/trusty-squire/stargazers"><img src="https://img.shields.io/github/stars/Trusty-Squire/trusty-squire?logo=github&color=eac54f" alt="GitHub stars" /></a> <a href="https://github.com/Trusty-Squire/trusty-squire/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license" /></a> </p>
<p align="center"><strong>Never touch a signup form or paste an API key again.</strong></p>
Trusty Squire plugs into your AI coding agent — Claude Code, Cursor, Codex — and takes over the credential grunt work that slows you down and leaks secrets. Your agent signs up for the services your project needs, locks every key in a vault it never leaves, and drives the multi-step setup behind any login. You ship at your agent's speed; your secrets stay put.
Why developers run it
- Your agent handles signups & SaaS provisioning. Ask for a service — your squire creates the account and brings back the API key. No fifteen-tab signup detour.
- No secret ever leaves the vault. Stop scattering keys across
.envfiles and cloud secret stores. Keys go in write-only; your code uses them through a proxy that injects the value server-side and never hands it back — so there's nothing to leak. - Operate anything behind a login. Complete complex tasks hidden behind auth walls with one prompt — wire up OAuth across consoles, configure webhooks, stand up projects. Your squire does the click-work; the secret never crosses into chat.
The store-vs-act difference: everyone else stores the keys you already have. Your squire gets them, wires them up, and rotates them.
What you can ask your squire
Plain-English asks. Your squire drives the browser, signs in with your identity, and never hands a raw secret back to the agent.
-
"Sign me up for Resend and vault the API key." An account is created — or signed in with your own Google/GitHub — and the key is extracted, encrypted, and stored. You never see it, and neither does the model.
-
"Stand up my whole stack." Resend, Sentry, PostHog, a Postgres host — provisioned in one ask, every key vaulted, your app handed one scoped, revocable grant per service. Day-one setup, zero keys on the box.
-
"Add Google OAuth to my app." A multi-step setup driven across consoles — GCP → OAuth Playground — where a secret captured in one console is sealed in-session and typed into the next. The client secret never touches the agent.
-
"Give my deployed app a scoped, revocable OpenAI key." An egress grant: your code calls the provider through a proxy that injects the real key server-side. The raw secret never leaves the vault — your app holds a downgraded, rate-limited, instantly-revocable token instead.
-
"My local agent should hold no keys." Point a CLI loop's base URL at the grant; it makes real provider calls holding nothing. The key stays vaulted, every call metered, the leash cut whenever you want.
-
"Give the contractor a key for a week." A rate-limited, spend-capped, revocable grant instead of your real key. They get a leash; you keep the secret and revoke on the spot when they're done.
-
"Rotate my Stripe key everywhere it's used." Rotated in the vault and picked up transparently by every grant and proxied call — no redeploy, no hunting through configs. Honest about the copies you've pasted into systems we can't reach.
-
"Something leaked — kill that key now." Revoke the grant instantly; the next call through it is rejected and the app fails closed. Re-mint a fresh grant to recover — no key rotation required.
-
"Show me everything that touched my keys." The audit ledger — every store, retrieval, rotation, and proxied call, newest first, never a secret value — plus a nudge on anything overdue for rotation.
-
"Move me off SendGrid with zero downtime." Sign up for the new vendor, vault the key, dual-send through both during cutover, then revoke the old grant when you've switched. No redeploy, no outage.
Install
Trusty Squire runs as a local MCP server. Point your coding agent at it:
npx @trusty-squire/mcp connect
That issues your account, signs you in (Google/GitHub), and writes the MCP config for your agent. Then ask your agent to do any of the above in plain language. Full install notes (Claude Code, Cursor, Codex, Goose, Cline, Continue) live in the npm package README.
How it works
acquire ───▶ store ───▶ use (scoped) ───▶ observe ───▶ rotate
sign up & write-only egress grant audit best-attempt,
set up vault (injecting proxy) ledger honest failures
The raw secret is never handed back to the agent — it's stored write-only and only ever injected server-side by the proxy. A successful run is captured as a learned skill and published to the registry, so the next person provisioning that service replays it in ~30s instead of the agent re-figuring it out.
Development
git clone https://github.com/Trusty-Squire/trusty-squire.git
cd trusty-squire
./scripts/bootstrap.sh # workspace deps + local Postgres/Redis via Docker
After it finishes, pnpm typecheck and pnpm test should pass cleanly.
Stop services: docker compose -f docker-compose.dev.yml down · reset data: add -v.
Requirements: Node 20.11.0 (.nvmrc), pnpm 8.15+, Docker + Docker Compose.
Repository structure
trusty-squire/
├── apps/
│ ├── api/ Backend API — accounts, OAuth, machine tokens, LLM proxy, inbox, vault, billing
│ ├── mcp/ The MCP server coding agents install; bundles the universal signup bot + operator surface
│ ├── registry/ Skill registry — signed learned-skill recipes + the housekeeper backplane
│ └── web/ Public site + vault UI (trustysquire.ai)
└── packages/
├── vault/ Encrypted credential vault (envelope encryption, per-credential KEK, audit log)
├── inbox/ Inbound email — alias allocation, MIME parsing, OTP/link extraction
└── skill-schema/ Learned-skill wire contract (Zod), shared by the mcp client and the registry server
See docs/ARCHITECTURE.md for the canonical architecture
and security model. The rest of docs/ is limited to current public
runbooks and product notes.
Conventions
- TypeScript strict (
noUncheckedIndexedAccess,exactOptionalPropertyTypes); noany. - ESM with
.jsimport extensions. Tests in__tests__/next to source (vitest). - Comments explain why, not what.
License
MIT © Trusty Squire
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。