Skip to main content
Glama
Personal DB MCP Server

Personal DB MCP Server

by itoufo

Personal DB MCP Server

AIサービス横断で個人データをコンテキストとして提供する MCP サーバー。

なぜ必要か

AIに文章を書かせると、誰が書いても同じような出力になる。Personal DB は「自分」のデータ(経歴、スキル、価値観、エピソード、思考習慣など)を構造化して保持し、AIが動的に参照できるようにする。これにより、AIの出力に一貫した「自分らしさ」が乗る。

Related MCP server: Personal Context Technology MCP Server

ユースケース

AI のコンテキストとして使う(最も重要)

シーン

何が起きるか

質問への回答

「あなたの強みは?」→ DB のスキル・実績・エピソードから根拠付きで回答

文章・コンテンツ生成

ブログ、SNS投稿、提案書などに自分の価値観・トーン・実績が自然に反映される

執筆支援

小説・記事の著者としてのパーソナリティ(文体、思想、スタンス)を前提に載せる

チャットボット

自分の分身として応答するボットに、動的な個人データを注入

マルチエージェント

複数の AI エージェントが同じ「自分」のデータを参照して協調動作

キャリア支援

プロンプト

用途

generate_resume

対象ロール・企業に合わせた職務経歴書を生成

self_introduction

面接・カンファレンス・カジュアルなど場面に応じた自己紹介

skill_assessment

求人票 (JD) に対するスキルマッチ分析

interview_prep

想定質問 + STAR形式の回答案 + 逆質問案

gap_analysis

目標ロールとの差分分析 + 学習ロードマップ

story_finder

テーマ・コンピテンシーに合うエピソード検索

データメンテナンス

プロンプト

用途

data_collection

DB の空白を特定し、埋めるためのインタビュー質問を生成

セットアップ

環境変数

SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
PERSONAL_DB_API_KEY=          # マルチテナント時のみ

ローカル (stdio)

npm install && npm run build
node dist/index.js

Claude Code で使う

.mcp.json または ~/.claude.json に追加:

{
  "mcpServers": {
    "personal-db": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/personal-db-mcp/dist/index.js"],
      "env": {
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key"
      }
    }
  }
}

リモート (Vercel)

vercel deploy --prod

エンドポイント: https://your-app.vercel.app/mcp 認証: Authorization: Bearer <API_KEY>

ツール一覧

CRUD (16 エンティティ × 5 操作 = 80 ツール)

各エンティティに list_*, get_*, create_*, update_*, delete_* を提供。

エンティティ

説明

profiles

基本プロフィール、ミッション、価値観、トーン

career_entries

職歴・経歴

skills

スキル(カテゴリ・習熟度付き)

projects

プロジェクト実績

achievements

表彰・受賞・資格

episodes

具体的なエピソード・体験談

education

学歴・教育歴

hobbies

趣味・興味

values_philosophy

価値観・哲学・信条

health_entries

健康・ウェルネス

life_events

ライフイベント

relationships

人間関係

goals

目標・進捗

custom_categories

ユーザー定義カテゴリ

custom_entries

カスタムカテゴリのエントリ

personas

コンテキスト生成用ペルソナ定義

コンテキスト生成

ツール

説明

get_context

ペルソナベースの重み付きコンテキストを Markdown で生成。persona, focus, max_tokens_hint で制御可能

list_available_personas

利用可能なペルソナ一覧(プリセット + カスタム)

プリセットペルソナ: default, professional, interview, personal, creative

検索・分析

ツール

説明

search

全テーブル横断のキーワード検索

get_stats

テーブルごとのエントリ数・充実度

タグ・リレーション

ツール

説明

tag_entry / untag_entry

エントリへのタグ付け・解除

create_relation / get_relations / delete_relation

エンティティ間の関連付け

一括操作

ツール

説明

bulk_import

JSON データの一括インポート

bulk_export

全データまたは指定テーブルの一括エクスポート

リソース (MCP Resources)

URI

説明

personaldb://profile/summary

プロフィール全体概要

personaldb://career/timeline

時系列の職歴

personaldb://skills/matrix

カテゴリ別スキルマトリクス

personaldb://portfolio

プロジェクト + 実績

personaldb://resume/data

履歴書用の構造化データ

personaldb://episodes/highlights

重要エピソード(importance 7以上)

personaldb://goals/active

アクティブな目標と進捗

personaldb://context

重み付きコンテキスト(デフォルトペルソナ)

アーキテクチャ

  • DB: Supabase (PostgreSQL) - personal_db スキーマに全テーブルを分離

  • 認証: API キーベース(マルチテナント対応)

  • RLS: 全テーブルに Row Level Security 設定済み

  • トランスポート: stdio (ローカル) / HTTP (Vercel デプロイ)

Available Tools

101 tools
analyze_profileC

プロフィール分析。スコアリングで圧縮候補を特定し、batch_operations と組み合わせて整理できる

Inputs: focus, persona, score_threshold.

batch_operationsB

複数テーブルへの create/update/delete を1回で実行。近況報告などをまとめてDBに反映する際に使う

Inputs: operations (required).

bulk_exportC

全データまたは指定テーブルのJSON一括エクスポート

Inputs: tables, include_private.

bulk_importC

JSON一括インポート。複数テーブルのデータを一度にインポート

Inputs: data (required).

create_achievementC

実績を新規作成

Inputs: data (required), profile_id.

create_career_entryC

経歴を新規作成

Inputs: data (required), profile_id.

create_custom_categoryC

カスタムカテゴリを新規作成

Inputs: data (required), profile_id.

create_custom_entryC

カスタムエントリを新規作成

Inputs: data (required), profile_id.

create_educationC

学歴・教育を新規作成

Inputs: data (required), profile_id.

create_episodeC

エピソードを新規作成

Inputs: data (required), profile_id.

create_goalC

目標を新規作成

Inputs: data (required), profile_id.

create_health_entryC

健康エントリを新規作成

Inputs: data (required), profile_id.

create_hobbyC

趣味を新規作成

Inputs: data (required), profile_id.

create_life_eventC

ライフイベントを新規作成

Inputs: data (required), profile_id.

create_personaC

ペルソナを新規作成

Inputs: data (required), profile_id.

create_profileC

プロフィールを新規作成

Inputs: data (required), profile_id.

create_projectC

プロジェクトを新規作成

Inputs: data (required), profile_id.

create_relationB

エントリ間の関連を作成 (例: エピソードがスキルを実証, 経歴がプロジェクトに繋がった等)

Inputs: source_id (required), target_id (required), source_type (required), target_type (required), +2 more.

create_relationshipC

人間関係を新規作成

Inputs: data (required), profile_id.

create_skillC

スキルを新規作成

Inputs: data (required), profile_id.

create_tagC

タグを作成

Inputs: name (required), category.

create_values_philosophyC

価値観・哲学を新規作成

Inputs: data (required), profile_id.

debug_authD

認証デバッグ

Inputs: no named parameters.

delete_achievementC

実績を削除

Inputs: id (required).

delete_career_entryC

経歴を削除

Inputs: id (required).

delete_custom_categoryC

カスタムカテゴリを削除

Inputs: id (required).

delete_custom_entryD

カスタムエントリを削除

Inputs: id (required).

delete_educationC

学歴・教育を削除

Inputs: id (required).

delete_episodeC

エピソードを削除

Inputs: id (required).

delete_goalC

目標を削除

Inputs: id (required).

delete_health_entryC

健康エントリを削除

Inputs: id (required).

delete_hobbyC

趣味を削除

Inputs: id (required).

delete_life_eventC

ライフイベントを削除

Inputs: id (required).

delete_personaC

ペルソナを削除

Inputs: id (required).

delete_profileC

プロフィールを削除

Inputs: id (required).

delete_projectC

プロジェクトを削除

Inputs: id (required).

delete_relationC

エントリ間の関連を削除

Inputs: id (required).

delete_relationshipC

人間関係を削除

Inputs: id (required).

delete_skillC

スキルを削除

Inputs: id (required).

delete_values_philosophyC

価値観・哲学を削除

Inputs: id (required).

generate_nft_snapshotB

NFTスナップショット生成 — プライバシーフィルタ済みのプロフィールデータスナップショットを生成(NFT Mint前のデータ確認用)

Inputs: persona, max_tokens_hint.

get_achievementC

実績を取得 (IDで指定)

Inputs: id (required).

get_career_entryC

経歴を取得 (IDで指定)

Inputs: id (required).

get_contextA

ペルソナベースの重み付きコンテキストを生成。AIがこの人物を理解するための最適化されたMarkdownを返す。

Inputs: focus, persona, max_tokens_hint.

get_custom_categoryC

カスタムカテゴリを取得 (IDで指定)

Inputs: id (required).

get_custom_entryC

カスタムエントリを取得 (IDで指定)

Inputs: id (required).

get_educationC

学歴・教育を取得 (IDで指定)

Inputs: id (required).

get_entry_tagsB

エントリに付与されたタグを取得

Inputs: entry_id (required), entry_type (required).

get_episodeB

エピソードを取得 (IDで指定)

Inputs: id (required).

get_goalC

目標を取得 (IDで指定)

Inputs: id (required).

get_health_entryC

健康エントリを取得 (IDで指定)

Inputs: id (required).

get_hobbyC

趣味を取得 (IDで指定)

Inputs: id (required).

get_life_eventA

ライフイベントを取得 (IDで指定)

Inputs: id (required).

get_nft_listingC

NFT出品詳細 — 特定のNFT出品の詳細情報を取得

Inputs: listing_id (required).

get_personaC

ペルソナを取得 (IDで指定)

Inputs: id (required).

get_profileC

プロフィールを取得 (IDで指定)

Inputs: id (required).

get_projectC

プロジェクトを取得 (IDで指定)

Inputs: id (required).

get_relationsC

エントリの関連を取得

Inputs: entry_id (required), entry_type (required), direction.

get_relationshipC

人間関係を取得 (IDで指定)

Inputs: id (required).

get_skillB

スキルを取得 (IDで指定)

Inputs: id (required).

get_statsC

カテゴリ別の統計情報を取得(エントリ数、最終更新等)

Inputs: no named parameters.

get_values_philosophyB

価値観・哲学を取得 (IDで指定)

Inputs: id (required).

list_achievementsC

実績一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_available_personasC

利用可能なペルソナ一覧を取得 (プリセット + カスタム)

Inputs: no named parameters.

list_career_entriesC

経歴一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_custom_categoriesC

カスタムカテゴリ一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_custom_entriesC

カスタムエントリ一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_educationC

学歴・教育一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_episodesC

エピソード一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_goalsC

目標一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_health_entriesC

健康エントリ一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_hobbiesB

趣味一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_life_eventsC

ライフイベント一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_nft_listingsB

NFT出品一覧 — マーケットプレイスの出品を一覧表示

Inputs: limit, status, my_only.

list_personasC

ペルソナ一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_profilesB

プロフィール一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_projectsC

プロジェクト一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_relationshipsC

人間関係一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_skillsC

スキル一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

list_tagsC

タグ一覧を取得

Inputs: category.

list_values_philosophyB

価値観・哲学一覧を取得

Inputs: limit, filter, offset, order_by, +2 more.

preview_nft_dataC

NFTデータプレビュー — Mintに含まれるデータの概要を表示(コンテキスト本文なし、エンティティ数のみ)

Inputs: persona.

tag_entryC

エントリにタグを付与

Inputs: entry_id (required), tag_name (required), entry_type (required), tag_category.

untag_entryC

エントリからタグを解除

Inputs: entry_id (required), tag_name (required), entry_type (required).

update_achievementC

実績を更新

Inputs: id (required), data (required).

update_career_entryD

経歴を更新

Inputs: id (required), data (required).

update_custom_categoryC

カスタムカテゴリを更新

Inputs: id (required), data (required).

update_custom_entryC

カスタムエントリを更新

Inputs: id (required), data (required).

update_educationC

学歴・教育を更新

Inputs: id (required), data (required).

update_episodeC

エピソードを更新

Inputs: id (required), data (required).

update_goalC

目標を更新

Inputs: id (required), data (required).

update_health_entryC

健康エントリを更新

Inputs: id (required), data (required).

update_hobbyC

趣味を更新

Inputs: id (required), data (required).

update_life_eventC

ライフイベントを更新

Inputs: id (required), data (required).

update_personaC

ペルソナを更新

Inputs: id (required), data (required).

update_profileC

プロフィールを更新

Inputs: id (required), data (required).

update_projectD

プロジェクトを更新

Inputs: id (required), data (required).

update_relationshipC

人間関係を更新

Inputs: id (required), data (required).

update_skillC

スキルを更新

Inputs: id (required), data (required).

update_values_philosophyC

価値観・哲学を更新

Inputs: id (required), data (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.4/5.0

    Scored across 101 tools

    Disambiguation4/5

    Most tools follow a clear resource+action pattern (create/get/list/update/delete for each entity type like profile, skill, project), so they are largely distinguishable. However, a few tools overlap conceptually: 'search' (full-text search across all tables) and 'get_stats'/'get_context' have some ambiguity in purpose, and 'persona' vs 'profile' represent potentially overlapping concepts. Overall the resource-based naming keeps boundaries mostly clear.

    Naming Consistency4/5

    The vast majority of tools follow a consistent verb_noun pattern (create_X, get_X, list_X, update_X, delete_X) in snake_case, which is excellent. Minor deviations exist: 'search', 'tag_entry', 'untag_entry' reverse the order to noun_verb, and a few like 'generate_nft_snapshot' and 'preview_nft_data' use different verb forms. Also 'get_stats', 'get_context', 'debug_auth', and 'analyze_profile' don't match the CRUD pattern. Still, the deviation is small relative to the ~90 tools that do follow the pattern.

    Tool Count1/5

    101 tools is extremely high, far exceeding reasonable scoping for any server. While a personal database could legitimately manage many entity types, having 101 distinct tools creates massive cognitive overhead. Each entity type generates 5 CRUD tools plus auxiliary tools, resulting in a sprawling surface. This is a textbook example of tool-count bloat that will overwhelm agents.

    Completeness3/5

    CRUD coverage is quite thorough for most entity types (profile, skill, project, achievement, episode, education, hobby, values, health, life events, relationships, goals, custom categories/entries, personas, careers). However, there are gaps: delete_relationship, update_relationship, get_relationship, list_relationships exist but no... actually most are present. Missing delete for relationship and goal's get/delete gaps — delete_goal exists but check list. Some entities like NFT and tags have partial coverage (no create/update NFT, no delete tag). Overall coverage is good but not complete across all entity types.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      Not graded
      maintenance
      Provides persistent personal and organizational knowledge storage that any LLM can connect to for instant context about who you are, what you do, and your preferences. Enables AI agents to maintain long-term memory across sessions through structured data categories, semantic search, and export/import capabilities.
      27
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Aggregates your digital footprint (GitHub, blogs, resume) into a single AI-readable profile and exposes it via MCP tools so AI agents can query your context live.
      1
      MIT