MCP server for extracting, analyzing, and managing references and citations in Markdown documents. Provides tools for reference extraction, citation detection, index generation, and recommendation.
Server has 6 tools with basic FastAPI/FastMCP integration. Tool names lack action verbs (health, stop, extract_references, extract_citations, index_generate, recommendations). Descriptions exist but are in Chinese and vary in quality (10-200+ chars). Input schemas are present with type definitions, but parameter descriptions are minimal or missing. No output schemas documented. Error handling is basic (HTTPException for missing params). Security concern: stop() tool allows unauthenticated process termination. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Composition is reasonable (single responsibility per tool), but naming conventions deviate from verb_noun pattern.
从 Markdown 内容或文件路径中提取所有引用位置与类型,并生成与参考文献的映射上下文
从 Markdown 内容或文件路径中提取参考文献项,可选择按 DOI、标题或作者-年份进行合并去重,并返回解析结果与样式统计
检查服务是否正常运行
按首次引用顺序重新编号,并返回编号映射与新的参考文献列表
基于 Markdown 内容与已解析参考文献,给出 Top-K 相关文献推荐
触发服务停止并退出进程
Tool names lack action verbs. 'health', 'stop', 'recommendations' do not follow verb_noun pattern. Should be 'check_health', 'shutdown_server', 'get_recommendations'.
Destructive tool 'stop' has no authentication, permission gate, or confirmation step. Any caller can terminate the server process.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels declared in metadata. Tools should declare risk via schema annotations.
Output schemas not documented. Responses are Pydantic models (ExtractReferencesResponse, etc.) but no schema definitions visible in source. LLMs cannot infer response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
Parameter descriptions are minimal. 'markdown' param: 'Markdown content text (optional if file_path provided)' lacks format/constraint details. 'merge_by' enum values (doi, title, author_year) not explained.