io.github.Ravicha2/lit-review-council
Provides the ability to search and retrieve publications from the ACM Digital Library via Tavily, contributing to the academic literature search.
Enables searching and retrieving academic preprints from arXiv via direct API, providing access to a vast repository of scholarly articles for literature review.
Provides the ability to search and retrieve articles from dev.to via Tavily, supporting practitioner-focused engineering insights.
Enables searching and retrieving open-source repositories and code from GitHub via direct API, supporting practitioner track research.
Provides the ability to search and retrieve publications from IEEE Xplore via Tavily, contributing to the academic literature search.
Provides the ability to search and retrieve articles from Medium via Tavily, contributing to practitioner-focused research.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.Ravicha2/lit-review-councilsynthesize research on multi-agent LLM systems"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Multi-Agent Literature Review Pipeline

A multi-agent literature review pipeline built with the Google ADK (Agent Development Kit). It coordinates specialized agents to iteratively research sub-topics based on a YAML configuration. For each topic, it searches from academic and practitioner perspectives, evaluates the work through a peer review ensemble, and synthesizes a well-grounded report.
Built as a capstone submission for the Kaggle "AI Agents: Intensive Vibe Coding Capstone".
mcp-name: io.github.Ravicha2/lit-review-council
Motivation
Literature reviews are suffocating: hundreds of papers, conflicting claims, and no obvious signal in the noise. Andrej Karpathy's LLM Council showed that multi-agent debate surfaces sharper answers than a single prompt. This project takes that insight into the research domain.
LLMs researching complex topics suffer from two problems: lack of diverse grounding and self-preference bias (favoring their own outputs).
This pipeline addresses both:
Tiered Orchestration: A Planner agent splits configured research topics into a multi-wave execution graph. Foundational concepts (Wave 1) run in parallel, and synthesis-dependent topics (Wave 2) run sequentially with distilled context from Wave 1.
Source Isolation: Two independent tracks per topic, each with its own explorer (search) and reporter (write) agent. The academic track searches ArXiv, OpenAlex, and scholarly publishers. The practitioner track searches GitHub and engineering docs.
Peer Review Ensemble: Three reviewers (Researcher, Engineer, Neutral) evaluate anonymized reports. Borda-count voting aggregates rankings so no single reviewer dominates.
Anti-Hallucination Guardrails: The Synthesis agent's output is parsed and validated. Dangling citations like
(Author, Year)or[1]are rejected. Every URL in the final report must exist in the original source references, or the run is retried (up to 2 times). A blog-tier ratio check warns when over 50% of sources are blog/forum tier.
Related MCP server: academic-figures-mcp
Setup & Installation
Published to PyPI and the MCP Registry. No clone or manual config needed.
1. MCP Registry (Recommended, one command)
The server is listed on the MCP Registry, so installing is a single command. No JSON editing, no config files.
Claude Code:
claude mcp add lit-review-council \
-e OPENROUTER_API_KEY=sk-or-your-key \
-e GITHUB_TOKEN=ghp_your-token \
-e TAVILY_API_KEY=tvly_your-key \
-- uvx lit-review-councilVS Code: Search for "lit-review-council" in the MCP Registry and click Install. Or open the MCP Registry listing and click Install in VS Code.
Any other MCP client: See section 2 below.
Once connected, the lit_review_council_instructions prompt is available to guide any AI agent through the full review workflow.
2. Manual Config (Claude Desktop, Cursor, etc.)
Add this to your client's MCP server config:
{
"mcpServers": {
"lit-review-council": {
"command": "uvx",
"args": ["lit-review-council"],
"env": {
"OPENROUTER_API_KEY": "sk-or-your-key",
"GITHUB_TOKEN": "ghp_your-token",
"TAVILY_API_KEY": "tvly_your-key",
"OPENALEX_API_KEY": "your-key"
}
}
}
}Client | Config path |
Claude Desktop (Mac) |
|
Claude Desktop (Win) |
|
Cursor |
|
3. Local Developer Setup
git clone https://github.com/Ravicha2/lit-review-council && cd lit-review-council
cp .env.example .env # fill in your keys
uv run python main.py --config topics.yaml --output okf_output --question "Your Research Question"Environment Variables
Variable | Purpose | Required |
| LLM access via OpenRouter | Yes |
| Practitioner track (GitHub search) | Yes |
| Web search across both tracks | Yes |
| Academic track (OpenAlex API) | No |
| Model for engineer agents | No (default: |
| Model for research agents | No (default: |
| Model for reviewers & synthesis | No (default: |
Architecture

The pipeline is organized into four stages, with topics executed across two waves to balance parallelism and sequential dependency.
Why Two Waves?
Not all research topics are independent. Some topics (e.g., foundational concepts like "truth maintenance systems") can be researched in parallel, while others (e.g., "multi-agent coordination using TMS") depend on the synthesized understanding of earlier topics.
The Planner agent reads topics.yaml and partitions topics into:
Wave 1 — parallel, independent topics. All topics in this wave run simultaneously through the full Stage 1→2→3 pipeline.
Wave 2 — sequential, dependent topics. These topics require the distilled context from Wave 1 before they can be researched accurately.
Wave Handoff via the Distiller
After Wave 1 completes, the Distiller agent consumes the Wave 1 topic files and produces a compact summary of the foundational findings. This distilled context is injected into every Wave 2 topic's prompt as additional background, ensuring Wave 2 explorers and reporters build on top of verified Wave 1 conclusions rather than starting from scratch.
This prevents redundant searches and improves coherence across the final OKF bundle.
Stage Breakdown
Stage 0 (Orchestration)
├── Planner agent organizes YAML topics into Wave 1 (parallel) and Wave 2 (sequential)
└── Distiller agent summarizes completed Wave 1 topics to provide prior context to Wave 2
Stage 1 (Parallel Fan-out per Topic)
├── Academic Track (SequentialAgent)
│ ├── academic_explorer → searches ArXiv, OpenAlex, Tavily (scholarly domains)
│ └── academic_reporter → writes Researcher report with structured references
└── Practitioner Track (SequentialAgent)
├── practitioner_explorer → searches GitHub, Tavily (engineering domains)
└── practitioner_reporter → writes Engineer report with structured references
Stage 2 (Peer Review Ensemble per Topic)
├── researcher_reviewer → ranks anonymized reports (Researcher perspective)
├── engineer_reviewer → ranks anonymized reports (Engineer perspective)
└── technical_reviewer → ranks anonymized reports (Neutral perspective)
→ Borda-count tally → winning report selected
Stage 3 (Synthesis & Persistence)
├── synthesis agent → condensed final brief with YAML frontmatter
│ → citation validation loop (rejects hallucinated/dangling URLs, retries up to 2x)
└── Writes out to an interconnected Markdown OKF bundle (index.md and topic files)Search Providers
Provider | Domains | Used By |
ArXiv API | arxiv.org | Academic explorer |
OpenAlex API | openalex.org | Academic explorer |
Tavily (scholarly) | acm.org, ieee.org, springer.com, sciencedirect.com, nature.com, science.org, wiley.com | Academic explorer |
GitHub API | github.com | Practitioner explorer |
Tavily (engineering) | github.com, docs.microsoft.com, aws.amazon.com, cloud.google.com, medium.com, dev.to | Practitioner explorer |
All providers use tenacity retry with exponential backoff for 429/5xx errors.
Source Tiers
Every reference is classified into one of four tiers:
peer_reviewed: ArXiv preprints, ACM/IEEE papers, conference proceedings
established_project: GitHub repos with meaningful adoption (stars, active maintenance)
vendor_doc: Official documentation from a company/project
blog_or_forum: Medium, personal blogs, Stack Overflow, Reddit
The synthesis step warns when more than half of cited sources are blog_or_forum tier.
Output
The pipeline runs all stages for each topic, executing them in waves where possible. On completion, it generates an interconnected Markdown bundle (OKF format) in the specified output directory, including an index.md linking to each specific topic file.
Available Tools
1 toolconduct_literature_reviewA
Executes a multi-agent literature review on the provided research question and topics.
Args:
question: The overarching research question driving the literature review.
topics: A list of topic dictionaries. Each topic must have:
- slug: (str) a short hyphenated identifier
- description: (str) explanation of the topic
- search_keywords: (list[str]) 2-4 highly specific search queries
- rationale: (str, optional) why this topic was chosen
output_dir: (str) Directory to save the final OKF markdown bundle. Defaults to current directory.
Returns:
A success message with the path to the generated OKF bundle directory.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | Yes | ||
| question | Yes | ||
| output_dir | No | . |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that execution is multi-agent, writes output to a configurable directory, and returns a success message with the bundle path. This is meaningful behavioral context beyond a simple 'runs a review' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose summary, then organized into Args and Returns sections. Each sentence provides necessary information with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all three parameters, required versus optional fields, topic structure, default behavior, and return format. It is missing minor context such as what 'OKF' means or any expectations about runtime/cost, but for invocation purposes it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates by documenting question, output_dir with default, and the required structure of each topics entry including slug, description, search_keywords, and optional rationale. This gives an agent everything needed to construct valid arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Executes a multi-agent literature review') with clear inputs (research question, topics) and output (OKF markdown bundle). Even without siblings, it is unambiguous about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening sentence makes the use case clear, and the Args section details what callers must supply. There are no siblings to differentiate from, so explicit alternatives are not required, though the description stops short of stating when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.6- First observed
conduct_literature_review
TDQS
Scored across 1 tool
There is only one tool, so there is no chance of selecting between overlapping tools. The single tool's purpose is also clearly conveyed by its name and description.
The tool name follows a clear verb_noun pattern: conduct_literature_review. With only one tool in the set, there are no naming inconsistencies to evaluate.
A single tool is on the thin side, but it functions as a high-level workflow orchestrator for the entire literature review process. The count feels borderline rather than excessive or trivially mismatched.
The tool covers the core workflow from research question and topics to a generated output bundle, so there is no dead end. Minor gaps exist around auxiliary capabilities like validating topics in advance or checking the status of past reviews, but these are workable for a one-shot orchestration tool.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Multi-agent AI pipeline that generates professional Solution Architecture Documents.
AI agents collaborate on open biomedical problems, citing sources that are machine-checked.
Research intelligence for AI coding agents. 2M+ CS papers with evidence and tradeoffs.
Task-first cross-agent collaboration for discussions, review, referrals, and reusable knowledge.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceTurn any AI agent into an academic researcher that can search, read, cite, and write full literature reviews autonomously.14MIT
- AlicenseBqualityCmaintenanceA multi-step academic figure agent harness that enables AI agents to plan, generate, evaluate, and iterate publication-grade figures from sources like PMIDs, preprints, or freeform briefs.14Apache 2.0
- AlicenseAqualityDmaintenanceA multi-agent research system that decomposes complex queries into targeted sub-questions, searches the web in parallel, scores source credibility, and synthesizes findings into structured markdown reports.11MIT
- FlicenseNot gradedqualityDmaintenanceA multimodal academic research assistant for LLM Agent papers, enabling paper search, PDF/figure understanding, knowledge graph memory, learning paths, and reproducible experiments via MCP.-