
humanMCP Marketplace
A federated listings board across personal humanMCP servers. No accounts. No algorithms. Just humans and their offers.
Live: https://marketplace.humanmcp.net
MCP endpoint: POST https://marketplace.humanmcp.net/mcp
What it does
Every human can run their own humanMCP server โ publishing listings, offers, and trades. The marketplace crawls these servers and builds a single searchable index of listings.
Think of it as a town square where every stall is independently owned. The marketplace doesn't host content โ it indexes and links back to the origin.
Connect an agent
{
"mcpServers": {
"humanmcp-marketplace": {
"type": "http",
"url": "https://marketplace.humanmcp.net/mcp"
}
}
}MCP Tools
| Tool | Description |
|---|---|
search_marketplace | Search listings across all servers โ offers, trades, services |
list_servers | All registered humanMCP instances |
get_server | Server detail |
REST API
GET /servers โ list all registered servers
GET /servers/{domain} โ server detail
GET /search?q={query} โ full-text search across all listings
GET /search?q=bread&type=trade โ filter by listing type
GET /feed โ recent listings feed (JSON)
POST /register โ register a humanMCP instance
POST /mcp โ MCP JSON-RPC 2.0 endpointAgent discovery
GET /.well-known/agent.json โ agent profile card
GET /openapi.json โ OpenAPI 3.1 spec
GET /healthz โ status + server/listing countsWeb UI
GET / โ homepage โ listings + servers
GET /q?q={query} โ search results
GET /s/{domain} โ server pageKeyboard shortcuts: / search, j/k navigate, Enter open, d theme, ? help.
Register your server
Any humanMCP instance can join. No account needed โ just your domain:
curl -X POST https://marketplace.humanmcp.net/register \
-H "Content-Type: application/json" \
-d '{"domain": "yourname-humanmcp.fly.dev"}'The marketplace will:
- Verify it's a real humanMCP (fetches
/.well-known/agent.json) - Index all listings from
/listings/feed.json - Add to crawl schedule (every 6 hours)
Requirements: your server must expose /.well-known/agent.json and /listings/feed.json.
How crawling works
Your humanMCP server
โ
Marketplace fetches /.well-known/agent.json (identity)
โ
Fetches /api/profile (author name, bio, tags)
โ
Fetches /listings/feed.json (listings)
โ
Indexes in SQLite + FTS5
โ
Searchable within minutes, re-crawled every 6 hoursListings stay on your server. Marketplace keeps a search index only.
Stack
- Go (stdlib +
modernc.org/sqlite) - SQLite + FTS5 for full-text search
- Fly.io single machine, 256MB
- No JS framework โ server-rendered HTML with keyboard navigation
Run locally
go build -o marketplace ./cmd/server/
./marketplace --seed kapoost.humanmcp.net
# open http://localhost:8080Key principles
- Listings only โ marketplace indexes offers, trades, services
- No content hosting โ index + link back, always
- Attribution โ author server visible on every result
- Opt-in โ register voluntarily
- Federated โ anyone can run their own marketplace instance
- Open protocol โ humanMCP REST API is the standard
Creative content (poems, essays, images) belongs on the author's server. A separate discovery service for that is planned.
Configuration
| Source | Name | Default | Description |
|---|---|---|---|
| env | PORT | 8080 | Listen port |
| env | DB_PATH | ./marketplace.db | SQLite database path |
| env | SEED_SERVER | โ | Domain to crawl on startup |
| flag | --addr | :8080 | Listen address |
| flag | --db | ./marketplace.db | Database path |
| flag | --seed | โ | Seed server domain |
| flag | --crawl-interval | 6h | Re-crawl interval |
Deploy
fly apps create humanmcp-marketplace
fly volumes create marketplace_data --size 1 --region ams
fly deployNo common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
License
MIT