Read-only DLsite MCP server for public metadata, reviews, prices, search, and maker profiles.
Three well-structured read-only tools with complete input schemas, clear descriptions, and proper parameter typing. All tools use Pydantic models with JsonSchema annotations. Descriptions are concise (40-80 chars) and action-oriented. Parameters include enums, ranges, and defaults. Output schemas are documented via output_models module. Error handling returns structured ServiceError with code, message, and retryable flag. Tool annotations (readOnlyHint, idempotentHint, openWorldHint) are present. Main gaps: descriptions could be slightly longer (50-200 char baseline); no explicit recovery guidance in error messages; batch error semantics for dlsite_work_get could be clearer.
Read a public DLsite circle, brand, or publisher identity.
Search one public DLsite section by keyword with bounded pages and signed cursors.
Read public DLsite work details or cursor-paginated reviews.
Tool descriptions are concise but lack recovery guidance. Error responses should tell LLMs what to do next (e.g., 'If work not found, try search first'). Currently descriptions state WHAT but not WHEN or recovery paths.
dlsite_work_get batch semantics unclear: 'details arrays are limited to 5' and 'all-or-error' behavior documented in SCHEMAS dict but not in tool description itself. LLMs may not understand partial failure handling.
Parameter 'max_chars' description lacks context: '100..4000; limits description or each review body' is terse. Should clarify: 'Truncates work description and each review body to this many characters (100 - 4000). Prevents oversized responses.'
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
No explicit error classification (retryable vs user-fixable vs fatal) in error responses. ServiceError has retryable flag but LLM guidance on when to retry vs ask user is implicit.
Output schemas documented in output_models module (MakerOutput, SearchOutput, WorkOutput) but not visible in tool registration. LLMs cannot see return field names/types from tool definition alone.