Skip to main content
Glama

humanMCP

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.

What it is

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.

Related MCP server: Writer MCP

MCP Tools (37+)

Content & Discovery

Tool

Description

get_author_profile

Who is kapoost — bio, content overview, how to browse

list_content

Browse all pieces with metadata, filter by type or tag

read_content

Read a piece — respects all access gates

search_content

Full-text search across all pieces

request_access

Get gate details for locked content

submit_answer

Unlock challenge-gated content

list_blobs

Browse typed data artifacts

read_blob

Read image, contact, dataset, vector (respects audience)

IP & Verification

Tool

Description

verify_content

Verify Ed25519 signature

get_certificate

Full IP certificate: license, price, originality index, hash, signature

upgrade_timestamp

Upgrade OTS proof to Bitcoin-anchored

Interaction

Tool

Description

request_license

Declare intended use, get terms, logged for audit

leave_comment

Leave a reaction — visible in author dashboard

leave_message

Send a direct note (max 2000 chars, URLs welcome)

ask_human

Ask the author a question (private, async — returns question_id)

get_answer

Check if the author answered your question (by question_id)

Session & Context

Tool

Description

bootstrap_session

Unlock private context with session code

recall

Retrieve saved memories

remember

Save observations

query_vault

Search personal knowledge vault

list_vault

List vault documents

Skills

Tool

Description

list_skills / get_skill

Agent instruction catalog

upsert_skill / delete_skill

Manage skills (agent token)

Personas

Tool

Description

list_personas / get_persona

Your expert team (requires session code or VAULT_URL)

upsert_persona / delete_persona

Manage personas (agent token)

Personas & skills: where they live

humanmcp-go is a framework. Persona prompts and skill bodies are yours — they don't ship in this repo. Two ways to supply them:

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

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

{"id":"hermes","name":"Hermes","role":"Process Optimizer","prompt":"<full system prompt>"}

Skill JSON shape (vault response):

{"slug":"system-diagram","title":"...","description":"...","persona_id":"mira","tags":[...],"instructions":"<full playbook>"}

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

Tool

Description

list_listings / read_listing

Browse classified ads

respond_to_listing

Send response to listing

subscribe_listings / unsubscribe_listings

Webhook subscriptions

Federation

Tool

Description

list_peers

List known humanMCP servers in the network

announce_peer

Announce your server to join the network

Meta

Tool

Description

about_humanmcp

Open-source project info

Connect

{
  "mcpServers": {
    "kapoost": {
      "type": "http",
      "url": "https://kapoost.humanmcp.net/mcp"
    }
  }
}

Content types

Pieces (Markdown files):

  • Types: poem, essay, note, artwork, image, contact

  • Access: public / members / locked

  • Gates: challenge (Q&A), time, manual, trade

  • Licenses: free, cc-by, cc-by-nc, commercial, exclusive, all-rights

  • Price: free-form string (e.g. "500 PLN", "$200", "trade")

Blobs (typed data artifacts):

  • Types: image, contact, vector, document, dataset, capsule, provenance

  • Audience: [agent:claude, human:alice, agent:*]

  • Auto-signed on save if SIGNING_PRIVATE_KEY is set

  • Provenance documents link to artwork pieces (certificate, sale, opinion, appraisal)

Ecosystem

  • humanMCP Marketplace — federated search across all humanMCP servers. Find listings, offers, trades by humans. MCP endpoint · Source

  • humanNetwork — wall-style aggregator showing chronological content from your followed humanMCP servers (stream.json preferred, MCP fallback)

Contact

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.

Intellectual property

Every piece is signed with Ed25519. get_certificate returns:

  • SHA-256 content hash

  • Ed25519 signature + public key

  • Originality Index (0.0–1.0): burstiness (Fano Factor), lexical density (CTTR), Shannon entropy, structural signature — grades S/A/B/C/D

  • License terms and price in sats (for commercial licenses)

Discovery & REST API

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 page

REST API (for agents without MCP):

  • GET /api/content — list all pieces

  • GET /api/content/{slug} — read piece

  • GET /api/search?q=... — full-text search

  • GET /api/profile — author name, bio, tags

  • GET /api/blobs — list data artifacts

  • GET /listings/feed.json — listings feed

  • GET /content/stream.json — unified content stream (pieces + listings, for humanNetwork)

SEO:

  • robots.txt, sitemap.xml, humans.txt

Limits

Field

Limit

Message / comment text

2000 chars

Blob inline text

512 KB

File upload

50 MB

Slug

64 chars

Title

256 chars

Features

  • i18n — PL/EN language toggle on main page (EN default, stored in localStorage)

  • License wizard — per-piece usage rules: what humans may do, what AI agents may do

  • Artworks — photo upload, medium, dimensions, year, provenance documents

  • Provenance — attach certificates, sale records, expert opinions to artworks (signed)

  • ask_human — agents can ask the author questions privately (async Q&A, invisible to public)

  • Federation — peer discovery via list_peers / announce_peer MCP tools and /api/peers REST

  • Dynamic sections — main page shows only sections with published content

  • Free-form pricing — any currency, any format ("500 PLN", "$200", "trade only")

Stack

  • Go 1.22, zero external dependencies

  • Fly.io (region: waw), persistent volume at /data

  • Ed25519 signing (stdlib crypto)

  • Plain Markdown files as database

  • No JS except 8-line drag-drop on /new page

1-click deploy

git clone https://github.com/kapoost/humanmcp-go.git
cd humanmcp-go
bash setup.sh

The script asks for your name and bio, then:

  • Creates a Fly.io app (free tier)

  • Generates Ed25519 signing keys

  • Sets secrets and deploys

  • Prints your login token and 1-click follow link

Done in ~2 minutes. You get:

  • https://yourname.humanmcp.net — your server

  • https://yourname.humanmcp.net/connect — share with friends

  • https://humanmcp.net/humannetwork.html?add=https://yourname.humanmcp.net — 1-click follow

Run locally

go build ./cmd/server/
EDIT_TOKEN=secret AUTHOR_NAME=yourname ./server

Manual deploy

fly launch --name yourname-humanmcp
fly secrets set EDIT_TOKEN=secret AUTHOR_NAME=yourname
fly deploy
go run ./cmd/keygen/
fly secrets set SIGNING_PRIVATE_KEY="..." SIGNING_PUBLIC_KEY="..."

Future

  • C2PA manifest embedding for blob files (when CA trust chain opens to individuals)

  • Lightning Network payment gate for commercial licenses

  • Scored conversational gate (agent brings API key, Claude evaluates answers)

  • IP rate limiting + engagement tokens for anti-spam

Tests

136 tests across content, MCP, and upload/signature/license suites.

go test ./...
F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kapoost/humanmcp-go'

If you have feedback or need assistance with the MCP directory API, please join our Discord server