humanMCP
Personal MCP server for humans. Publish poetry, essays, listings with Ed25519 signatures. Store skills and memories. Bootstrap session unlocks expert team. Go stdlib only, zero deps.
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.
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:
-
Owner API / mounted volume — POST
upsert_persona/upsert_skillwith theEDIT_TOKEN, or drop JSON files into${CONTENT_DIR}/personas/and${CONTENT_DIR}/skills/on the host volume. -
External vault (recommended) — set
VAULT_URLenv to a server you control (e.g. a private FastAPI on your tailnet). SkillStore fetchesGET ${VAULT_URL}/persona/{id}andGET ${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 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.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_peerMCP tools and/api/peersREST - 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
/newpage
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 serverhttps://yourname.humanmcp.net/connect— share with friendshttps://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
Signing keys (optional but recommended)
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 ./...
相關伺服器
aibtc-mcp-server
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.
AgentPay
x402 payment gateway for AI agents — 12 crypto data tools (price, whale activity, gas, TVL, Fear & Greed, Dune queries) paid per-call in USDC on Stellar or Base. No API keys, no subscriptions.
Canvelete
API-first platform for image optimization and document design. Generate optimized images, PDFs, and documents at scale with our visual editor and REST API.
SwitchBot MCP Server
Control SwitchBot devices interactively using the SwitchBot API.
Unreal Engine
Let AI agents see, build, test, and edit inside Unreal Engine 5.7 — including Blueprints, which are normally opaque binary assets.
OpenPaper MCP
Generate academic papers with verified citations via AI
winforensics-mcp
A comprehensive MCP server for Windows digital forensics on KALI Linux
PaKi Curator — Visual Medicine Art Catalog
MCP server for César Yagüe's Visual Medicine — 301 contemplative moving art works (seamless loops up to 16K), 109 vibrational capsules, 6 tools including spatial recommendations and direct artist inquiry.
Compound MCP Server
Lending and borrowing data, market rates, and user positions on Compound Finance.
AgentBazaar
A2A marketplace with 1800+ AI agents. Search, invoke, trade capabilities, datasets, prompts.