MCP.so
Sign In
H

Humanmcp

@kapoost

About Humanmcp

my poems, photos, original content

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "humanmcp-kapoost": {
      "url": "https://kapoost.humanmcp.net/mcp"
    }
  }
}

Tools

41

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

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).

Validate the Polish poetry session code, then emit the full team briefing (guardian + style + personas + skills + persist block). Rate-limited 5/min/IP.

Delete a skill by slug. Owner-only: requires Authorization: Bearer <token>.

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.

Poll a narada job by ID. Statuses: pending, running, done, failed. When done, returns all persona voices.

Author identity, bio, and a browsing cheatsheet. Records a profile-view event.

Return a formatted copyright/authenticity certificate for a piece.

Return one persona's full prompt by slug. Session-gated except for Hodor (guardian rules must always apply).

Read a persona's raw reflection journal. Owner-only — the journal is a private feedback loop, not for external callers.

Return one skill's full body by slug. Session-gated except for -public suffixed skills (guardian bypass).

Attach a short comment (≤280 chars) to a piece kapoost has published. Truncated silently past the limit.

Send kapoost a longer message. context REQUIRED (why you're writing / which piece / which task). contact optional — without it no reply is possible.

List typed data artifacts (images, contact, vectors, documents, datasets, capsules). Filter by blob_type. Readable-column reflects caller_kind + caller_id vs audience.

List works kapoost owns but did NOT create. Public items always; members-only surface only after session activation.

List published pieces (slug, title, type, access, tags). Optional type/tag filters.

List every persona (slug, title, role). Full prompts unlock after bootstrap_session.

List provenance items (chain of custody, certificates, invoices) for an artwork slug. Tries piece then collection.

Index of every skill tag in use, with slugs per group. Public — no bootstrap required.

List skills (slug, category, title, tags). Optional category / tag filters.

Bulk-fetch every skill tagged with the given group name. Respects the bootstrap gate per-skill: -public suffix bypasses, everything else needs session.

Fetch 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}.

Enumerate 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}.

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 their scoped doc_types; access:private is invisible. Returns {status, results:[{source, type, body, doc_slug, title, page, citation}], summary}. Vault offline ⇒ {status:offline}.

Read-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>.

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}.

Read one blob by slug. Returns text or base64-encoded data. Access-gated by audience unless blob is public.

Full record for one collection item + dossier count. Access-gated: private is never visible, members needs session.

Read a public piece by slug. Locked pieces return a hint pointing at request_access.

Return one provenance item with resolvable file URLs. slug + id required.

List memories saved under the given code, optionally substring-filtered by query. Session-gated for symmetry with remember.

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.

Persist a note under the given session code. Session-gated — bootstrap_session first. Callers sharing the code share the memory.

Get the gate details for a locked piece: challenge question, manual-review flow, time-lock countdown, payment terms, or trade rules.

Declare intended use of a piece, get licensing terms + audit-log entry. caller_id is REQUIRED (whitespace-only rejected — storyboard-pinned).

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). Returns job ID for polling.

Submit an answer to a challenge-gated piece. Correct answer unlocks and returns the full body.

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 LLM classification.

Force-run Sonnet synthesis over a persona's raw journal, replacing the previous pattern set. Owner-only — paid + writes internal state.

Create or replace a skill by slug. Owner-only: requires Authorization: Bearer <token>. Writes JSON to content/skills/<slug>.json.

Verify a piece's Ed25519 signature against the server's owner public key.

Overview

What is Humanmcp?

Humanmcp is a personal content server that speaks the Model Context Protocol (MCP/JSON-RPC 2.0). It lets authors publish poems, essays, notes, images, and typed data artifacts with cryptographic proof of authorship, explicit license terms, and fine-grained access control. AI agents connect natively via MCP to browse, read, verify, and license the content.

How to use Humanmcp?

Configure an MCP client with {"mcpServers": {"kapoost": {"type": "http", "url": "https://kapoost-humanmcp.fly.dev/mcp"}}} to access 12 tools. Locally, build with go build ./cmd/server/ and run with EDIT_TOKEN and AUTHOR_NAME environment variables. Deploy on Fly.io using fly launch and fly deploy.

Key features of Humanmcp

  • 12 MCP tools for browsing, reading, and verifying content
  • Ed25519 cryptographic signatures on every piece
  • Intellectual property certificates with Originality Index
  • Access gates: challenge, time, manual, and trade
  • Licenses from free to commercial and exclusive
  • Typed data artifacts (blobs) with audience targeting
  • Zero external Go dependencies; Markdown files as database

Use cases of Humanmcp

  • Publish poems, essays, and notes with verifiable authorship
  • Share images, vectors, and datasets with specific agents or humans
  • License creative work with cryptographically signed certificates
  • Run a personal, self-sovereign content server for AI agents

FAQ from Humanmcp

What dependencies or runtime does Humanmcp require?

Go 1.22 with zero external dependencies. It runs on Fly.io with a persistent volume at /data, or locally via go build and environment variables.

Where does my content data live?

All content is stored as plain Markdown files on a Fly.io persistent volume mounted at /data.

What are the content size limits?

Messages and comments are limited to 2000 characters; blob inline text to 512 KB; file uploads to 50 MB; slugs to 64 characters; titles to 256 characters.

How does cryptographic proof of authorship work?

Every piece is signed with Ed25519. The get_certificate tool returns the SHA-256 content hash, the Ed25519 signature plus public key, and an Originality Index (0.0–1.0) with a grade (S/A/B/C

Frequently asked questions

What dependencies or runtime does Humanmcp require?

Go 1.22 with zero external dependencies. It runs on Fly.io with a persistent volume at `/data`, or locally via `go build` and environment variables.

Where does my content data live?

All content is stored as plain Markdown files on a Fly.io persistent volume mounted at `/data`.

What are the content size limits?

Messages and comments are limited to 2000 characters; blob inline text to 512 KB; file uploads to 50 MB; slugs to 64 characters; titles to 256 characters.

How does cryptographic proof of authorship work?

Every piece is signed with Ed25519. The `get_certificate` tool returns the SHA-256 content hash, the Ed25519 signature plus public key, and an Originality Index (0.0–1.0) with a grade (S/A/B/C

Comments

More Other MCP servers