Skip to main content
Glama
ai-cooperation

Business Card MCP

Business Card MCP

AI-native, самостоятельно размещаемая частная библиотека визитных карточек. Пользователь загружает визитную карточку в ChatGPT, её распознаёт и подтверждает существующая мультимодальная модель; Remote MCP отвечает за проверку, приватное хранение, поиск, изменение, архивирование и экспорт, без дополнительных вызовов API моделей.

Возможности

  • ChatGPT Remote MCP: создание, поиск, чтение, обновление, архивирование и экспорт визитных карточек

  • Приватный сайт управления: вход по собственному паролю, просмотр стеной карточек/списком, защищённые миниатюры

  • D1 FTS5: поиск по имени, компании, должности, телефону, email, адресу, тегам, случаю и примечаниям

  • R2: приватный Markdown и миниатюры 480px WebP

  • KV: отдельный bc_ Connector Key для каждого пользователя

  • После записи возвращается кликабельная страница подтверждения визитной карточки

  • Миниатюра — обязательное поле при создании визитной карточки, чтобы не появлялись данные без изображения

Сейчас это полнотекстовый поиск по ключевым словам, а не embedding/векторный семантический поиск.

Related MCP server: DuckPond MCP Server

Архитектура

ChatGPT / Claude
       │ Remote MCP
       ▼
Cloudflare Worker ── WEB_PASSWORD 或可選 Cloudflare Access JWT 驗證
       ├── D1:聯絡人與 FTS5
       ├── R2:Markdown、WebP 縮圖
       ├── KV:MCP Key
       └── Static Assets:私人管理網站

Исходные изображения визитных карточек по умолчанию не сохраняются. Репозиторий GitHub содержит только код, миграции и синтетические тестовые данные, без контактов пользователей.

MCP Tools

Tool

Назначение

create_contact

Запись подтверждённых пользователем данных, Markdown и обязательной миниатюры

search_contacts

Поиск своих визитных карточек

get_contact

Получение полной визитной карточки и ссылки на страницу подтверждения

update_contact

Обновление полей, тегов и примечаний

archive_contact

Архивация визитной карточки, без окончательного удаления

export_contact

Экспорт в Markdown или vCard

Требования к развёртыванию

  • Node.js 20+

  • Аккаунт Cloudflare

  • Wrangler CLI, выполнивший вход в правильный аккаунт Cloudflare

Развёртывание

1. Установка и создание локальной конфигурации

npm install
cp public/config.example.js public/config.js

wrangler.jsonc поставляется с репозиторием в виде заглушки с нулевыми значениями (стандарт SmallGreen требует статически определяемых объявлений ресурсов); на следующем шаге впишите реальные ID; после заполнения рекомендуется выполнить git update-index --skip-worktree wrangler.jsonc, чтобы реальные ID не попали в коммит. public/config.js игнорируется Git; для веб-аутентификации фронтенд-конфигурация не нужна.

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_URL

  • имя R2 bucket

Затем задайте собственный пароль для входа на сайт; пароль передаётся только через Wrangler secret и не записывается в wrangler.jsonc:

npx wrangler secret put WEB_PASSWORD

CF_ACCESS_TEAM_DOMAIN и CF_ACCESS_AUD по умолчанию можно оставить пустыми; пустое значение означает вход на сайт по паролю, без привязки карты.

3. Необязательное обновление: Cloudflare Access email OTP

Если хотите, чтобы Cloudflare выполнял email One-Time PIN на границе сети, настройте этот раздел. Онбординг Zero Trust может потребовать привязки кредитной карты; сам бесплатный тариф — $0.

  1. Создайте в Cloudflare Zero Trust self-hosted Access application, защищающую домен этого Worker.

  2. Включите для входа One-Time PIN и ограничьте круг входящих политикой по email или домену email.

  3. Убедитесь, что браузерный UI и /api/* находятся под защитой Access.

  4. Исключите путь /mcp из требования входа Access, например с помощью path-based Bypass policy или отдельного правила путей без Access. /mcp по-прежнему аутентифицируется ключом bc_ MCP; ChatGPT/Claude не передают cookie Cloudflare Access.

  5. Впишите Audience tag этого Access application в CF_ACCESS_AUD, а Zero Trust team domain — в CF_ACCESS_TEAM_DOMAIN, затем переразверните. После этого веб-запросы, прошедшие Access, пропускаются автоматически, без запроса собственного пароля.

4. Миграция, тестирование и развёртывание

npx wrangler types
npm run typecheck
npm test
npx wrangler d1 migrations apply business-card-mcp --remote
npx wrangler deploy

5. Подключение ChatGPT

  1. Откройте развёрнутый сайт и введите собственный пароль, заданный в WEB_PASSWORD; если выполнено обновление до Cloudflare Access, проверка выполняется по email One-Time PIN.

  2. Сгенерируйте MCP Key визитных карточек.

  3. Скопируйте полный Connector URL; URL содержит Key и считается паролем.

  4. В режиме разработчика ChatGPT добавьте Remote MCP.

  5. После сканирования инструментов протестируйте командой «используй MCP визитных карточек, чтобы найти такого-то».

Локальная разработка

npm run migrate:local
npm run dev

Проверка работоспособности: GET /healthz

Remote MCP: POST /mcp

Безопасность и конфиденциальность

  • Все запросы визитных карточек ограничены вошедшим по паролю owner, sub из Cloudflare Access или владельцем MCP Key.

  • R2 bucket остаётся приватным; миниатюры отдаёт API, защищённый входом.

  • MCP принимает и Bearer token, и query token из Connector URL.

  • Полный 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-контрактов; порог покрытия — lines/functions/statements 80%, branches 75%.

Известные ограничения

  • Векторный семантический поиск пока не реализован.

  • Для существующих визитных карточек без изображения интерфейс добавления изображения пока не предусмотрен; для новых данных миниатюра уже обязательна.

  • Окончательное удаление по умолчанию не открыто; используйте архивацию, чтобы избежать случайного удаления.

Лицензия

Apache-2.0. Подробнее см. LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Self-hosted semantic memory layer for Claude and MCP-compatible AI clients. Store notes, search by meaning not keywords, and recall relevant context automatically across sessions. Runs free on Cloudflare Workers, D1, Vectorize, and Workers AI
    2
    750
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Self-hosted personal knowledge graph running on Cloudflare, connecting to Claude as an MCP server for capturing atomic concepts and cross-domain analogies.
    21
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Self-hosted MCP server connecting AI assistants like Claude to Anki for AI-assisted flashcard generation and sync. It supports multi-tenant, authenticated operations to add, search, and analyze cards in real Anki collections.
    AGPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ai-cooperation/business-card-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server