Business Card MCP
AI-native, self-hostable private business card database for ChatGPT using Remote MCP with Firebase authentication and Cloudflare storage.
README
Business Card MCP
AI-native、可自架的私人名片庫。使用者在 ChatGPT 上傳名片,由既有多模態模型辨識並確認;Remote MCP 負責驗證、私人儲存、搜尋、修改、封存與匯出,不額外呼叫模型 API。
功能
- ChatGPT Remote MCP:建立、搜尋、讀取、更新、封存及匯出名片
- 私人管理網站:Google 登入、卡片牆/條列檢視、受保護縮圖
- D1 FTS5:姓名、公司、職稱、電話、Email、地址、標籤、場合及備註搜尋
- R2:私人 Markdown 與 480px WebP 縮圖
- KV:每位使用者獨立的
bc_Connector Key - 寫入後回傳可點擊的名片確認頁
- 縮圖為建立名片的必填欄位,避免產生無圖資料
目前是關鍵字全文搜尋,不是 embedding/向量語意搜尋。
架構
ChatGPT / Claude
│ Remote MCP
▼
Cloudflare Worker ── Firebase ID token 驗證
├── D1:聯絡人與 FTS5
├── R2:Markdown、WebP 縮圖
├── KV:MCP Key
└── Static Assets:私人管理網站
原始名片圖片預設不保存。GitHub repo 只包含程式碼、migration 與合成測試資料,不包含任何使用者聯絡人。
MCP Tools
| Tool | 用途 |
|---|---|
create_contact |
寫入使用者已確認的資料、Markdown 與必要縮圖 |
search_contacts |
搜尋自己的名片 |
get_contact |
取得完整名片與確認頁連結 |
update_contact |
更新欄位、標籤與備註 |
archive_contact |
封存名片,不永久刪除 |
export_contact |
匯出 Markdown 或 vCard |
部署需求
- Node.js 20+
- Cloudflare 帳號
- Firebase 專案,啟用 Google 登入
- Wrangler CLI 登入正確的 Cloudflare 帳號
部署
1. 安裝與建立本機設定
npm install
cp wrangler.example.jsonc wrangler.jsonc
cp public/config.example.js public/config.js
wrangler.jsonc 與 public/config.js 已被 Git 忽略,請勿提交 production IDs 或 Firebase 設定。
2. 建立 Cloudflare 資源
npx wrangler d1 create business-card-mcp
npx wrangler r2 bucket create business-card-mcp-assets
npx wrangler kv namespace create CARD_KEYS
把 Cloudflare 回傳的 account、D1 與 KV ID 填入 wrangler.jsonc,並設定:
PUBLIC_BASE_URLFIREBASE_PROJECT_ID- R2 bucket 名稱
再把 Firebase Web App 的 apiKey、authDomain、projectId 填入 public/config.js。
3. Migration、測試與部署
npx wrangler types
npm run typecheck
npm test
npx wrangler d1 migrations apply business-card-mcp --remote
npx wrangler deploy
部署後,把 Workers 網域加入 Firebase Authentication 的 Authorized domains。
4. 連接 ChatGPT
- 開啟部署後的網站並以 Google 登入。
- 產生名片 MCP Key。
- 複製完整 Connector URL;URL 內含 Key,視同密碼。
- 在 ChatGPT 開發人員模式新增 Remote MCP。
- 掃描工具後,以「使用名片 MCP 搜尋某某人」測試。
本機開發
npm run migrate:local
npm run dev
健康檢查:GET /healthz
Remote MCP:POST /mcp
安全與隱私
- 所有名片查詢都以 Firebase UID 或 MCP Key 擁有者限制。
- R2 bucket 維持私人;縮圖由登入保護的 API 提供。
- MCP 同時接受 Bearer token 與 Connector URL query token。
- 完整 Key 只在建立當下顯示,支援個別撤銷。
- 請勿提交
.env、.dev.vars、wrangler.jsonc或public/config.js。
安全問題請依 SECURITY.md 私下回報,不要建立公開 Issue。
驗證
npm test
npm run typecheck
npm audit --omit=dev
專案目前有單元、MCP protocol、Web API、權限、儲存及 UI 合約測試;coverage threshold 為 lines/functions/statements 80%、branches 75%。
已知限制
- 尚未提供向量語意搜尋。
- 既有無圖名片尚未提供補圖介面;新資料已強制縮圖必填。
- 永久刪除預設不開放,使用封存避免誤刪。
License
Apache-2.0。詳見 LICENSE。
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。