Skip to main content
A self-hosted server exposes the same MCP tools as thingery.dev, with its own data. It needs Node 20 or newer and Postgres with the pgvector extension.
The npm package is published at release time and can lag behind thingery.dev by days. /healthz reports the version a server runs. For the latest features, run from source.

From the npm package

1

Install

2

Start Postgres with pgvector

No Docker? See Local Postgres.
3

Apply the schema

The schema ships with the package and is safe to re-run:
4

Run the server

DATABASE_URL is the only required variable:
The server answers at http://localhost:3000, with /mcp, /browse, /healthz and the HTTP API.
5

Create an account

Open http://localhost:3000/login.html and sign up. Your thg_... key is shown right after signup. Then point any MCP client at http://localhost:3000/mcp.

From source

For a production deployment on a VPS behind Caddy, follow the deployment runbook.

Local Postgres without Docker

The schema always creates the vector extension, even in keyword-only mode. On macOS, Homebrew’s pgvector supports PostgreSQL 17 and 18:
The default DATABASE_URL in .env.example matches this setup.

Run over stdio

The package also runs as a local stdio MCP server, with no web server, which clients like Claude Desktop can start themselves:
It needs a database with the schema applied. THINGERY_API_KEY is optional; without it the server is read-only. The key must exist in that database, so create it on that server’s /login.html or /api/signup.