Multi-agent AI research assistant powered by Groq LLaMA that exposes a research pipeline (Researcher → Analyst → Writer → Reviewer) via the Model Context Protocol. Supports web search, document RAG, semantic search over past reports, and report retrieval.
This MCP server exposes 11 tools with significant quality gaps. While tool names follow verb-first conventions (run_research, get_report_by_id, search_reports, list_reports), descriptions are present but often lack depth about WHEN to use each tool and dependencies between them. Schemas are visible for most tools, but several lack proper parameter validation and output documentation. Notable issues: (1) duplicate tools exist (get_report_by_id, list_reports appear twice with different file locations), creating confusion about which implementation is authoritative; (2) parameter descriptions are sparse or missing (e.g., 'limit' in list_reports lacks range constraints); (3) no output schema documentation for any tool, LLMs cannot predict return structure; (4) error handling is minimal ('Research failed: {e}' provides no guidance); (5) utility tools (word_count, save_to_file, get_current_date) are trivial and should not consume tool slots when the server's primary purpose is research. The research pipeline tools (run_research, research_topic, search_and_analyse) appear to overlap significantly without clear delineation of when to use each.
Get the current date and time.
Retrieve a specific past research report by its ID.
Retrieve a specific past research report by its ID.
List previously generated research reports stored in the database.
List recent research reports.
Run the full 4-agent research pipeline on a topic and return a polished report.
Run the full 4-agent research pipeline on a topic. Agents: Researcher (web search) -> Analyst (insights) -> Writer (report) -> Reviewer (QA)
Duplicate and overlapping tools (run_research vs research_topic, list_reports vs list_past_reports, get_report_by_id appears twice)
Tool name contains 'and' (search_and_analyse), violating single-responsibility principle. Should be split or renamed.
No output schemas documented for any tool. LLMs cannot predict return structure, type, or fields available for downstream tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Save text content to a file in the output/ directory.
Run only the Researcher + Analyst agents and return structured analysis. Faster and cheaper than the full pipeline — useful for quick fact-checks.
Semantic search over past research reports using RAG (pgvector).
Count the number of words in a text.
Parameter descriptions lack constraints and ranges. 'limit' appears in multiple tools but none document minimum/maximum in descriptions. 'top_k' in search_reports states max 10 but no minimum.
Error handling provides no recovery guidance. Generic messages like 'Research failed: {e}' and 'Report not found' give LLM no actionable next steps.
Trivial utility tools (word_count, get_current_date, save_to_file) consume tool slots and add noise. word_count and get_current_date should be removed; save_to_file risks path traversal if not properly validated.
save_to_file lacks security documentation. Directory restriction ('output/') is mentioned in docstring but should be enforced and documented in parameter descriptions to prevent path traversal.
Tool descriptions lack dependency hints and WHEN guidance. run_research vs research_topic vs search_and_analyse have no clear guidance on which to use when. LLM must guess.
save_to_file and word_count return strings instead of structured objects. Responses should be JSON with typed fields (e.g., {'word_count': 42} instead of 'Word count: 42').