Relivo overview
Relivo is a multi-namespace Model Context Protocol server in Go: five independent MCP servers mounted on one HTTP mux over the Streamable HTTP transport.
One server, five namespaces. Relivo exposes memory, skills, gsc, producthunt, and event as independent MCP servers on a single net/http mux. Each namespace self-registers at startup via init(), so adding one is a single package and cmd/server/main.go never changes. Point any MCP client at a namespace route and its tools appear.
Memory holds durable, per-user knowledge in a hybrid RAG store (semantic and keyword) over Postgres and pgvector that survives across sessions.
Skills finds and downloads Agent Skills live from GitHub. Nothing is cached.
Search Console exposes Google Search Console: property management, search-analytics reports, URL inspection, and sitemaps.
Product Hunt wraps the Product Hunt v2 GraphQL API: posts, topics, collections, users, plus a raw GraphQL escape hatch.
Event is a Kafka bridge over MCP: publish messages to a topic, consume them back through a durable consumer group, and manage topics on Confluent Cloud.
The namespaces
Each route below is a fully independent MCP server. A domain never reaches across another domain except through internal/mcpx.
Store & recall per-user memories with hybrid RAG.
Find & download Agent Skills live from GitHub.
GSC analytics, URL inspection & sitemaps.
Posts, topics, collections & raw GraphQL.
Publish & consume Kafka messages, and manage topics.
Connect
Every URL below is derived from NEXT_PUBLIC_MCP_BASE_URL. Change it once and it updates everywhere in these docs.
Every request must carry an X-API-Key header. Sign in to create one.
https://go-mcp-server-latest.onrender.com/memory/mcphttps://go-mcp-server-latest.onrender.com/skills/mcphttps://go-mcp-server-latest.onrender.com/gsc/mcphttps://go-mcp-server-latest.onrender.com/producthunt/mcphttps://go-mcp-server-latest.onrender.com/event/mcpDrop the routes into any MCP client config:
{
"mcpServers": {
"memory": {
"type": "http",
"url": "https://go-mcp-server-latest.onrender.com/memory/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
},
"skills": {
"type": "http",
"url": "https://go-mcp-server-latest.onrender.com/skills/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
},
"gsc": {
"type": "http",
"url": "https://go-mcp-server-latest.onrender.com/gsc/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
},
"producthunt": {
"type": "http",
"url": "https://go-mcp-server-latest.onrender.com/producthunt/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
},
"event": {
"type": "http",
"url": "https://go-mcp-server-latest.onrender.com/event/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
}
}
}Every namespace requires an X-API-Keyheader carrying a registered key — add it to each server’s headers. Requests without one are rejected with 401 before they reach a tool.
The memorynamespace additionally uses the key as an identity: your memories are scoped to it and stay isolated from other callers’.