Lit-Review-Council MCP Server
- Reading
- 3 reviewers · Borda 2/1 tally · winner returned with every rationale
- Datum
- Ravicha2/lit-review-council. scoring.py#L12-L35 @ 40c4c19
- Verdict
- Measured · holds
Multi-Agent Literature Review Council MCP Server
Multi-agent research synthesis engine and Model Context Protocol (MCP) server that orchestrates parallel academic and practitioner research with Borda-count consensus.
- Role
- Author / Google × Kaggle AI Agents Intensive
- Timeline
- Jun 2026
- Subject
- Agentic AI & MCP
Ravicha2/lit-review-councilPyPI
- PyPI
- published, install via uvx lit-review-council; listed on the MCP Registry
- 3
- independent reviewer agents ranked by Borda count
- 2
- research tracks per topic: academic (ArXiv/OpenAlex) and practitioner (GitHub)
- Google ADK
- Python
- MCP
- OpenAlex API
- ArXiv API
- uv
- Claude Code

Source, as quoted
Ravicha2/lit-review-council40c4c19L12–L35
Consensus is a counted Borda tally over named reviewers, not a model asked to agree with itself.
def tally_ensemble_rankings(rankings: List[Optional[Any]]) -> Tuple[str, List[str]]:
"""
Applies Borda count (2 pts for 1st, 1 pt for 2nd) and returns the winning label
and the list of rationale strings.
"""
scores = {"A": 0, "B": 0}
reasons = []
reviewers = ["Researcher", "Engineer", "Architect"]
for i, r_obj in enumerate(rankings):
reviewer_name = reviewers[i] if i < len(reviewers) else f"Reviewer_{i}"
if r_obj:
lst = r_obj.ranking if hasattr(r_obj, "ranking") else r_obj.get("ranking", [])
rat = r_obj.rationale if hasattr(r_obj, "rationale") else r_obj.get("rationale", "")
if lst and len(lst) >= 1:
# 1st place gets 2 points, 2nd gets 1 point
if lst[0] in scores: scores[lst[0]] += 2
if len(lst) > 1 and lst[1] in scores: scores[lst[1]] += 1
reasons.append(f"{reviewer_name} rationale: {rat}")
top_label = "A" if scores["A"] >= scores["B"] else "B"
return top_label, reasonsCore intuition & friction
Deliver rigorous, multi-perspective literature synthesis with verifiable academic and open-source citations directly in developer IDEs.
The spark and the initial hypothesis
The naive failure mode
The root problem encountered
Citation hallucination, single-prompt bias, and IDE context limits in automated research synthesis.
- LLMs generating plausible-sounding but fictitious DOI and ArXiv identifiers
- Preprint source bias skewing recommendations toward unproven theoretical approaches
- IDE context window overflow when ingesting large volumes of paper abstracts
- Strict Model Context Protocol (MCP) compliance for universal integration into Claude Code, VS Code, and Cursor
- Zero hallucinated or unreachable citations permitted in final synthesis output
Why built this way
Key architectural insight
Dual-Track Research (Academic + Practitioner)
vs Single source searchDispatches specialized agents to query ArXiv/OpenAlex for theoretical rigor while simultaneously querying GitHub/PyPI for production adoption and practical ergonomics.
Borda-Count Consensus Ensemble
vs Single reviewer scoringThree independent reviewers (Researcher, Engineer, Neutral) evaluate anonymized reports on novelty, methodology, and practicality before aggregating ranks via Borda voting.
MCP Protocol Server Distribution
vs Web dashboard onlyPackaging as an MCP server installable via uvx enables developers and AI coding agents to trigger comprehensive literature reviews from their command-line and IDEs.
Guardrails and defensive design
- Programmatic API verification verifying that all cited DOIs and ArXiv IDs exist and match paper titles
- Dangling reference rejection filter pruning unvalidated citations from final reports
- Source-tier classification giving higher confidence weight to peer-reviewed publications
Outcomes & verification
Verification benchmarks
- Published to PyPI (installable via uvx lit-review-council) and listed on the MCP Registry, with documented install paths for Claude Code and VS Code.
- Every URL in a finished report must appear in the source references or the synthesis step retries, so dangling citations are rejected before output rather than reviewed after it.
Real-world impact
- Lets researchers and engineers run a multi-perspective literature review from their IDE.
- Demonstrated effective multi-agent consensus mechanisms for reducing LLM cognitive bias.
Core engineering takeaway
Get in touch
Master of IT at UNSW Sydney (WAM 83 / Distinction, graduating Dec 2026) · Open to full-time Applied AI & Backend Systems roles.