Public MCP server  ·  Free  ·  Read-only

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:

MCP 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.

ParameterTypeRequiredDescription
slugstringYesThe 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.

ParameterTypeRequiredDescription
categorystringNoCategory slug, e.g. "film". See list_categories.
limitintegerNoMax results (default 20, max 100).
offsetintegerNoSkip this many results, for paging.
querystringNoMatch 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.

ParameterTypeRequiredDescription
querystringYesText to find in entry titles, creators and reasons.
limitintegerNoMax 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.