mcpField
A
a2me-mcp-server

a2me-mcp-server

リモート
a2me.appソーシャルメディア09 週間前に更新
リポジトリ公式サイト

a2me-mcp-server について

a2me-mcp-serverは、プライバシーに配慮して情報を限定したA2Meの家族情報を、読み取り専用でAIアシスタントに提供します。ユーザー自身の家族に範囲を限定し、親族や日付、活動の確認、家族へのメッセージ作成を支援します。

主な機能

  1. 01読み取り専用の家族情報ツール
  2. 02家族メンバーと続柄の検索
  3. 03今後の日付とイベント情報
  4. 04最近の活動とメモリー検索
  5. 05カードやメッセージ用プロンプト
  6. 06ChatGPTの家族情報インラインウィジェット

活用シーン

  1. 01親族の誕生日を調べる
  2. 02家族の近況を把握する
  3. 03誕生日カードやメッセージを作成する
  4. 04旅行の詳細や未回答のストーリー質問を確認する

MCP 対応

このMCPサーバーは、ローカルではstdio、リモートではStreamable HTTPを介して家族情報ツールとプロンプトを提供します。OAuthでサインインしたクライアントは、ホストされたエンドポイントから読み取り専用データにアクセスできます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.a2me.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

A2Me MCP Server

v1 · 読み取り専用。 A2Me ファミリーソーシャルプラットフォームの読み取り専用・プライバシーに配慮した形で匿名化された家族コンテキストツールを公開する Model Context Protocol サーバーです。Claude、ChatGPT、KAI などのアシスタントが、「お母さんの誕生日はいつ?」といった質問に答えたり、おばあちゃんへのメッセージ作成を手伝ったりできます。利用できる情報は、ご自身の家族に限定されます。

https://mcp.a2me.app/mcp でホストされており、A2Me のConnect a2me機能で本番利用されています。

AI アシスタントから接続する

Claude または ChatGPT で、次の URL を使ってカスタムコネクターを追加します。

https://mcp.a2me.app/mcp

OAuth を通じて A2Me にサインインし、読み取り専用アクセスを許可します。その後、アシスタントはアカウントに限定された、家族に関するコンテキストを利用できるようになります。

ローカルで実行する

npm install
npm run dev        # stdio transport, mock data by default

デフォルトでは stdio(ローカル MCP クライアント用)で実行され、ホスト環境へのデプロイ向けにリモート HTTP トランスポート(MCP_TRANSPORT=http)もサポートしています。デフォルトではモックデータ(A2ME_USE_MOCK=true)を使用します。実際の API を呼び出すには、A2ME_API_URL と A2ME_USE_MOCK=false を設定してください。.env.example を参照してください。

利用可能なツール

ツール説明
get_family_members関係性のラベルとともに、ユーザーの家族メンバーを返します
get_upcoming_family_dates今後 N 日間の誕生日、記念日、イベントを返します
get_recent_family_activity最近の投稿、写真、動画、バースデーカードを返します
get_person_profile家族メンバーのプロフィール、興味・関心、活動の概要を返します
get_relationship_between_people2 人の家族メンバーの関係性を返します
get_birthday_card_contextバースデーカードの作成に役立つコンテキスト(思い出、興味・関心、トーン)を返します
find_family_member名前または関係性(「母」「祖母」など)であいまい検索します
answer_family_date_question日付に関する自然言語の質問(「お母さんの誕生日はいつ?」など)に答えます
get_message_context_for_person提案を含む、メッセージ作成に役立つコンテキストを返します
get_upcoming_eventsユーザーの出欠回答状況と回答数を含む、今後のイベントを返します
get_trip_overview旅行の日程、参加者一覧、移動の詳細(フライト/宿泊先)、旅程を返します
get_life_story家族メンバーの人生の物語の章(または最近の物語への回答)を返します
get_unanswered_story_questions未回答の物語に関する質問を返します。訪問時のインタビュー準備に役立ちます
get_person_wishlistギフト選びに役立つ、家族メンバーのウィッシュリストを返します
search_family_memories最近の家族の投稿や思い出をキーワード検索します
whats_new最近の投稿と今後の予定をまとめた近況情報を返します

プロンプト

サーバーはプロンプトも公開しています。これは、Claude ではコネクターコマンドとして、ChatGPT では候補として表示されるワンクリックで開始できる入口です。ツール名を知らなくても、ユーザーはすぐに活用できます。各プロンプトは、上記の読み取り専用ツールを使用するようアシスタントを導きます。

プロンプト機能
write_birthday_cardその人の背景に基づいた誕生日カードの文案を作成します
write_family_messageあらゆる場面や口調に合わせたメッセージの文案を作成します
family_catch_up家族の最近の出来事を要約します
upcoming_family_dates近日中の誕生日や記念日を提案とともに一覧表示します
about_person家族の一員について、関係性を含めて温かみのある要約を作成します

これらのプロンプトの person 引数は、入力中に家族名簿から自動補完されます(名前と続柄)。MCP の引数補完機能を家族向けに限定して使用します。詳しくは、src/prompts/index.ts と src/completions.ts を参照してください。

シナリオ例

  1. 「妹の誕生日カードを書くのを手伝って」

    • find_family_member → 「妹」に該当する Sarah Walker を特定します
    • get_birthday_card_context → 趣味(絵画、ハイキング、コーヒー)と口調の提案を返します
  2. 「おばあちゃんの誕生日はいつ?」

    • answer_family_date_question → Margaret Walker の誕生日(11月8日)を返します
  3. 「家族に最近何があった?」

    • get_recent_family_activity → 最近の投稿、写真、イベントを返します
  4. 「父へのお礼のメッセージを書くのを手伝って」

    • get_message_context_for_person → Robert Walker の背景、趣味、提案を返します
  5. 「家族には誰がいる?」

    • get_family_members → 続柄とともに家族全員を返します
  6. 「今後、どんなイベントがある?」

    • get_upcoming_family_dates → 近日中の誕生日、記念日、イベントを返します

アーキテクチャ

┌─────────────────────────────────────────────────────────┐
│                    MCP Client (LLM)                       │
│              (Claude, ChatGPT, KAI, etc.)                │
└───────────────────────┬─────────────────────────────────┘
                        │ stdio (MCP Protocol)
┌───────────────────────▼─────────────────────────────────┐
│                  A2Me MCP Server                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │              Tool Registry (16 tools)             │    │
│  └──────────────────────┬──────────────────────────┘    │
│                         │                                │
│  ┌──────────────────────▼──────────────────────────┐    │
│  │         Family Context Resolver                   │    │
│  │   (fuzzy matching, relationship resolution)       │    │
│  └──────────────────────┬──────────────────────────┘    │
│                         │                                │
│  ┌──────────────────────▼──────────────────────────┐    │
│  │            A2Me API Client                        │    │
│  │   (currently mock, future: real HTTP calls)       │    │
│  └──────────────────────┬──────────────────────────┘    │
│                         │                                │
│  ┌──────────────────────▼──────────────────────────┐    │
│  │            Auth Context                           │    │
│  │   (currently mock, future: OAuth/Firebase)        │    │
│  └─────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────┘
                        │ (future)
┌───────────────────────▼─────────────────────────────────┐
│                   A2Me REST API                           │
│               (kinnectd-api service)                     │
└─────────────────────────────────────────────────────────┘

認証

現在はモック認証を使用しており、ローカル開発では常に認証済みユーザー(「Alex Walker」)を返します。

今後の本番環境との連携:

  • A2Me API を介した OAuth2/Firebase トークンの検証
  • MCP セッションコンテキストまたは環境変数を介したトークンの受け渡し
  • ユーザーごとのデータ分離(ユーザーには自分の家族の情報のみが表示されます)

今後必要となる A2Me API エンドポイント

メソッドエンドポイント説明
GET/family/membersユーザーの家族の一覧を取得します
GET/family/dates/upcomingフィルターを指定して近日中の日付を取得します
GET/family/activity/recent家族の最近のアクティビティフィードを取得します
GET/people/{personId}/context安全なコンテキストを含む人物プロフィールを取得します
GET/relationships/path2人の間の続柄の経路を取得します
GET/birthday-cards/context/{personId}誕生日カードの文案作成に必要な背景情報を取得します

ChatGPT アプリのウィジェット

ChatGPT(Apps SDK)では、4 つのツールが通常の JSON の代わりに、インタラクティブなインラインウィジェットを表示します。

  • get_upcoming_family_dates → Upcoming family dates カード
  • get_family_members → Your family メンバー一覧
  • get_person_profile → Family member プロフィールカード
  • get_recent_family_activity → Recent family activity フィード

各ウィジェットは widgets/src/ にある小さな React バンドルで、npm run build:widgets によって dist-widgets/<name>.js|.css にビルドされます。サーバーはこれらを静的アセット(/widgets/...)として提供し、それぞれを ui://widget/<name>.html リソース(MIME text/html+skybridge)として公開します。対応するツールには、該当リソースを指す _meta["openai/outputTemplate"] が含まれます。ウィジェットは window.openai.toolOutput からツールの structuredContent を読み取り、表示します。他の MCP クライアント(Claude、KAI)はウィジェットを無視し、同じツールのテキスト出力を使用します。詳しくは src/widgets/registry.ts を参照してください。

開発

npm run dev            # Run the server with tsx (hot reload)
npm run build          # Compile server (tsc) + build widget bundles
npm run build:server   # Server only
npm run build:widgets  # Widget bundles only (-> dist-widgets/)
npm run test           # Run tests (incl. widget render tests)
npm run test:watch     # Watch mode
npm run lint           # ESLint
npm run format         # Prettier
npm run check          # Type check only

プライバシー設計

このサーバーは、プライバシーを最優先するように設計されています。

  • メールアドレス、電話番号、住所は一切返しません
  • 誕生日は月日だけを表示します(出生年は表示しません)
  • 財務情報や健康情報は扱いません
  • すべてのデータは、認証済みユーザー自身の家族に限定されます
  • 管理対象アカウント(子ども)には、追加の保護措置が適用されます

プライバシーポリシー

プライバシーポリシー: https://a2me.app/privacy

このコネクターは、OAuth 2.0 の「Connect A2Me」フローを通じて認証済みユーザーに代わり A2Me のデータにアクセスし、上記の A2Me プライバシーポリシーに従います。

  • 収集/アクセスする情報: 認証済みユーザー自身の家族に関する、読み取り専用の家族情報です。メンバーの名前、続柄、誕生日とイベントの月日、最近のアクティビティの概要が含まれます。メールアドレス、電話番号、住所、出生年、財務情報や健康情報は一切返しません。
  • 利用方法: 接続先の AI アシスタントに返され、セッション中にユーザーのリクエストに回答する目的にのみ使用されます。このコネクターは、このデータを使ってモデルをトレーニングせず、A2Me への書き込みも行いません。
  • 保存と保持: コネクターは家族データを保存しません。透明性の確保と不正利用の防止のため、アクセスメタデータ(タイムスタンプ、ツール名、呼び出したアシスタント、スコープ)を追記専用の監査ログに記録します。ユーザーは A2Me の Settings → Connected apps でこれを確認できます。
  • 第三者との共有: OAuth トークンは認証プロバイダー(Scalekit)を通じて発行・検証されます。ユーザーが明示的に接続した AI アシスタント以外の第三者と家族データを共有することはありません。
  • お問い合わせ先: [email protected] · セキュリティに関する報告は SECURITY.md をご覧ください。

技術スタック

  • ランタイム: Node.js 20+
  • 言語: TypeScript(厳格モード)
  • MCP SDK: @modelcontextprotocol/sdk
  • バリデーション: Zod
  • テスト: Vitest
  • トランスポート: Streamable HTTP(リモート/本番環境)および stdio(ローカル開発)

ライセンス

非公開 — Kinnectd / A2Me

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。