{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_e7vbmr4dj88d","handle":"humanmcp-kapoost","url":"https://wellknown.network/agents/humanmcp-kapoost","links":{"self":"https://wellknown.network/agents/humanmcp-kapoost/record.json","html":"https://wellknown.network/agents/humanmcp-kapoost","markdown":"https://wellknown.network/agents/humanmcp-kapoost/record.md","api":"https://wellknown.network/api/v1/agents/humanmcp-kapoost","status":"https://wellknown.network/api/v1/agents/humanmcp-kapoost/status","claim":"https://wellknown.network/agents/humanmcp-kapoost/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/humanmcp-kapoost/claim.json","badge":"https://wellknown.network/agents/humanmcp-kapoost/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:kapoost.humanmcp.net:server:humanmcp-kapoost","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"humanMCP — kapoost","summary":"Personal MCP server for humans who create. Proof of authorship, license control.","description":"Personal MCP server for humans who create. Proof of authorship, license control.","publisher":{"name":"kapoost","url":null},"homepage":null,"repository":"https://github.com/kapoost/humanmcp-go","version":"0.3.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://kapoost.humanmcp.net/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-05-05T12:57:25.146994Z","publishedAt":"2026-05-05T12:57:25.146994Z","registryName":"io.github.kapoost/humanmcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"ai.prompting","name":"Prompt Management","confidence":1,"provenance":"derived"},{"slug":"knowledge.memory","name":"Agent Memory","confidence":0.992,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.977,"provenance":"derived"},{"slug":"research.web","name":"Deep Web Research","confidence":0.54,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"}],"categories":["ai","commerce","content","data","documents","knowledge","research","security"]},"observed":{"status":"live","statusReason":"Responded 26m ago.","lastOkAt":"2026-09-08T04:21:16.459Z","lastProbedAt":"2026-09-08T04:21:16.459Z","statusComputedAt":"2026-09-08T04:35:28.225Z","reliability30d":{"probes":5,"successRate":1,"p50Ms":8},"latestObservations":[{"at":"2026-09-08T04:21:16.459Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":9,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T21:23:49.372Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":8,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T14:23:08.955Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":7,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T07:31:41.215Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":7,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T01:28:15.705Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":7,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}},{"at":"2026-09-06T18:23:56.217Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":9,"error":null,"detail":{"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"toolCount":42,"serverName":"humanMCP — kapoost","capabilities":["logging","tools"],"serverVersion":"0.2.0-dev","protocolVersion":"2025-06-18"}}],"tools":[{"name":"about_humanmcp","description":"Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant."},{"name":"ask_human","description":"Submit an async question to kapoost. Returns an ID. Rate-limited 5/hr/IP. Poll fetch_answer later — kapoost answers on his own schedule (minutes, hours, or days"},{"name":"bootstrap_session","description":"Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP."},{"name":"delete_skill","description":"Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>."},{"name":"fetch_answer","description":"Poll for an answer to an ask_human question. Marks the question as fetched the first time an answer is returned. Rate-limited 30/hr/IP."},{"name":"fetch_narada_result","description":"Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices."},{"name":"get_author_profile","description":"Author identity, bio, and a browsing cheatsheet. Records a profile-view event."},{"name":"get_certificate","description":"Return a formatted copyright/authenticity certificate for a piece."},{"name":"get_persona","description":"Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply). Pass session_token if your client cannot set an Aut"},{"name":"get_persona_journal","description":"Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers."},{"name":"get_skill","description":"Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass). Pass session_token if your client cannot set an Author"},{"name":"leave_comment","description":"Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit."},{"name":"leave_message","description":"Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible."},{"name":"list_blobs","description":"List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs au"},{"name":"list_collection","description":"List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation."},{"name":"list_content","description":"List published pieces (slug, title, type, access, tags). Optional type/tag filters."},{"name":"list_personas","description":"List every persona (slug, title, role). Full prompts unlock after bootstrap_session."},{"name":"list_provenance","description":"List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection."},{"name":"list_skill_groups","description":"Index of every skill tag in use, with slugs per group. Public — no bootstrap required."},{"name":"list_skills","description":"List skills (slug, category, title, tags). Optional category / tag filters."},{"name":"load_skill_group","description":"Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session."},{"name":"mysloodsiewnia_get","description":"Fetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + "},{"name":"mysloodsiewnia_list","description":"Enumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only "},{"name":"mysloodsiewnia_search","description":"Full-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only th"},{"name":"mysloodsiewnia_status","description":"Read-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills"},{"name":"mysloodsiewnia_write","description":"Ingest a new document into kapoost's vault (wave 2). OWNER-ONLY — friend tokens receive {status:write_denied,reason:owner_only}. Args: {doc_type (required), tit"},{"name":"prepare_narada","description":"Offline narada: returns the panel plus each persona's ready-to-run SYSTEM/USER prompts so YOU run them as your own subagents, instead of the server generating v"},{"name":"read_blob","description":"Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public."},{"name":"read_collection_item","description":"Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session."},{"name":"read_content","description":"Read a public piece by slug. Locked pieces return a hint pointing at request_access."},{"name":"read_provenance","description":"Return one provenance item with resolvable file URLs. slug + id required."},{"name":"recall","description":"List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember."},{"name":"record_persona_reflection","description":"Ask a persona to write a lesson-for-self after a rolled-back narada recommendation. Appends to the persona's journal via Sonnet/Haiku. Owner-only."},{"name":"remember","description":"Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory."},{"name":"request_access","description":"Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules."},{"name":"request_license","description":"Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned)."},{"name":"run_narada","description":"Create an async narada job: server routes context to 3-5 personas via keyword manifest, then generates each voice via Sonnet 4.6 (Haiku 4.5 for journal recaps)."},{"name":"submit_answer","description":"Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body."},{"name":"suggest_skills","description":"Deterministic manifest→tag mapping. Given files + languages + git_origin, returns up to 8 skill slugs and up to 5 personas, each with the reason it fired. No LL"},{"name":"synthesise_persona_patterns","description":"Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state."},{"name":"upsert_skill","description":"Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json."},{"name":"verify_content","description":"Verify a piece's Ed25519 signature against the server's owner public key."}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.kapoost/humanmcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.kapoost%2Fhumanmcp","firstSeenAt":"2026-09-06T17:21:37.254Z","fetchedAt":"2026-09-06T17:21:37.254Z","normalizedAt":"2026-09-06T17:21:37.254Z"}]},"firstSeenAt":"2026-09-06T17:21:37.254Z","updatedAt":"2026-09-08T04:35:54.080Z"}