Skip to content
douban

v0.3.0

One registry, three surfaces: the lookup commands now also run as an HTTP API and an MCP server.

This release rebuilds the command line on the any-cli/kit framework. The seven lookup commands are now declared once and exposed over three surfaces: the CLI you already use, an HTTP API, and an MCP server. A script, a service, and an AI agent all reach the same records without a new client.

If you only use the CLI, almost nothing changes. The commands, their output, and the mirror all work as before. Two flags follow kit's conventions now, noted below.

The same commands over HTTP

douban serve starts an HTTP server that mounts each lookup at /v1/<command>. Flags become query parameters, and a positional argument can trail the path.

douban serve --addr :8080
curl 'http://localhost:8080/v1/suggest?query=matrix&type=movie&limit=2'
curl 'http://localhost:8080/v1/book/1084336'

Records stream as NDJSON, one object per line. The server also answers /healthz and serves an OpenAPI description at /v1/openapi.json, so the API is self-documenting.

The same commands as MCP tools

douban mcp runs an MCP server over stdio, exposing the seven lookups as tools. Point an MCP-capable assistant at it and it can search Douban, pull a book record, or read the Top 250 on its own.

douban mcp

The mirror stays on the CLI

The mirror is a stateful, resumable crawl into a local store, which is a poor fit for a stateless request and response. The seed, crawl, export, info, queue, and reset-failed commands stay on the CLI and are deliberately not exposed over HTTP or MCP. They work exactly as in v0.2.0.

Two flag changes

  • --output now defaults to auto: it prints a table when the output is a terminal and JSONL when it is piped, so the same command reads well by hand and parses well in a script. Pass -o table or -o json to force a format.
  • --rate replaces --delay as the name for the minimum delay between requests.

Build and install

Pure Go, with pure-Go SQLite, so CGO_ENABLED=0 builds stay clean and the binary has no runtime dependencies. Archives, Linux packages, and a GHCR image ship with the release as before.