Search / io.github.Georgi-Petkov/personalknowhow
PersonalKnowHow
R0· no sign-inLive public demo: query one person's learning and work history as a knowledge graph via MCP.
v1.0.0 · active · repository · website · descriptor JSON · versions
Search / io.github.Georgi-Petkov/personalknowhow
R0· no sign-inLive public demo: query one person's learning and work history as a knowledge graph via MCP.
v1.0.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"personalknowhow": {
"type": "http",
"url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
}
}
}claude mcp add --transport http personalknowhow https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp[mcp_servers.personalknowhow]
url = "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"personalknowhow": {
"type": "remote",
"url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"personalknowhow": {
"type": "http",
"url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=personalknowhow&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGVyc29uYWxrbm93aG93LWRlbW8ua3h0d3JkenQ2Zy53b3JrZXJzLmRldi9tY3AifQ%3D%3D"
}{
"servers": {
"personalknowhow": {
"type": "http",
"url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
}
}
}{
"mcpServers": {
"personalknowhow": {
"httpUrl": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
}
}
}extensions:
"personalknowhow":
enabled: true
name: "personalknowhow"
type: streamable_http
uri: "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length2 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations4 of 4 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: query_knowhow (destructiveHint, idempotentHint, openWorldHint); skill_evidence (destructiveHint, idempotentHint, openWorldHint); related_entries (destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 1,281 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-99% ~updated-43d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp streamable-http | none | yes | 99% | 305 ms | 2026-07-28 | 2026-10-20 |
list_by_typeread-only | 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. |
query_knowhowread-only | 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. |
related_entriesread-only | Given an entry id (from a prior query_knowhow or list_by_type result), returns other entries that share at least one tag or the same content provider -- the only two relationships this corpus currently tracks (there is no 'led to' or 'used in' relationship here, only shared tag/provider). This is NOT a similarity or relevance judgment -- two entries sharing a broad tag (e.g. both tagged 'data-science') can be quite different in substance; read each related entry's own label/type before treating it as meaningful. Each group is capped at 15 entries, sorted by label, with the true total count shown separately so you know if results were truncated -- call list_by_type on that type if you need the full set. Useful for 'what else is connected to X' or 'what did they do that relates to this specific course/certification/endorsement' -- questions query_knowhow's independent similarity search can't reliably answer, since two entries can be genuinely related without their description text reading alike (e.g. a course title and an endorsement phrase for the same skill, worded completely differently). |
skill_evidenceread-only | 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. |
Schemas: list_tools.
{
"name": "io.github.Georgi-Petkov/personalknowhow",
"title": "PersonalKnowHow",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp",
"type": "streamable-http"
}
],
"version": "1.0.0",
"repository": {
"url": "https://github.com/Georgi-Petkov/personalknowhow",
"source": "github",
"subfolder": "mcp"
},
"websiteUrl": "https://personalknowhow.com",
"description": "Live public demo: query one person's learning and work history as a knowledge graph via MCP."
}