Skip to content
everloot
Get the addon

Connect a client

Claude, ChatGPT, Grok, Claude Code and any client that speaks streamable HTTP.

Every client uses the same hosted endpoint. It needs no sign-in and asks for no key, so there is nothing to set up beyond the URL.

MCP endpoint
https://everloot.app/mcp/public

Claude.ai and Claude Desktop#

  1. Open Connectors

    Open Customize, then Connectors. It works on every Claude plan, including Free.

  2. Add a connector by URL

    Paste the endpoint above.

  3. Turn it on in a chat

    Once it shows Connected, turn it on in a chat from the plus menu under Connectors and ask about WoW: Forever.

Claude Code#

One command adds the server.

Add Everloot to Claude Code
claude mcp add --transport http everloot https://everloot.app/mcp/public

Grok and the xAI API#

Grok takes a remote server by URL as a custom connector. For the xAI API, pass the same URL to its remote MCP tools.

ChatGPT and other assistants#

Any assistant that takes a streamable HTTP MCP server by URL can use this one. ChatGPT's connectors and deep research call two tools by name, search and fetch. Both are here, answering in the shape OpenAI's contract asks for: search returns results with an id, a title and a URL to cite, and fetch takes one of those ids and returns the record whole, with its URL and the source, licence and date as metadata.

Where an assistant has a directory of servers, Everloot is listed there as it is accepted. The listing notes in the repository say where it stands.

Any streamable HTTP client#

Give the client the URL above. Where a client wants a config file, this is the usual shape; check your client's docs for the exact key names.

Client config for the hosted endpoint
{
  "mcpServers": {
    "everloot": {
      "type": "http",
      "url": "https://everloot.app/mcp/public"
    }
  }
}

Try it with curl#

The server keeps no session, so one call is enough. The accept header must list both types.

Call get_by_name
curl -s https://everloot.app/mcp/public \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_by_name","arguments":{"name":"Thrall"}}}'

Run it yourself#

The server is in the repository. This runs the website and the same endpoint on your machine, with a small sample of lore pages.

Run the site and its MCP endpoint locally
git clone https://github.com/Everloot/everloot.git
cd everloot
(cd kb && npm install)
cd web && npm install
npm run sample-release    # prints a KB_SNAPSHOT_PATH line
# put that line and EVERLOOT_MCP_PUBLIC=1 in web/.env.local
npm run dev               # MCP at http://localhost:3000/mcp/public

Or run the server over stdio, which clients such as Claude Desktop can launch themselves. Replace the paths with your clone's. The environment line lets the player-data tools read the public corpus. If you have a key, add EVERLOOT_API_KEY beside it.

Client config for a local stdio server
{
  "mcpServers": {
    "everloot": {
      "command": "node",
      "args": [
        "/path/to/everloot/kb/node_modules/tsx/dist/cli.mjs",
        "/path/to/everloot/kb/src/cli.ts",
        "serve-mcp",
        "--db",
        "/path/to/everloot/web/.data/release/release.sqlite"
      ],
      "env": {
        "EVERLOOT_PUBLIC_CORPUS_URL": "https://everloot.app/api/corpus/public"
      }
    }
  }
}

The full lore archive is built from the Warcraft Wiki dump. The steps are in kb/README.md.