Plug the lists
into your AI.
Every published list is available over the Model Context Protocol. No key, no account. Ask your assistant for movies from 1986 and it reads them straight from here.
Endpoint
Streamable HTTP transport at:
https://unoriginal.lol/mcp
Connect
Claude Code
claude mcp add --transport http unoriginal https://unoriginal.lol/mcp
Claude apps
In Claude, open Settings → Connectors, choose Add custom connector, and paste https://unoriginal.lol/mcp.
Any MCP client
Most clients take a JSON config:
{
"mcpServers": {
"unoriginal": {
"type": "http",
"url": "https://unoriginal.lol/mcp"
}
}
}
Tools
All tools are read-only and return structured JSON. Only published lists are visible.
get_list
Get one published list with every entry in ranked order.
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | The list's slug, e.g. "movies-from-1986". |
Example call:
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"slug": "movies-from-1986"
},
"name": "get_list"
}
}
list_categories
List the categories and how many published lists each has.
No parameters.
Example call:
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "list_categories"
}
}
list_lists
List published lists, newest first. Filter by category or a text query.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | No | Category slug, e.g. "film". See list_categories. |
limit | integer | No | Max results (default 20, max 100). |
offset | integer | No | Skip this many results, for paging. |
query | string | No | Match against list titles and descriptions. |
Example call:
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"category": "film",
"limit": 10
},
"name": "list_lists"
}
}
random_list
Get a random published list, entries included.
No parameters.
Example call:
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "random_list"
}
}
search_items
Search entries across every published list. Each hit includes its parent list.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Text to find in entry titles, creators and reasons. |
limit | integer | No | Max results (default 20, max 100). |
Example call:
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"query": "Cronenberg"
},
"name": "search_items"
}
}
Fine print
- Lists change. Rankings are final until we change our minds.
- Prefer a feed? Everything published is also in RSS.