Skip to main content
Glama

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
NameRequiredDescriptionDefault
venue_idYes
submission_idNo
submission_numberNo

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)
  • Registration of the `get_reviews` tool using the @mcp.tool decorator.
    @mcp.tool()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/michaelqshieh/openreview-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server