get_reviews
Retrieve official reviews for conference submissions by providing venue and paper identifiers to support reviewer workflows.
Instructions
Get all official reviews for a submission.
Args: venue_id: The venue identifier (e.g., 'ICLR.cc/2025/Conference'). submission_id: The submission's note ID. Provide this OR submission_number. submission_number: The paper number. Provide this OR submission_id.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| venue_id | Yes | ||
| submission_id | No | ||
| submission_number | No |
Implementation Reference
- The handler function `get_reviews` fetches official reviews for a specific submission from OpenReview using the provided venue and submission identifiers.
async def get_reviews( venue_id: str, submission_id: str | None = None, submission_number: int | None = None, ) -> str: """Get all official reviews for a submission. Args: venue_id: The venue identifier (e.g., 'ICLR.cc/2025/Conference'). submission_id: The submission's note ID. Provide this OR submission_number. submission_number: The paper number. Provide this OR submission_id. """ client = get_client() paper_number = submission_number if submission_id and not paper_number: note = client.get_note(submission_id) paper_number = note.number if paper_number is None: return "Please provide either submission_id or submission_number." reviews = client.get_all_notes( invitation=f"{venue_id}/Submission{paper_number}/-/Official_Review" ) if not reviews: return f"No reviews found for Submission #{paper_number}." lines = [f"## Reviews for Submission #{paper_number} ({len(reviews)} total)\n"] for review in reviews: sig = review.signatures[0] if review.signatures else "Unknown" reviewer_short = sig.split("/")[-1] if "/" in sig else sig content = review.content rating = content.get("rating", {}).get("value", "N/A") confidence = content.get("confidence", {}).get("value", "N/A") title = content.get("title", {}).get("value", "") text = content.get("review", {}).get("value", "No review text") date_str = "" if review.cdate: dt = datetime.fromtimestamp(review.cdate / 1000, tz=timezone.utc) date_str = f" ({dt.strftime('%Y-%m-%d')})" lines.append(f"### {reviewer_short}{date_str}") lines.append(f"**Rating:** {rating} | **Confidence:** {confidence}") if title: lines.append(f"**Title:** {title}") lines.append(f"\n{text}\n") lines.append("---\n") return "\n".join(lines) - src/openreview_mcp/tools/reviews.py:16-16 (registration)Registration of the `get_reviews` tool using the @mcp.tool decorator.
@mcp.tool()