{"name":"io.github.Georgi-Petkov/personalknowhow","slug":"georgi-petkov-personalknowhow","title":"PersonalKnowHow","description":"Live public demo: query one person's learning and work history as a knowledge graph via MCP.","url":"https://mcp.market/server/georgi-petkov-personalknowhow","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-01T18:28:04.000Z","license":"MIT"},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T21:41:04.807Z","last_ok_at":"2026-09-20T21:41:04.807Z","latency_ms":262},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Georgi-Petkov/personalknowhow","website":"https://personalknowhow.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"}],"packages":[],"tools":[{"name":"list_by_type","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string","enum":["course","project","certification","education","endorsement","position","profile","recommendation","article","organization","language","honor","publication","patent","volunteering","test_score","skill_assessment"],"description":"Exact entry type to list in full"}},"required":["type"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"query_knowhow","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","description":"A skill, technology, or topic to check, e.g. 'django' or 'aws'"}},"required":["topic"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"related_entries","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"An entry id from a prior query_knowhow or list_by_type result"}},"required":["id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"skill_evidence","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tag":{"type":"string","description":"An exact tag from a prior result's tags array, e.g. 'python', 'docker', 'gcp'"}},"required":["tag"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-20T00:27:05.931Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:27:05.913Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1025ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 18 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1025,"serverInfo":{"name":"personalknowhow-demo","version":"0.2.0"}}],"packages":[],"repo":{"found":true,"owner":"Georgi-Petkov","repo":"personalknowhow","archived":false,"pushedAt":"2026-09-01T18:28:04Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/45264929?v=4","ownerCreatedAt":"2018-11-22T13:58:35Z","license":"MIT"},"icon":{"url":"https://personalknowhow.com/logo.png?v=2","source":"site","width":212,"height":212},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-01T18:28:04.000Z","score":26}}}},"grade_history":[],"reviews":[]}