Douban API MCP Server for fetching books, movies, and group information
Server has 6 tools with explicit schemas and descriptions. All tools are READ_ONLY and properly registered via server.tool(). Schemas use Zod with type definitions and descriptions. However, descriptions are generic (avg ~120 chars, below the 194-char baseline for A+ tools), parameter descriptions lack actionable constraints (e.g., no format specs for IDs), and output schemas are not formally documented. Error handling is present but generic. No tool annotations (readOnlyHint, etc.) despite all being read-only. Naming is clear and verb-based (search-, get-, list-, browse). Composition is sound, each tool has one responsibility. Missing: pagination guidance, result limits, and structured output documentation.
Open Douban book/movie detail page in your default browser. Opens a new browser window to view the complete information.
Get detailed information about a specific Douban group topic. Returns the topic content, title, and metadata.
Get reviews for a specific movie from Douban. Returns a list of user reviews with ratings and comments.
List Douban group topics with optional filtering by tags and date. Returns a table of topics with dates, tags, and titles.
Search books from Douban, either by ISBN or by query string. Returns book details including title, author, rating, and publication information.
Search movies from Douban by query string. Returns movie details including title, rating, and popularity metrics.
Output schemas not documented. Tools return text/markdown via json2md or TurndownService, but LLMs cannot see the structured fields they should extract. Responses lack pagination info, result counts, and field definitions.
Parameter descriptions lack actionable constraints. 'Douban movie ID, e.g. "1234567890"' does not specify format (numeric string? length?). 'Query string' lacks length limits or character restrictions. LLMs cannot validate inputs without explicit constraints.
No result limits or pagination guidance. search-book and search-movie return all results via json2md table. Large result sets blow context windows. No mention of max results, pagination, or offset/limit parameters in descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Tool annotations missing. All 6 tools are read-only (Risk: READ_ONLY declared), but no readOnlyHint in schema. Spec 2026-07-28 supports tool annotations for clarity, LLMs benefit from explicit hints.
Error messages are generic. 'Failed to search books: <error.message>' does not guide recovery. No distinction between retryable (network timeout) vs user-fixable (invalid ISBN format) vs fatal errors.