DergiPark Academic Article Search and Analysis MCP Server for searching Turkish academic journals, converting PDFs to readable format, and extracting article metadata.
Three tools with clear names and decent descriptions, but several critical gaps: (1) Output schemas are entirely undocumented, LLMs cannot reliably parse or chain results; (2) Parameter descriptions are present but lack format constraints, ranges, and validation guidance; (3) No error handling guidance for common failure modes (CAPTCHA, timeouts, invalid URLs); (4) Missing tool annotations (readOnlyHint present implicitly in naming, but not declared); (5) search_articles returns 24 articles per page but no pagination cursor/next_token documented. Overall structure is reasonable but falls short of production-grade tool composition.
Get references list for a DergiPark article. Returns the full list of references cited in the article. Use this after search_articles to get detailed reference information.
Convert a DergiPark PDF to readable HTML format. Only the numeric file ID is required (e.g., '118146'). URL is automatically constructed: dergipark.org.tr/tr/download/article-file/{id}
Search Turkish academic journals on DergiPark. Returns 24 articles per page with title, authors, abstract, keywords, DOI, indexes, and PDF link.
Output schemas entirely undocumented. search_articles, pdf_to_html, and get_article_references return complex data but LLMs have zero guidance on structure. This violates the 'Document the output schema' critical check and makes tool chaining fragile.
No pagination/result limiting guidance for search_articles. Returns 24 articles per page but no documented total_count, has_next_page, next_cursor, or max_results. Pattern baseline requires pagination info to prevent context overflow.
Parameters lack format constraints and validation guidance. 'pdf_id' and 'article_url' have no regex patterns, length limits, or examples of valid input. 'index_filter' enum values untranslated (bos_olmayanlar, tr_dizin_icerenler unintelligible to non-Turkish speakers).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
No error handling or recovery guidance. Code shows try-catch blocks returning generic error dicts, but no guidance to LLM on whether error is retryable, user-fixable, or fatal. CAPTCHA mentioned in server instructions but not in tool error handling.
Tool annotations missing. While all three tools are read-only (safe to retry), neither readOnlyHint nor idempotentHint are explicitly declared in FastMCP decorator. This prevents agents from reasoning about retry safety.
Response field naming inconsistency. search_articles logs 'Found: {article_count} articles' but response schema calls it 'articles' (inferred). get_article_references returns 'reference_count' in code but 'references' in response. These inferred fields will break downstream tool chaining.