PersonalKnowHow

io.github.Georgi-Petkov由 GitHub 帳號 Georgi-Petkov 發布v1.0.0更新於 Nov 2, 2026

Live public demo: query one person's learning and work history as a knowledge graph via MCP.

已驗證Streamable HTTP可網頁執行知識與記憶AI 與機器學習

概覽

AI 產生的概覽

遠端 MCP 伺服器,把某個人的公開學習與工作經歷以知識圖譜形式提供查詢,涵蓋專案、課程、認證與職位。

可以做什麼
  • 依主題語意搜尋此人的技能與經歷圖譜,結果依相關度排序且最多 10 筆
  • 依類型列出完整且不設上限的條目集合,例如認證或課程
  • 依共用標籤或同一內容提供者,找出與某條目相關的其他條目,每組最多 15 筆
  • 依精確標籤查出所有帶該標籤的條目,並依類型分組給出實際數量
適用情境
適合想了解或示範如何透過 MCP 查詢個人證據圖譜的情境,或核實某人在某項技能上實際完成過什麼。它是公開示範資料集,並非通用知識庫。
執行需求
需要一個遠端 streamable HTTP 端點;未宣告驗證、環境變數或請求標頭。只需能連線到託管的示範端點。
安裝前請注意
伺服器無需驗證,提供的是某個人職涯經歷的公開匯出,查詢與結果都不具私密性。此匯出刻意排除求職意向類訊號,因此數量本來就少於私有版本。語意搜尋會依排名截斷,可能漏掉真實符合的項目;精確標籤查詢對未標記的技能不會回傳結果。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PersonalKnowHow,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Georgi-Petkov%2Fpersonalknowhow/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "personalknowhow": {
      "type": "http",
      "url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
    }
  }
}

README

PersonalKnowHow MCP — public demo

Unauthenticated MCP server over the public export of one person's knowledge graph (public_entries.json + public_embeddings.json, built by ingest/build_public_export.py's fail-closed allowlist). Every entry here represents something actually done or completed (course, project, certification, position, education, etc.) — career-interest/job-application "signal" evidence is structurally excluded from this export, never just filtered at query time.

Tools

query_knowhow(topic: string)

Semantic search, ranked by relevance, capped at 10 results. Not exhaustive — a real match can rank below the cutoff.

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)

The complete, exact set of entries for one type — no ranking, no cap.

list_by_type({ type: "certification" })→ { "type": "certification", "count": N, "entries": [ { "id": "...", "label": "...", ... }, ... ] }

related_entries(id: string)

Given an entry id, returns other entries sharing at least one tag or the same provider — capped at 15 per group, true count always shown.

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": [ ... ] } }

(Note: this example shows related_entries only clustering django_docker with the one other Django repo sharing an unrelated tag — neither StartUp nor News-sentiment-app appear, since neither shares a tag with it. skill_evidence({ tag: "docker" }) below finds all of them instead, since it matches on the tag directly rather than requiring a shared-tag path from one specific starting entry.)

skill_evidence(tag: string)

Exact tag match (not semantic), uncapped, grouped by type with real counts. The right tool for "how many X have I actually done" or "do I have any real evidence for X at all."

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" } ] }    }  }

(The private tier's skill_evidence({ tag: "gcp" }) also surfaces a signal_only career-interest entry — that entire category is excluded from this public export, so this tier's count is lower by design, not by omission.)

An unrecognized tag returns found: false — exact match against tags assigned during ingest, not a fuzzy/semantic lookup. If a skill genuinely exists but was never tagged, query_knowhow may still find it (it searches full entry text, not just tags).

來源:mcp/README.md,提交 68ffd8b

工具

4

query_knowhow

Query know-how

Search this person's real, grounded skills/experience graph for a topic using semantic search. Returns only entries with real evidence -- never guesses. Every entry here represents something actually done or completed (project, certification, position, course, or education) -- this public dataset never includes saved-but-not-worked jobs or applications. This is SEMANTIC search ranked by relevance and capped at 10 results -- it is NOT exhaustive. For 'list every X' or 'how many X' questions, use list_by_type instead -- it returns the complete, uncapped set with no similarity ranking involved. Clearing the similarity floor means 'closest available match', not 'confirmed match' -- read each result's actual label/description/type before citing it as evidence for the specific topic queried. Each result also carries source_url/captured_at/provider (the real evidence behind it, when available) and source_note (explaining why not, when the underlying source has no link) -- use these to answer a disputed claim with actual backing evidence rather than just the description text. Embeddings can rank a topically-adjacent-but-wrong entry above the floor (e.g. a course on a different cloud data-warehouse tool, or a different framework in the same category) for a term it isn't actually about; if a result isn't genuinely on topic, treat the query as unmatched rather than reporting it as a match. For 'what else is connected to this' or 'what shares a skill/provider with this specific entry' questions, call related_entries with a result's id instead of re-querying by topic.

輸入參數topic必填

list_by_type

List know-how by type

Returns the COMPLETE, exact set of entries for one type, with no similarity ranking, no relevance cutoff, and no cap on count. Use this instead of query_knowhow whenever the question requires an exhaustive or countable answer ('list all my certifications', 'how many courses have I completed'). Deterministic ordering (sorted by label) -- repeated calls with the same type return the same list in the same order.

輸入參數type必填

skill_evidence

Find skill evidence

Given an exact tag/skill (e.g. 'docker', 'gcp'), returns EVERY entry with that tag, uncapped, grouped by type with a real count per type. Unlike related_entries (capped at 15, requires a starting entry id) or query_knowhow (semantic, ranked, may over- or under-include), this is an EXACT tag match against every entry -- the right tool for 'how many X have I completed/done' or 'do I have any real evidence for X at all'. Tags are exact strings from a prior list_by_type/related_entries/query_knowhow result's tags array -- this is NOT semantic search; a tag never assigned during ingest returns found:false, try query_knowhow instead. Each type's entries sort by captured_at ascending (oldest first); entries with no captured_at are moved to the end and counted in undated_count, never silently sorted as if their date were known.

輸入參數tag必填

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分