
Neutra
io.github.emokeo由 GitHub 帳號 emokeo 發布v0.2.0更新於 Nov 6, 2026
Two people's AI assistants find a meeting time without either seeing the other's calendar.
概覽
Neutra 是遠端 MCP 伺服器,讓兩人的 AI 助理在不查看彼此行事曆的情況下私下比對空閒時間並敲定會議時間。
- 可以做什麼
- 以本人的空閒時間與會議長度發起決策,回傳一組代碼與可轉傳的訊息
- 用該代碼與本人的空閒時間回覆他人的決策,配對成功時寄出日曆邀請
- 查詢決策狀態與配對到的會議時間,或取消自己發起的決策及其邀請
- 讀取自己送出的回覆
- 向開發者送出並查看功能請求
- 適用情境
- 適合兩人希望由各自的助理跨不同助理協調會議時間、同時維持彼此空閒時間私密的情況。對方沒有助理時,也可透過簡單的登入網頁回覆。
- 執行需求
- 遠端端點 neutra.day,以自訂連接器加入,無需本機安裝。需要 Google 登入,伺服器只使用你的姓名與電子郵件。雙方都需支援 MCP 的助理,或由回覆方改用瀏覽器頁面。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Neutra,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.emokeo%2Fneutra/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"neutra": {
"type": "http",
"url": "https://neutra.day/mcp"
}
}
}README
Neutra
A neutral place where people's AI assistants agree on things for them, without anyone seeing anyone else's data.
Today it does one thing: two people's assistants find a time to meet. Each assistant tells Neutra when its person is free. Neutra finds a common time and sends one calendar invite to both. Neither side ever sees the other's times.
It works across assistants: Anna can use Claude and Ben another assistant, as long as both support MCP connectors. Ben can also answer without an assistant: the message includes a link to a simple page where he signs in with Google and adds the times he's free.
Privacy, by design
- No AI on Neutra's side. Neutra is plain code that compares time ranges. Your times never go into an AI model of ours.
- Nobody sees anyone's times. Only the matched meeting time comes back. The other person's times are never returned, and the code is stored only as a hash.
- Times are deleted as soon as a decision is settled, at the latest after 14 days. The person answering never has their times stored at all.
- Retries can't map a calendar. The person answering gets at most 3 tries, and each answer must cover at least twice the meeting length, so nobody can probe your free time slot by slot.
- Data stays in the EU, in Cloudflare's EU jurisdiction.
- Checked by tests:
test/decisions.test.tsverifies that no times or codes appear in any response.
Details: privacy page.
Try it
- In Claude: Customize → Connectors → Add custom connector, URL
https://neutra.day/mcp, then Add. - Sign in with Google. Neutra uses only your name and email: to send the invite to the right address, and so that only you can answer.
- Ask: "Use Neutra to find an hour with Ben next week. I'm free Tuesday and Thursday, 18:00–21:00." Forward the message it gives you.
For agent builders
A remote MCP server with Google sign-in. Resources follow Google's AIPs: decisions/{decision} and decisions/{decision}/answers/{answer}.
Errors use google.rpc codes: NOT_FOUND, PERMISSION_DENIED, FAILED_PRECONDITION, INVALID_ARGUMENT, RESOURCE_EXHAUSTED (a daily or hourly limit was reached).
Running Neutra
Runs on Cloudflare Workers with D1, based on Cloudflare's remote-mcp-google-oauth template. Every push to main is type-checked, tested and deployed by GitHub Actions (.github/workflows/deploy.yml); migrations in migrations/ are applied before each deploy. Changes go through pull requests.
Setup (done once)
Cloudflare
- Account ID and the
MCP_RESOURCEaddress are inwrangler.jsonc. The domainneutra.dayis attached to the Worker as a Custom Domain in the Cloudflare dashboard. - API token: "Edit Cloudflare Workers" template plus D1: Edit.
- The D1 database (EU jurisdiction) and the
OAUTH_KVnamespace were created once withwrangler d1 create neutra --jurisdiction euandwrangler kv namespace create OAUTH_KV; their IDs are inwrangler.jsonc.
Google Cloud (project neutra)
- Google Auth Platform: audience External, publishing status In production (testing mode makes refresh tokens expire after 7 days). Branding: home page and privacy links above, authorized domain
neutra.day. - Web client with redirect URI
https://neutra.day/callback, used by both the connector sign-in and the browser answer page (addhttps://developers.google.com/oauthplaygroundonly while making a new inviter key, andhttp://localhost:8788/callbackfor local dev). - Google Calendar API and Gmail API enabled.
- Sign-in asks only for email and profile. While
ACCESS_MODEisallowlist, onlyALLOWED_EMAILScan sign in.
Inviter ([email protected])
- Refresh token with scopes
calendar.eventsandgmail.send, obtained via the OAuth 2.0 Playground using the web client's own credentials (steps indocs/RUNBOOK.md).
GitHub secrets (Settings → Secrets and variables → Actions)
Local development
npm install, copy .dev.vars.example to .dev.vars and fill it in, then npm run dev. Test with npx @modelcontextprotocol/inspector@latest against http://localhost:8788/mcp.
License
MIT, see LICENSE. Includes code from Cloudflare's MIT-licensed templates.
來源:README.md,提交 b082232
工具
0版本歷史
1- v0.2.0最新Nov 6, 2026
評分
已滿足適用檢查項的 75%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。