
Relay
io.github.vishnumuthyalu由 GitHub 帳號 vishnumuthyalu 發布v1.0.1更新於 Oct 24, 2026
Turn GitHub pushes into plain-English client update emails. Map repos to clients and review digests.
概覽
Relay 把 GitHub 推送轉成淺顯易懂的客戶更新郵件,助理可透過託管 MCP 端點把儲存庫對應到客戶並檢視摘要。
- 可以做什麼
- 把儲存庫對應到客戶,並建立、更新或刪除這些對應
- 檢視摘要歷史紀錄與本月用量相對於方案上限
- 寄送範例摘要給已確認的客戶
- 登入 GitHub 後,使用與 JSON API 共用的依安裝執行個體劃分操作
- 適用情境
- 適合自由工作者與小型代理公司:希望客戶收到儲存庫推送的簡短、不含術語摘要,並偏好透過對話讓助理完成客戶對應的設定與檢視,而不是使用網頁儀表板。
- 執行需求
- 遠端 MCP 端點 relay-vishnu.fly.dev/mcp,需透過 GitHub 進行 OAuth 2.1 登入。須在儲存庫上安裝 Relay GitHub App,且每位客戶須先以電子郵件確認才會收到摘要。自架需要 Node.js 22.12+、含 Postgres 的 Docker、GitHub App、Anthropic API 金鑰與 Resend API 金鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Relay,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.vishnumuthyalu%2Frelay/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"relay": {
"type": "http",
"url": "https://relay-vishnu.fly.dev/mcp"
}
}
}README
Relay
Plain-English client updates from every GitHub push
Live at relay-vishnu.fly.dev. Install the GitHub App, then add https://relay-vishnu.fly.dev/mcp to your MCP client, find Relay in the MCP Registry, or install the extension from the VS Code Marketplace or Open VSX.
Relay is a GitHub App for freelancers and agencies. Install it on your repositories, map each one to a client, and every push to the main branch becomes a short, jargon-free email summary written by Claude. Clients confirm by email before anything is sent, and every digest has a one-click unsubscribe.
How it works
- GitHub App: one install connects any number of repositories, and no personal access tokens are needed (ADR 002).
- Multi-tenant: every row belongs to an installation, users are authorized by the installations GitHub says they can access, and uninstalling deletes that tenant's data.
- Postgres + pg-boss: the webhook replies 202 immediately, and a separate worker sends digests with retries and backoff (ADR 003).
- Consent built in: double opt-in confirmation, signed one-click unsubscribe (RFC 8058), and confirm/unsubscribe pages that only change state on POST.
- Cost controls: per-installation monthly cap on Claude-written digests (plain digests past it), token usage tracking, and a
CLAUDE_ENABLEDkill switch. - Spec-first: OpenAPI 3.1 and JSON Schema contracts enforced at runtime and in CI.
- Remote MCP server with OAuth 2.1: add one URL to Claude Code, Claude Desktop, VS Code or Cursor, sign in with GitHub, and manage Relay by chatting (docs/mcp.md, ADR 004, ADR 005).
- Dashboard: a small server-rendered UI at
/dashboardfor people who don't use MCP. - Richer summaries (opt-in): merged PR descriptions from GitHub, and issue details from the tenant's ticket tracker through Anthropic's MCP connector, with read-only tool allowlists and fallbacks (docs/summaries.md).
Running locally
Prerequisites: Node.js 22.12+, Docker (for Postgres), a GitHub App, an Anthropic API key and a Resend API key.
GitHub must reach your machine for webhooks and sign-in, so run a tunnel (ngrok http 3000) and use its URL as PUBLIC_URL and in the app settings.
Then:
- Open
PUBLIC_URL/installand install the app on a repository. - Open
PUBLIC_URL/dashboardand sign in with GitHub. - Map the repository to a client in the dashboard, with the API (below) or with the MCP tools. The client receives a confirmation email.
- After the client confirms, push to the default branch, or run
node simulate-webhook.js.
To run everything in containers instead: docker compose up --build.
Deploying
One image, two processes (web, worker), one Postgres. The hosted instance runs on Fly.io (one web and one worker machine) with Supabase Postgres; migrations run as Fly's release command before each deploy. See docs/deploy.md. Tags drive releases: v* deploys the backend and updates the MCP Registry entry, and ext-v* publishes the VS Code extension.
Configuration
All settings are environment variables; .env.example lists and explains each one. The web and worker processes refuse to start if a required value is missing.
API
The JSON API is described in spec/openapi.yaml and validated at runtime. It uses the session cookie from Sign in with GitHub.
Other routes: POST /webhook/github (GitHub App deliveries), /mcp (remote MCP), /oauth/* and /.well-known/* (OAuth for MCP clients), /dashboard, /auth/login, /auth/callback, POST /auth/logout, /install, /confirm, /unsubscribe, /privacy, /health, /ready.
MCP server
Remote: add https://relay-vishnu.fly.dev/mcp to your MCP client (or https://<host>/mcp for your own deployment). For example:
Local, against your own database:
Client setup is in docs/mcp.md, and the tool contract is in spec/mcp-tools.md.
Testing
Tests run against a real Postgres: each test file gets its own schema, so suites run in parallel. docker compose up -d db creates the relay_test database.
CI runs the same steps on Node 22 and 24 with a Postgres service container, and fails if coverage drops (npm run test:coverage).
Project structure
Security
- Webhooks are verified with HMAC-SHA256 (constant-time) before anything else reads the body.
- Delivery IDs are claimed atomically, so duplicates and redeliveries never send twice.
- Sessions are signed
httpOnlycookies withSameSite=Lax. The JSON API only accepts JSON bodies, which blocks cross-site form posts. - Tenant data is always queried by installation, and other tenants' installations return 404.
- Email links are HMAC-signed and bound to the current address. Changing a client's email invalidates old links.
- Everything rendered into email or pages is HTML-escaped. Commit text is passed to Claude as untrusted data, and replies are schema-validated.
- No GitHub tokens are stored.
- MCP access tokens are bound to
PUBLIC_URL/mcp(RFC 8707). PKCE is mandatory, authorization codes are single-use, refresh tokens rotate, and both are stored only as hashes. The/mcpendpoint checks the Host header against DNS rebinding.
License
MIT
來源:README.md,提交 c454b50
工具
0版本歷史
1- v1.0.1最新Oct 23, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分