Model Context Protocol (MCP) Server for TikTok API documentation search and retrieval with vector store integration
This server implements 4 tools with basic Zod schemas and descriptions. All tools are read-only and follow simple parameter patterns. However, descriptions are brief (18-63 chars, below the 194-char baseline), parameter descriptions lack depth, output schemas are not documented, and error handling returns JSON strings rather than structured error objects. The tools are well-named with verb-noun convention (search, fetch, fetch_paginated, vector_store_status), but the overall quality falls short of production grade. Tool composition is reasonable, search+fetch pair enables discovery and retrieval, but the lack of pagination metadata (next_cursor, total_count) in fetch output and undocumented output schemas limit agent planning.
Fetch the full content of a TikTok API documentation document by ID
Fetch a TikTok API documentation document by ID with pagination support for large files
Search TikTok API documentation for relevant information
Check the status of the vector store configuration
Output schemas not documented. Tools return JSON strings via JSON.stringify() with no defined structure in the source code. Agents cannot reliably extract fields or plan downstream operations. All tools require implicit field knowledge.
Parameter descriptions lack actionable detail. 'Search query string' does not explain when to call this tool vs others, what query format is expected, or limitations. 'Unique identifier for the document' does not clarify if ID is a slug, UUID, or integer, or where to obtain it.
Tool descriptions are 18 - 63 characters, well below the 194-char baseline. Descriptions do not answer: What does it return? When should the agent call it instead of a similar tool? What are dependencies or prerequisites? This forces LLMs to guess tool selection criteria.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Error handling returns bare JSON strings with no recovery guidance. Example: 'Search error: [...] results: []' does not tell the LLM whether to retry, ask the user, or call a different tool. No error classification (retryable vs fatal).
fetch_paginated's cursor and max_tokens parameters accept union types (number|string) but lack constraints. No minimum/maximum documented. LLMs could pass negative values, zero, or absurdly large numbers without validation feedback.
No pagination metadata in fetch output. fetch_paginated returns chunk + hasMore + nextCursor, but the main fetch tool does not document whether it truncates large documents or how to retrieve more. Agents cannot plan multi-call retrieval reliably.