# humanMCP — kapoost [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/kapoost/humanmcp-go  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/humanmcp-kapoost

## Description
Personal MCP server for humans. Publish content, store skills, bootstrap expert team.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "humanmcp-kapoost": {
    "url": "https://smithery.ai/badge/kapoost/humanMCP)](https://smithery.ai/servers/kapoost/humanMCP"
  }
}
```

## Documentation & README

# humanMCP

[![smithery badge](https://smithery.ai/badge/kapoost/humanMCP)](https://smithery.ai/servers/kapoost/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:

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):
```json
{"id":"hermes","name":"Hermes","role":"Process Optimizer","prompt":"<full system prompt>"}
```

Skill JSON shape (vault response):
```json
{"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

```json
{
  "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](https://marketplace.humanmcp.net)** — federated search across all humanMCP servers. Find listings, offers, trades by humans. [MCP endpoint](https://marketplace.humanmcp.net/mcp) · [Source](https://github.com/kapoost/humanmcp-marketplace)
- **[humanNetwork](https://humanmcp.net/humannetwork.html)** — 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

```bash
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

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

## Manual deploy

```bash
fly launch --name yourname-humanmcp
fly secrets set EDIT_TOKEN=secret AUTHOR_NAME=yourname
fly deploy
```

## Signing keys (optional but recommended)

```bash
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.

```bash
go test ./...
```

