about_humanmcp
Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant.
Takes no parameters.

io.github.kapoostPublished by GitHub account kapoostv0.3.0Updated Oct 25, 2026
Personal MCP server for humans who create. Proof of authorship, license control.
The publisher's own server: TAP
A personal publishing server that lets an assistant browse, search and read one author's signed works, request licenses, and leave messages or questions.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.kapoost%2Fhumanmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"humanmcp-kapoost": {
"type": "http",
"url": "https://kapoost.humanmcp.net/mcp"
}
}
}A personal content server speaking Model Context Protocol (MCP/JSON-RPC 2.0).
Live: https://kapoost.humanmcp.net Landing page: https://humanmcp.net Marketplace: https://marketplace.humanmcp.net Network explorer: https://humanmcp.net/humannetwork.html Author: kapoost (Łukasz Kapuśniak) — poet, builder, sailor. Warsaw / Malta.
humanMCP lets any human publish content and services with cryptographic proof of authorship, explicit license terms, and full control over access. Writers, artists, consultants, craftspeople, galleries, freelancers — anyone who creates valuable work. AI agents connect via MCP and interact with your content natively.
Every human can run their own instance. One server, one person, their rules.
Content & Discovery
IP & Verification
Interaction
Session & Context
Skills
Personas
humanmcp-go is a framework. Persona prompts and skill bodies are yours — they don't ship in this repo. Two ways to supply them:
Owner API / mounted volume — POST upsert_persona / upsert_skill with the EDIT_TOKEN, or drop JSON files into ${CONTENT_DIR}/personas/ and ${CONTENT_DIR}/skills/ on the host volume.
External vault (recommended) — set VAULT_URL env to a server you control (e.g. a private FastAPI on your tailnet). SkillStore fetches GET ${VAULT_URL}/persona/{id} and GET ${VAULT_URL}/skill/{slug} on demand with a 5min in-memory cache. Lets your sensitive prompts stay on your machine while the public framework serves them.
Persona JSON shape (vault response):
Skill JSON shape (vault response):
When VAULT_URL is unreachable, bootstrap_session loudly reports the downgrade (won't silently fall back). See internal/content/skill.go for the fetch/cache implementation.
Listings
Federation
Meta
Pieces (Markdown files):
poem, essay, note, artwork, image, contactpublic / members / lockedchallenge (Q&A), time, manual, tradefree, cc-by, cc-by-nc, commercial, exclusive, all-rightsBlobs (typed data artifacts):
image, contact, vector, document, dataset, capsule, provenance[agent:claude, human:alice, agent:*]Public links: read_blob slug:"kapoost-contact" — name, handle, github, instagram, facebook, landing page.
Private email: read_content slug:"kapoost-contact-private" — gated. Answer the challenge to access.
Every piece is signed with Ed25519. get_certificate returns:
Agent discovery:
/.well-known/agent.json — agent profile card/.well-known/mcp-server.json — MCP server discovery/openapi.json — OpenAPI 3.1 spec (ChatGPT, Gemini)/llms.txt — LLM preferences (signed)/for-agents — agent onboarding page/connect — connection methods pageREST API (for agents without MCP):
GET /api/content — list all piecesGET /api/content/{slug} — read pieceGET /api/search?q=... — full-text searchGET /api/profile — author name, bio, tagsGET /api/blobs — list data artifactsGET /listings/feed.json — listings feedGET /content/stream.json — unified content stream (pieces + listings, for humanNetwork)SEO:
robots.txt, sitemap.xml, humans.txtlist_peers / announce_peer MCP tools and /api/peers REST/data/new pageThe script asks for your name and bio, then:
Done in ~2 minutes. You get:
https://yourname.humanmcp.net — your serverhttps://yourname.humanmcp.net/connect — share with friendshttps://humanmcp.net/humannetwork.html?add=https://yourname.humanmcp.net — 1-click follow136 tests across content, MCP, and upload/signature/license suites.
Source: README.md at commit d5b43b9
Self-description of this humanMCP server. Deterministic, no bootstrap required — call this first to decide whether the rest of the API is relevant.
Takes no parameters.
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). ALWAYS set `from` to a stable name for yourself: with it, sending the same question again returns the answer instead of creating a duplicate, which is the reliable path when your runtime cannot keep the ID between sessions.
fromcontextquestionrequiredValidate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP.
coderequiredDelete a skill by slug. Owner-only: requires Authorization: Bearer <token>.
slugrequiredPoll 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.
idrequiredPoll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices.
idrequiredAuthor identity, bio, and a browsing cheatsheet. Records a profile-view event.
Takes no parameters.
Return a formatted copyright/authenticity certificate for a piece.
slugrequiredReturn 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 Authorization header.
slugrequiredsession_tokenRead a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers.
slugrequiredReturn 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 Authorization header.
slugrequiredsession_tokenAttach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit.
fromslugrequiredtextrequiredSend kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible.
fromtextrequiredcontactcontextrequiredregardingList typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs audience.
blob_typecaller_idcaller_kindList works kapoost owns but did NOT create. Public items always; members-only surface only after session activation.
session_tokenList published pieces (slug, title, type, access, tags). Optional type/tag filters.
tagtypeList every persona (slug, title, role). Full prompts unlock after bootstrap_session.
Takes no parameters.
List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection.
slugrequiredIndex of every skill tag in use, with slugs per group. Public — no bootstrap required.
Takes no parameters.
List skills (slug, category, title, tags). Optional category / tag filters.
tagcategoryBulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session.
namerequiredsession_tokenFetch one document from kapoost's vault by slug. Requires Authorization: Bearer <edit token or friend token>. Friend tokens: vault-side filter enforces scope + access:private invisibility — an out-of-scope or private slug returns not_found. Vault offline ⇒ {status:offline}.
doc_slugrequiredEnumerate vault documents without FTS — for browsing by type or paginating. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only their scoped doc_types; access:private is invisible. Args: {doc_type?: string filter (note/pdf/literatura/calendar_event/...), limit?: int 1-200 default 50, offset?: int default 0}. Returns [{slug, title, doc_type, created_at, chunk_count}]. Vault offline ⇒ {status:offline}.
limitoffsetdoc_typeFull-text search (BM25 over SQLite FTS5) on kapoost's local vault corpus. Requires Authorization: Bearer <edit token or friend token>. Friend tokens see only their scoped doc_types; access:private is invisible. Returns {status, results:[{source, type, body, doc_slug, title, page, citation}], summary}. Vault offline ⇒ {status:offline}.
limitqueryrequireddoc_slugdoc_typeRead-only liveness probe on kapoost's local vault (mysłoodsiewnia). Returns {status: online|degraded|offline, last_seen, commit_sha, personas_updated_at, skills_updated_at}. Offline is a stable state — retry later, don't escalate. Requires Authorization: Bearer <edit token or friend token>.
Takes no parameters.
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), title (required), body (required, ≤100 KiB), source_path?, meta?}. Requires Authorization: Bearer <owner token>. On Unauthorized: obtain the token by either (a) calling bootstrap_session(code=<owner poet fragment>) and reading SESSION_TOKEN from the response briefing (1h TTL, preferred for agents that already know the code), or (b) if you have shell access on kapoost's Mac, running `security find-generic-password -s humanmcp-edit-token -w` to fetch the persistent EDIT_TOKEN. Server-side vault auto-tags via:humanmcp-bridge; op_id is dedup key (idempotent retries safe). Delete is permanently unavailable. Envelopes: {status:online, op_id, result:{slug, created_at}}, {status:invalid_args}, {status:payload_too_large, limit, got}, {status:offline}, {status:vault_timeout}, {status:vault_error, error}.
bodyrequiredmetatitlerequireddoc_typerequiredsource_pathOffline 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 voices. No LLM cost, no rate limit, nothing recorded — no narada ID and no journal feedback. Prefer this over run_narada when your subagents can read material the server cannot (a repository, local files) or when the server has no API key. Session-gated.
contextrequiredpersonassession_tokenRead one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public.
slugrequiredcaller_idcaller_kindFull record for one collection item + dossier count. Access-gated: private is never visible, members needs session.
slugrequiredsession_tokenRead a public piece by slug. Locked pieces return a hint pointing at request_access.
slugrequiredReturn one provenance item with resolvable file URLs. slug + id required.
idrequiredslugrequiredList memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember.
coderequiredlimitquerysession_tokenAsk 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.
narada_idrequiredpersona_slugrequirederror_contextrequiredPersist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory.
coderequiredfromtagstextrequiredsession_tokenGet the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules.
slugrequiredDeclare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned).
slugrequiredcaller_idrequiredintended_userequiredCreate 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). Returns job ID for polling. Pass `personas` to pick the voices yourself and skip the router entirely — the router matches keywords only and cannot read a request to include or exclude someone written in the context.
fromcontextrequiredpersonasSearch kapoost's pieces by words in title, tags, description and body. Every word must match (AND). Polish diacritics are folded, so "czlowieczenstwa" finds "człowieczeństwa". Use this BEFORE ask_human — most questions about which piece is which are answered here instantly, while ask_human waits for a human. Locked pieces are matched by title and tags only; their body is never searched or quoted.
limitqueryrequiredSubmit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body.
slugrequiredanswerrequiredDeterministic 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 LLM classification.
fileslanguagesgit_originForce-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state.
slugrequiredCreate or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json.
bodyrequiredslugrequiredtagstitlerequiredcategoryrequiredVerify a piece's Ed25519 signature against the server's owner public key.
slugrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.

tech.humanOfficial publisher
TAP is a hosted remote MCP endpoint that isolates AI agents' credentials using placeholder secrets, policy checks and optional human approval.
africa.ugcOfficial publisher
Remote MCP endpoint for UGC, a "Human Ad Network", letting an assistant work with ad campaigns, clipping and Clip Studio from chat.

com.woodstitch
Runs paid, blinded human listening tests on text-to-speech audio and returns preference or human-vs-AI scores with confidence intervals.

Published by GitHub account joshuajdawg0350
Read-only catalog server for the J-Dawgs AI Tool Store and Human Hands for AIs, letting an assistant search tools, prices and bundles and learn how agents…

Published by GitHub account magiautonomous
Submits a product for an honest, human-written review and lets an assistant check status or read the finished feedback using a secret receipt token.
{"id":"hermes","name":"Hermes","role":"Process Optimizer","prompt":"<full system prompt>"}{"slug":"system-diagram","title":"...","description":"...","persona_id":"mira","tags":[...],"instructions":"<full playbook>"}{ "mcpServers": { "kapoost": { "type": "http", "url": "https://kapoost.humanmcp.net/mcp" } }}git clone https://github.com/kapoost/humanmcp-go.gitcd humanmcp-gobash setup.shgo build ./cmd/server/EDIT_TOKEN=secret AUTHOR_NAME=yourname ./serverfly launch --name yourname-humanmcpfly secrets set EDIT_TOKEN=secret AUTHOR_NAME=yournamefly deploygo run ./cmd/keygen/fly secrets set SIGNING_PRIVATE_KEY="..." SIGNING_PUBLIC_KEY="..."go test ./...