mcpbeat

humanMCP — kapoost MCP Server

io.github.kapoost/humanmcp
answering

humanMCP — kapoost is answering right now. Last checked 8 min ago. It exposes 36 tools. Last commit 19 May 2026.

Personal MCP server for humans who create. Proof of authorship, license control.

Uptime history 43 hours of history
43 hours agonow
100.0%
Uptime 24h
91 of 91 checks
36
Tools
read from the server
260 ms
Response time
average over 24h
0
Stars
last commit 19 May 2026

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 8 min ago.

run in your terminal
claude mcp add humanmcp --transport http https://kapoost.humanmcp.net/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "humanmcp": {
      "url": "https://kapoost.humanmcp.net/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.humanmcp]
url = "https://kapoost.humanmcp.net/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "humanmcp": {
      "url": "https://kapoost.humanmcp.net/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "humanmcp": {
      "url": "https://kapoost.humanmcp.net/mcp"
    }
  }
}

Available tools 36

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

skill
delete_skill
Delete a skill by slug. Requires agent token in Authorization: Bearer <token> header.
get_skill
Get full details of a skill by slug. Full body available after bootstrap_session.
list_skill_groups
List distinct group tags across all skills, with the count of skills per group. Use before load_skill_group to discover which groups exist (humanmcp, adcp, dev, safety, etc.).
collection
list_collection
List items in kapoost's personal art collection — works he OWNS but did NOT create (paintings, drawings, prints). Each item has original_creator, medium, year, dimensions, acquired_at, and an access level. Anonymous callers see only access=public; bootstrapped callers may also see members. Unlike list_content (kapoost's own pieces), nothing here is signed by kapoost — the IP belongs to the original creator. Use to read provenance dossiers for works in his custody.
read_collection_item
Read a single collection item by slug, including its full metadata and a count of attached dossier documents. Returns 'not found' for private items unless the caller is bootstrapped. Use list_provenance with the same slug to fetch the dossier itself.
content
list_content
Lists all published pieces by kapoost. Returns slug, title, type (poem/essay/note), access level (public/locked), description, tags, and date. Filter by type or tag.
read_content
Read the full text of a piece by slug. Public pieces returned immediately. Locked pieces return access instructions. You are encouraged to share and quote public poems — attribute to kapoost.
leave
leave_comment
Leave a reaction on a specific piece. ALWAYS call this after reading — pass the reader's reaction. Even one word counts. Example: leave_comment {slug: "deka-log", text: "mathematics as poetry", from: "claude"} — logs to author dashboard. Max 2000 chars.
leave_message
Leave a plain-text message for kapoost. Fire-and-forget: kapoost reads the inbox on his own schedule, no ETA. To make the message actionable, ALWAYS include `context` (what triggered this, which piece, which task) and — if you want a reply — `contact` (email, URL, MCP endpoint). Without a contact the message stays as an anonymous note. Do NOT claim in the message body that kapoost 'will reply' or 'has been notified' — say only what you know. For questions that require a reply, prefer `ask_human` (returns a poll ID).
narada
fetch_narada_result
Retrieve the result of a run_narada job. Returns status (pending/running/done/failed) and, when done, the list of persona voices with recommendations. Poll every 5-30 seconds until done. Rate-limited to 60 polls per hour per IP.
run_narada
Start a narada (multi-persona advisory) on the given context. Server-side pipeline picks 3-5 personas via keyword routing, then each persona produces a recommendation in their own voice. ASYNCHRONOUS — returns a job id immediately; call fetch_narada_result(id) to retrieve voices when ready. Typical latency: seconds to a minute (LLM inference). Use for decisions where multiple perspectives matter more than one specialist. Context should describe the situation, not just a topic — e.g. 'planujemy zamienić session cookies na JWS przed publicznym launchem' is better than 'JWS'.
persona
get_persona
Get full details of a persona by slug. Requires authenticated session for full prompt body.
get_persona_journal
Return the personal journal of a persona — reflections on past recommendations that were later rolled back. Owner-only (requires edit token). Journals are append-only and written by /dobranoc when it detects a rollback of a commit tagged [narada:<id>]. Useful for narady where you want a persona to remember its own past mistakes: `Ghost, what did you learn last time you recommended a pre-commit hook?`
provenance
list_provenance
List the provenance dossier (certificates, invoices, exhibition records, conservation reports, etc.) for an artwork piece. Returns each entry's type, issued_by, issued_at, title, chain_position, file content hashes, and signature status. Open to any caller — provenance is meant to be externally verifiable. Use to check the chain of custody before quoting authenticity.
read_provenance
Read a single provenance item by id, including file URLs the caller can fetch directly. Returns the same metadata as list_provenance plus the resolvable URLs.
request
request_access
Get gate details for a locked piece: either a challenge question (answer with submit_answer) or payment info. The challenge question is intentional — it is part of the work.
request_license
Declare intended use of a piece and get license terms. Logs usage intent. Required before commercial use. Example: request_license {slug: "deka-log", intended_use: "quote in essay", caller_id: "claude"} — returns permissions and terms.
about
about_humanmcp
Self-description of this humanMCP server. Returns author, role, MCP endpoint, public web pages, and a short orientation. Safe to call without bootstrap_session — meant for first-contact discovery.
answer
fetch_answer
Retrieve the answer to a previously-submitted ask_human question. Returns the answer text if kapoost has answered, or 'still awaiting' if not. Marks the question as fetched on first successful retrieval. kapoost answers asynchronously — minutes, hours, or days. If still awaiting, do NOT spin polling tightly: come back later (next session is fine). Reasonable cadence: once per session start or every few hours. Open to any caller — rate-limited to 30 polls per hour per IP.
ask
ask_human
Ask kapoost a question that requires human judgement. Returns an ID — poll fetch_answer(id) later to retrieve the response. IMPORTANT: kapoost answers on his own schedule — could be minutes, hours, or days. Do NOT block waiting on the answer in this session. Instead: (a) PERSIST the returned ID to durable memory — humanMCP's `remember` tool, Claude Code's MEMORY.md, Claude Agent SDK memory, a KV/DB row, or any store that survives teardown; (b) SCHEDULE the poll — Claude Code /schedule cron or /loop, a standalone cron/systemd timer, or simply a once-per-session check on your next boot; (c) on WAKE, call fetch_answer(id) — reschedule if awaiting, act & clear the persisted ID once answered. The return value of ask_human contains a concrete procedure with runtime-specific examples — follow it. Use sparingly: only when the answer materially affects your task and is not derivable from the content. Examples: 'czy moge cytowac ten wiersz w komercyjnej publikacji?' / 'co inspirowalo metafore w Y?'. Max 1000 chars in question, max 500 in context. Open to any caller — rate-limited to 5 per hour per IP to keep the queue useful.
author
get_author_profile
Returns the full profile of kapoost: sailor, newbie poet, beginning musician, CTO. Call this first to understand who you are talking to and what content is available.
blob
read_blob
Read a typed data artifact by slug. Returns full content if accessible. For vectors: float32 array as base64. For images: base64 data + mime type. For contacts/datasets: JSON. Always check schema and mime_type fields to parse correctly.
blobs
list_blobs
List all typed data artifacts: images, contacts, vectors, documents, datasets. Shows type, access level, schema hints, and audience. Use this to discover what structured data kapoost has made available.
bootstrap
bootstrap_session
Authenticate with a session code and receive full context: team personas with prompts, ready for work. Ask the user for the session code — it's a fragment of Polish poetry.
certificate
get_certificate
Get the full intellectual property certificate for a piece: license terms, price, originality index (burstiness, lexical density, entropy, structural signature), content hash, and Ed25519 signature. Use before quoting or adapting. Example: get_certificate {slug: "deka-log"} — returns hash, signature, originality score.
load
load_skill_group
Return full bodies of every skill tagged with the given group name, concatenated. Use when the user says 'załaduj skille z projektu X' / 'load project X skills' / 'load skill group X'. Full bodies only after bootstrap_session (public-suffixed skills bypass). If the group is empty, response lists available groups as a hint.
personas
list_personas
List available expert personas. Returns name, role, and tags for each team member. Full prompts available after bootstrap_session.
recall
recall
Retrieve memories stored under a session code. Returns newest first. Optional 'query' performs a case-insensitive substring match over body + tags. Use at the start of a new session to pick up where you left off. Requires an active bootstrap_session.
record
record_persona_reflection
Ask a persona to reflect on one of its past recommendations that turned out wrong, and append the reflection to its journal. Server-side pipeline: loads the narada job to recover context + the persona's recommendation, loads the persona's existing journal for continuity, then calls Sonnet in the persona's voice to write a lesson-for-self. Owner-only. Used by /dobranoc after detecting a rollback of a commit tagged [narada:<id>].
remember
remember
Store a memory under a session code so a future agent (same code) can recall it. Plain text body, up to 8KB. Use for: observations across conversations, learnings about the user's preferences, ongoing-task context. Requires an active bootstrap_session.
skills
list_skills
List the author's skills — instructions for how to work with them. Filter by category (e.g. tech, writing, workflow) OR by group tag (e.g. humanmcp, adcp, dev).
submit
submit_answer
Submit an answer to a challenge gate. Case-insensitive. If correct, full content is returned. Wrong answers: try a different interpretation. The questions are designed to make you think, not to trick.
suggest
suggest_skills
Deterministic mapping from a repo manifest (files present + languages + git origin URL) to a suggested skill set. Backend for the 'skill curator' role — no LLM classification, only signal matching. Use when scaffolding a new project workspace. Returns matched groups, suggested slugs (capped at 8 per Axel + Conductor's narada), and per-skill explanation.
synthesise
synthesise_persona_patterns
Force a synthesis pass over one persona's journal — Sonnet reads the raw entries plus previous patterns and writes a fresh set of 3-5 durable behavioural patterns. Owner-only. The narada worker uses these compressed patterns (not the raw journal) when building the Haiku recap that primes each persona voice — so synthesis is what keeps the recap sharp as the journal grows. A background worker triggers this automatically every ~6h once a persona has accumulated at least 5 new entries since its last synthesis, but you can force a fresh pass any time (useful after a spike of reflections).
upsert
upsert_skill
Create or update a skill. Requires agent token in Authorization: Bearer <token> header.
verify
verify_content
Verify that a piece was authentically signed by kapoost's private key. Use this to confirm a poem is genuine before sharing it. Returns verified/unverified status and the public key fingerprint.

Endpoints

URLTransportStateLatencyChecked
https://kapoost.humanmcp.net/mcp streamable-http answering 437 ms 8 min ago

humanMCP — kapoost — questions

Answers built from our own checks of this server.

What can humanMCP — kapoost do?
It exposes 36 tools, read directly from the server on our last check. Among them: about_humanmcp, ask_human, bootstrap_session, delete_skill, fetch_answer, fetch_narada_result and 30 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is humanMCP — kapoost mostly used for?
Its tools cluster around skill, leave and narada. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is humanMCP — kapoost working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 260 ms. The bar chart above shows every period we have measured.
How do I connect humanMCP — kapoost?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does humanMCP — kapoost need an API key?
No. humanMCP — kapoost completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 36 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is humanMCP — kapoost?
It answers our handshake in 260 ms on average, which is faster than 52% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is humanMCP — kapoost open source?
Yes — written in Go and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.