PersonalKnowHow について
PersonalKnowHowは、個人の公開された学習・職務履歴をナレッジグラフとして検索するMCPサービスです。セマンティック検索、種類別の全件一覧、タグによる証拠確認ができ、キャリア関心の記録は含みません。
主な機能
- 01記録のセマンティック検索
- 02種類別の全件一覧
- 03関連記録の検索
- 04タグ別の証拠件数
活用シーン
- 01テーマに関連するプロジェクトの検索
- 02認定や学歴の全記録の確認
- 03特定スキルの実績確認
MCP 対応
MCPサーバーとして、セマンティック検索、種類別一覧、関連記録、タグによる証拠確認のツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcpclaude mcp add --transport http georgi-petkov-personalknowhow https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp{"mcpServers":{"georgi-petkov-personalknowhow":{"type":"http","url":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"}}}Cursor で開く{"servers":{"georgi-petkov-personalknowhow":{"type":"http","url":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"georgi-petkov-personalknowhow":{"type":"http","url":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"}}}{"mcpServers":{"georgi-petkov-personalknowhow":{"serverUrl":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| topic | string | はい | 確認するスキル、技術、またはトピック('django' や 'aws' など) |
詳細
PersonalKnowHow MCP — 公開デモ
1 人分のナレッジグラフの公開エクスポート
(public_entries.json + public_embeddings.json。ingest/build_public_export.py の
フェイルクローズ方式の許可リストで構築)を使用する、認証不要の MCP サーバーです。ここにあるすべてのエントリーは、実際に行った、または完了したこと(コース、プロジェクト、資格、職務、学歴など)を表します。キャリアへの関心や求人応募に関する「シグナル」の証拠は、クエリ時にフィルタリングするのではなく、構造上このエクスポートから除外されています。
ツール
query_knowhow(topic: string)
関連度順に並べたセマンティック検索を行い、結果は最大 10 件です。網羅的な検索ではないため、実際に一致する結果が上限以下の順位になる場合があります。
query_knowhow({ topic: "django" })
→ { "found": true, "count": 4, "evidence": [
{ "id": "github_django_docker_db", "label": "django_docker_db", "type": "project", "score": 0.735, ... },
{ "id": "github_django_docker", "label": "django_docker", "type": "project", "score": 0.71, ... },
{ "id": "github_startup", "label": "StartUp", "type": "project", "score": 0.706, ... },
{ "id": "github_news_sentiment_app", "label": "News-sentiment-app", "type": "project", "score": 0.676, ... }
] }
list_by_type(type: string)
1 種類のエントリーを完全かつ正確に取得します。順位付けも上限もありません。
list_by_type({ type: "certification" })
→ { "type": "certification", "count": N, "entries": [ { "id": "...", "label": "...", ... }, ... ] }
related_entries(id: string)
エントリー ID を指定すると、少なくとも 1 つのタグを共有するエントリー、または同じプロバイダーのエントリーを返します。グループごとに最大 15 件ですが、実際の件数は常に表示されます。
related_entries({ id: "github_django_docker" })
→ { "id": "github_django_docker", "type": "project",
"related_by_tag": {
"docker": { "count": 4, "entries": [
{ "id": "github_django_docker_db", "label": "django_docker_db", "type": "project" }, ... ] },
"aws": { "count": 16, "entries": [ ... ] },
"cloud": { "count": 51, "entries": [ ... ] },
"devops": { "count": 10, "entries": [ ... ] }
},
"related_by_provider": { "count": 36, "entries": [ ... ] } }
(注:この例では、related_entries は django_docker と、関係のないタグを共有しているもう 1 つの Django リポジトリのみをグループ化しています。StartUp と News-sentiment-app はどちらもタグを共有していないため、表示されません。一方、下の skill_evidence({ tag: "docker" }) は、特定のエントリーを起点としたタグ共有の経路を必要とせず、タグに直接一致するため、これらすべてを見つけます。)
skill_evidence(tag: string)
タグに完全一致するエントリーを、上限なしで種類ごとにグループ化し、実際の件数とともに返します。「X を実際にいくつ経験したか」や「X に関する実際の証拠があるか」を調べるのに適したツールです。
skill_evidence({ tag: "docker" })
→ {
"tag": "docker", "found": true, "count": 5,
"by_type": {
"project": {
"count": 4, "undated_count": 0,
"entries": [
{ "id": "github_django_docker", "label": "django_docker", "captured_at": "2021-06-10" },
{ "id": "github_django_docker_db", "label": "django_docker_db", "captured_at": "2021-06-22" },
{ "id": "github_bedex", "label": "BedEx", "captured_at": "2025-05-29" },
{ "id": "github_terraform_associate_prep", "label": "terraform-associate-prep", "captured_at": "2026-08-03" }
]
},
"endorsement": {
"count": 1, "undated_count": 0,
"entries": [
{ "id": "linkedin_endorsements_docker_products_202209", "label": "Endorsed: Docker Products", "captured_at": "2022-09-21" }
]
}
}
}
skill_evidence({ tag: "gcp" })
→ {
"tag": "gcp", "found": true, "count": 2,
"by_type": {
"position": { "count": 1, "undated_count": 0, "entries": [
{ "id": "linkedin_positions_data_engineer_data_analyst_at_biites_202107",
"label": "Data Engineer & Data Analyst at Biites", "captured_at": "2021-07-01" } ] },
"project": { "count": 1, "undated_count": 0, "entries": [
{ "id": "projects_connector", "label": "connector", "captured_at": "2026-08-09" } ] }
}
}
(プライベートティアの skill_evidence({ tag: "gcp" }) では、キャリアへの関心を示す signal_only エントリーも表示されます。この公開エクスポートでは、そのカテゴリ全体が除外されているため、このティアの count が少ないのは意図的であり、エントリーの漏れによるものではありません。)
認識されないタグを指定すると、found: false が返されます。これは取り込み時に付与されたタグとの完全一致であり、あいまい検索やセマンティック検索ではありません。スキルが実際に存在していてもタグが付与されていない場合、query_knowhow で見つかることがあります(タグだけではなく、エントリーの全文を検索します)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。