Koskamo

PersonalKnowHow MCP

A community-driven MCP server that transforms personal data like LinkedIn exports into a queryable knowledge graph. It allows AI agents to verify skills and experience against real evidence such as GitHub commits and course completions, enabling accurate CV tailoring and job matching without relying on static text claims.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

PersonalKnowHow MCP logo, by Georgi PetkovCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Georgi Petkov
MCP endpoint (Streamable HTTP)
https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp
Vendor documentation

What its tools do

4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

4 of 4 have a description · 4 of 4 declare behavior hints · 4 of 4 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Verify specific technical skills against real project history
  • Tailor CV bullets to match job postings using evidence
  • Check candidate fit against job requirements
  • Query learning and work history as a knowledge graph

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
personalknowhow-demo 0.2.0
MCP protocol negotiated in check
2025-11-25
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

4 advertised

query_knowhow — Query know-how
Advertised by the server during the last successful anonymous check.
Advertised read-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.

query_knowhow input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "topic"
  ],
  "properties": {
    "topic": {
      "type": "string",
      "description": "A skill, technology, or topic to check, e.g. 'django' or 'aws'"
    }
  }
}
query_knowhow annotations
{
  "readOnlyHint": true
}
list_by_type — List know-how by type
Advertised by the server during the last successful anonymous check.
Advertised read-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.

list_by_type input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "course",
        "project",
        "certification",
        "education",
        "endorsement",
        "position",
        "profile",
        "recommendation",
        "article",
        "organization",
        "language",
        "honor",
        "publication",
        "patent",
        "volunteering",
        "test_score",
        "skill_assessment"
      ],
      "type": "string",
      "description": "Exact entry type to list in full"
    }
  }
}
list_by_type annotations
{
  "readOnlyHint": true
}
related_entries — Find related entries
Advertised by the server during the last successful anonymous check.
Advertised read-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).

related_entries input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "An entry id from a prior query_knowhow or list_by_type result"
    }
  }
}
related_entries annotations
{
  "readOnlyHint": true
}
skill_evidence — Find skill evidence
Advertised by the server during the last successful anonymous check.
Advertised read-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.

skill_evidence input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "tag"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "description": "An exact tag from a prior result's tags array, e.g. 'python', 'docker', 'gcp'"
    }
  }
}
skill_evidence annotations
{
  "readOnlyHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
345 ms
95th percentile latency
345 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 345 ms · metadata changed · 4 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http personalknowhow-mcp https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add personalknowhow-mcp --url https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable personalknowhow-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "personalknowhow-mcp": {
      "url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "personalknowhow-mcp": {
      "type": "streamableHttp",
      "url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start personalknowhow-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "personalknowhow-mcp": {
      "type": "http",
      "url": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http personalknowhow-mcp https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "personalknowhow-mcp": {
      "serverUrl": "https://personalknowhow-demo.kxtwrdzt6g.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like PersonalKnowHow MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.