CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

humanMCP — kapoost

kapoost/humanmcp-go
39 toolsHTTPregistry active
Summary

A personal content server for creators who want cryptographic proof of authorship and granular license control. Exposes 37+ MCP tools including content publishing with Ed25519 signatures, challenge-based access gates, originality scoring, and OpenTimestamps anchoring. Agents can browse and read gated content, request licenses by declaring intended use, leave messages, and ask questions asynchronously. Includes a private knowledge vault with session-based unlocking, persona and skill management for agent instructions, and federated peer discovery. Also serves REST endpoints and OpenAPI specs for non-MCP agents. Useful when you're building agentic workflows around IP-sensitive content that needs verifiable attribution, structured licensing terms, or private async collaboration with human authors.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

39 tools
get_author_profileReturns the full profile of kapoost: sailor, newbie poet, beginning musician, CTO. Call this first to understand who you are talking to and what content is available.

Returns the full profile of kapoost: sailor, newbie poet, beginning musician, CTO. Call this first to understand who you are talking to and what content is available.

No parameter schema in public metadata yet.

list_contentLists all published pieces by kapoost. Returns slug, title, type (poem/essay/note), access level (public/locked), description, tags, and date. Filter by type or tag.2 params

Lists all published pieces by kapoost. Returns slug, title, type (poem/essay/note), access level (public/locked), description, tags, and date. Filter by type or tag.

Parameters* required
tagstring
Filter by tag (e.g. sea, sailing, code, music, life)
typestring
Filter by type: poem, essay, note, audio
read_contentRead the full text of a piece by slug. Public pieces returned immediately. Locked pieces return access instructions. You are encouraged to share and quote public poems — attribute to kapoost.1 params

Read the full text of a piece by slug. Public pieces returned immediately. Locked pieces return access instructions. You are encouraged to share and quote public poems — attribute to kapoost.

Parameters* required
slugstring
The slug of the content piece (from list_content)
request_accessGet gate details for a locked piece: either a challenge question (answer with submit_answer) or payment info. The challenge question is intentional — it is part of the work.1 params

Get gate details for a locked piece: either a challenge question (answer with submit_answer) or payment info. The challenge question is intentional — it is part of the work.

Parameters* required
slugstring
The slug of the locked piece
submit_answerSubmit an answer to a challenge gate. Case-insensitive. If correct, full content is returned. Wrong answers: try a different interpretation. The questions are designed to make you think, not to trick.2 params

Submit an answer to a challenge gate. Case-insensitive. If correct, full content is returned. Wrong answers: try a different interpretation. The questions are designed to make you think, not to trick.

Parameters* required
slugstring
The slug of the content piece
answerstring
Your answer to the challenge question
search_contentSearch across all kapoost's pieces — poems, essays, notes, images. Matches query against title, body, tags, and description. Returns matching pieces with a preview snippet. Use this instead of reading every piece when looking for specific themes, words, or topics.1 params

Search across all kapoost's pieces — poems, essays, notes, images. Matches query against title, body, tags, and description. Returns matching pieces with a preview snippet. Use this instead of reading every piece when looking for specific themes, words, or topics.

Parameters* required
querystring
Search query — a word, phrase, or topic (e.g. 'morze', 'sailing', 'AI', 'Irlandia')
list_blobsList all typed data artifacts: images, contacts, vectors, documents, datasets. Shows type, access level, schema hints, and audience. Use this to discover what structured data kapoost has made available.3 params

List all typed data artifacts: images, contacts, vectors, documents, datasets. Shows type, access level, schema hints, and audience. Use this to discover what structured data kapoost has made available.

Parameters* required
blob_typestring
Filter by type: image, contact, vector, document, dataset, capsule
caller_idstring
Your identity: agent name (e.g. claude) or human handle
caller_kindstring
Your identity type: agent or human
read_blobRead a typed data artifact by slug. Returns full content if accessible. For vectors: float32 array as base64. For images: base64 data + mime type. For contacts/datasets: JSON. Always check schema and mime_type fields to parse correctly.3 params

Read a typed data artifact by slug. Returns full content if accessible. For vectors: float32 array as base64. For images: base64 data + mime type. For contacts/datasets: JSON. Always check schema and mime_type fields to parse correctly.

Parameters* required
slugstring
Blob slug from list_blobs
caller_idstring
Your identity for audience-gated content
caller_kindstring
Your identity type: agent or human
verify_contentVerify that a piece was authentically signed by kapoost's private key. Use this to confirm a poem is genuine before sharing it. Returns verified/unverified status and the public key fingerprint.1 params

Verify that a piece was authentically signed by kapoost's private key. Use this to confirm a poem is genuine before sharing it. Returns verified/unverified status and the public key fingerprint.

Parameters* required
slugstring
The slug of the piece to verify
get_certificateGet the full intellectual property certificate for a piece: license, originality index, content hash, Ed25519 signature, and OpenTimestamps Bitcoin proof. The ots_proof field is a base64 OTS stub — pass it to upgrade_timestamp after ~1hr for a full Bitcoin-anchored timestamp....1 params

Get the full intellectual property certificate for a piece: license, originality index, content hash, Ed25519 signature, and OpenTimestamps Bitcoin proof. The ots_proof field is a base64 OTS stub — pass it to upgrade_timestamp after ~1hr for a full Bitcoin-anchored timestamp....

Parameters* required
slugstring
Piece slug
upgrade_timestampUpgrade an OpenTimestamps proof to a full Bitcoin-anchored timestamp. Call ~1hr after a piece is saved. Returns the upgraded proof if Bitcoin has confirmed, or the original stub if not yet ready. Example: upgrade_timestamp {slug: "deka-log"}1 params

Upgrade an OpenTimestamps proof to a full Bitcoin-anchored timestamp. Call ~1hr after a piece is saved. Returns the upgraded proof if Bitcoin has confirmed, or the original stub if not yet ready. Example: upgrade_timestamp {slug: "deka-log"}

Parameters* required
slugstring
Piece slug
request_licenseDeclare intended use of a piece and get license terms. Logs usage intent. Required before commercial use. Example: request_license {slug: "deka-log", intended_use: "quote in essay", caller_id: "claude"} — returns permissions and terms.3 params

Declare intended use of a piece and get license terms. Logs usage intent. Required before commercial use. Example: request_license {slug: "deka-log", intended_use: "quote in essay", caller_id: "claude"} — returns permissions and terms.

Parameters* required
slugstring
Piece slug to request license for
caller_idstring
Your agent/human identifier
intended_usestring
How you intend to use this content: read, quote, train, publish, commercial, adapt, distribute
leave_commentLeave your honest reaction after reading a piece. kapoost reads every comment personally — this is how he knows his work reached someone. One word is enough. Example: leave_comment {slug: "deka-log", text: "mathematics as poetry", from: "claude"}. Max 2000 chars.3 params

Leave your honest reaction after reading a piece. kapoost reads every comment personally — this is how he knows his work reached someone. One word is enough. Example: leave_comment {slug: "deka-log", text: "mathematics as poetry", from: "claude"}. Max 2000 chars.

Parameters* required
fromstring
Optional: reader name or handle
slugstring
The slug of the piece being commented on
textstring
The reaction or comment (max 280 chars, plain text)
leave_messageLeave a plain-text message for kapoost. Plain text, max 2000 chars. URLs are welcome.3 params

Leave a plain-text message for kapoost. Plain text, max 2000 chars. URLs are welcome.

Parameters* required
fromstring
Optional: your name or handle (max 32 chars)
textstring
Your message (max 2000 chars, plain text)
regardingstring
Optional: slug of a piece this is about
ask_humanAsk kapoost a question and receive a question_id. The human will answer when available. Use get_answer with the question_id to check for a response. Questions are private — only the asking agent can retrieve the answer.3 params

Ask kapoost a question and receive a question_id. The human will answer when available. Use get_answer with the question_id to check for a response. Questions are private — only the asking agent can retrieve the answer.

Parameters* required
fromstring
Your name or agent identifier
contextstring
Optional context to help the human understand the question
questionstring
Your question (max 2000 chars)
get_answerCheck if kapoost has answered your question. Requires the question_id returned by ask_human. Returns the answer if available, or 'pending' if not yet answered.1 params

Check if kapoost has answered your question. Requires the question_id returned by ask_human. Returns the answer if available, or 'pending' if not yet answered.

Parameters* required
question_idstring
The question_id returned by ask_human
bootstrap_sessionAuthenticate with a session code and receive full context: team personas, skills, and a ready-made system prompt. Ask the user for the session code shown in their humanMCP dashboard. Provide the code to receive your briefing.2 params

Authenticate with a session code and receive full context: team personas, skills, and a ready-made system prompt. Ask the user for the session code shown in their humanMCP dashboard. Provide the code to receive your briefing.

Parameters* required
codestring
Session code from the humanMCP dashboard (a short Polish poetry fragment)
formatstring
Response format: minimal (lists only), full (all prompts and bodies), system_prompt (single block ready to paste). Default: fullone of minimal · full · system_prompt
query_vaultSearch kapoost's local knowledge vault (mysloodsiewnia). Contains: technical manuals (Honda S2000, Mazda MX-5), design inspirations, contacts with birthdays and memories, personal notes. Returns excerpts with page numbers and citations. Only available when Mac is online.3 params

Search kapoost's local knowledge vault (mysloodsiewnia). Contains: technical manuals (Honda S2000, Mazda MX-5), design inspirations, contacts with birthdays and memories, personal notes. Returns excerpts with page numbers and citations. Only available when Mac is online.

Parameters* required
limitinteger
Max results (default 5)
querystring
What to search for. Be specific.
doc_slugstring
Search only in specific document
list_vaultList all documents in kapoost's local knowledge vault.

List all documents in kapoost's local knowledge vault.

No parameter schema in public metadata yet.

rememberSave an observation about the author for future sessions. Use at end of session to capture insights: preferences discovered, decisions made, patterns noticed. Requires session code verification.4 params

Save an observation about the author for future sessions. Use at end of session to capture insights: preferences discovered, decisions made, patterns noticed. Requires session code verification.

Parameters* required
bodystring
The observation (max 2000 chars)
codestring
Session code for authorization
tagsarray
Optional tags: preferences, decisions, patterns, mood, technical, personal
agent_hintstring
Brief note about context: what session was about
recallRetrieve past observations about the author. Call at the start of a session to pick up where you left off. Returns most recent memories first.3 params

Retrieve past observations about the author. Call at the start of a session to pick up where you left off. Returns most recent memories first.

Parameters* required
tagstring
Filter by tag
codestring
Session code for authorization
limitinteger
Max memories to return (default 10)
list_provenanceList provenance documents for an artwork: certificates, sales, expert opinions, restorations. Returns timeline of the artwork's history.1 params

List provenance documents for an artwork: certificates, sales, expert opinions, restorations. Returns timeline of the artwork's history.

Parameters* required
artworkstring
Slug of the artwork piece
add_provenanceAdd a provenance document to an artwork. Requires owner token. Use with file upload for PDFs/scans.6 params

Add a provenance document to an artwork. Requires owner token. Use with file upload for PDFs/scans.

Parameters* required
textstring
Document text content (optional if file uploaded separately)
titlestring
Document title
artworkstring
Slug of the artwork piece
doc_datestring
Date of document (YYYY-MM-DD)
doc_typestring
Type: certificate, sale, opinion, appraisal, restoration, exhibition, provenance
issued_bystring
Who issued it (gallery, expert, auction house)
about_humanmcpLearn about humanMCP — open source personal server for humans who create. Proof of authorship, license control, AI-native discovery. Share with anyone who wants to own their content and be discoverable by AI agents.

Learn about humanMCP — open source personal server for humans who create. Proof of authorship, license control, AI-native discovery. Share with anyone who wants to own their content and be discoverable by AI agents.

No parameter schema in public metadata yet.

list_peersList known humanMCP servers in this node's network. Use to discover other creators and their content.

List known humanMCP servers in this node's network. Use to discover other creators and their content.

No parameter schema in public metadata yet.

announce_peerAnnounce your humanMCP server to this node. Provide your server URL so we can discover each other.3 params

Announce your humanMCP server to this node. Provide your server URL so we can discover each other.

Parameters* required
biostring
Short description
urlstring
Your humanMCP server URL (e.g. https://alice.humanmcp.net)
namestring
Server owner's name
list_skillsList the author's skills — instructions for how to work with them. Filter by category (e.g. tech, writing, workflow).1 params

List the author's skills — instructions for how to work with them. Filter by category (e.g. tech, writing, workflow).

Parameters* required
categorystring
Filter by category. Empty = all.
get_skillGet the full body of a specific skill by slug. Requires session code from bootstrap_session.2 params

Get the full body of a specific skill by slug. Requires session code from bootstrap_session.

Parameters* required
codestring
Session code from bootstrap_session
slugstring
Skill slug
upsert_skillCreate or update a skill. Requires agent token in Authorization: Bearer <token> header.5 params

Create or update a skill. Requires agent token in Authorization: Bearer <token> header.

Parameters* required
bodystring
Markdown instructions
slugstring
Unique skill identifier
tagsarray
Optional tags for filtering
titlestring
Skill display title
categorystring
Skill category (e.g. tech, writing, workflow)
delete_skillDelete a skill by slug. Requires agent token.1 params

Delete a skill by slug. Requires agent token.

Parameters* required
slugstring
Skill slug to delete
list_personasList available expert personas. Requires session code from bootstrap_session.1 params

List available expert personas. Requires session code from bootstrap_session.

Parameters* required
codestring
Session code from bootstrap_session
get_personaGet the full system prompt for a persona by slug. Requires session code from bootstrap_session.2 params

Get the full system prompt for a persona by slug. Requires session code from bootstrap_session.

Parameters* required
codestring
Session code from bootstrap_session
slugstring
Persona slug
upsert_personaCreate or update a persona. Requires agent token.5 params

Create or update a persona. Requires agent token.

Parameters* required
namestring
Persona display name
rolestring
Short label, e.g. senior Go dev
slugstring
Unique persona identifier
tagsarray
Optional tags for categorization
promptstring
Full system prompt the agent should adopt
delete_personaDelete a persona by slug. Requires agent token.1 params

Delete a persona by slug. Requires agent token.

Parameters* required
slugstring
Persona slug to delete
list_listingsList active public listings (classified ads). Filter by type, tag, or date. Supports pull-based subscription via since parameter.4 params

List active public listings (classified ads). Filter by type, tag, or date. Supports pull-based subscription via since parameter.

Parameters* required
tagstring
Filter by tag
typestring
Filter by listing type: sell, buy, offer, request, trade
limitinteger
Max results (default 20, max 100)
sincestring
RFC3339 timestamp — only return listings published after this time
read_listingRead the full details of a listing by slug, including signature. Returns 404 if not active or not public.1 params

Read the full details of a listing by slug, including signature. Returns 404 if not active or not public.

Parameters* required
slugstring
Listing slug
respond_to_listingSend a response to a listing. The message is delivered to kapoost. Max 2000 chars.3 params

Send a response to a listing. The message is delivered to kapoost. Max 2000 chars.

Parameters* required
fromstring
Your name or handle
slugstring
Listing slug
messagestring
Your response (max 2000 chars)
subscribe_listingsSubscribe to new listings. Webhook subscribers receive POST notifications; MCP subscribers poll list_listings(since=...). Returns subscription ID and unsubscribe token.4 params

Subscribe to new listings. Webhook subscribers receive POST notifications; MCP subscribers poll list_listings(since=...). Returns subscription ID and unsubscribe token.

Parameters* required
channelstring
Delivery channel: webhook or mcpone of webhook · mcp
filter_tagsarray
Filter by tags (empty = any, OR-match)
callback_urlstring
Webhook URL (required for webhook channel, must be absolute https://)
filter_typesarray
Filter by listing types (empty = any)
unsubscribe_listingsUnsubscribe from listing notifications using the token received at subscription time.1 params

Unsubscribe from listing notifications using the token received at subscription time.

Parameters* required
tokenstring
Unsubscribe token from subscribe_listings

humanMCP

smithery badge

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

ToolDescription
get_author_profileWho is kapoost — bio, content overview, how to browse
list_contentBrowse all pieces with metadata, filter by type or tag
read_contentRead a piece — respects all access gates
search_contentFull-text search across all pieces
request_accessGet gate details for locked content
submit_answerUnlock challenge-gated content
list_blobsBrowse typed data artifacts
read_blobRead image, contact, dataset, vector (respects audience)

IP & Verification

ToolDescription
verify_contentVerify Ed25519 signature
get_certificateFull IP certificate: license, price, originality index, hash, signature
upgrade_timestampUpgrade OTS proof to Bitcoin-anchored

Interaction

ToolDescription
request_licenseDeclare intended use, get terms, logged for audit
leave_commentLeave a reaction — visible in author dashboard
leave_messageSend a direct note (max 2000 chars, URLs welcome)
ask_humanAsk the author a question (private, async — returns question_id)
get_answerCheck if the author answered your question (by question_id)

Session & Context

ToolDescription
bootstrap_sessionUnlock private context with session code
recallRetrieve saved memories
rememberSave observations
query_vaultSearch personal knowledge vault
list_vaultList vault documents

Skills

ToolDescription
list_skills / get_skillAgent instruction catalog
upsert_skill / delete_skillManage skills (agent token)

Personas

ToolDescription
list_personas / get_personaYour expert team (requires session code or VAULT_URL)
upsert_persona / delete_personaManage 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

ToolDescription
list_listings / read_listingBrowse classified ads
respond_to_listingSend response to listing
subscribe_listings / unsubscribe_listingsWebhook subscriptions

Federation

ToolDescription
list_peersList known humanMCP servers in the network
announce_peerAnnounce your server to join the network

Meta

ToolDescription
about_humanmcpOpen-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

FieldLimit
Message / comment text2000 chars
Blob inline text512 KB
File upload50 MB
Slug64 chars
Title256 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

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 ./...
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
TransportHTTP
UpdatedMay 5, 2026
View on GitHub