Skip to main content
Glama

submit_review

Prepare and preview a peer review for academic conference submissions by providing ratings, confidence levels, and detailed feedback before final submission.

Instructions

Prepare a review for submission. Returns a preview — call confirm_submission to actually post it.

Args: venue_id: The venue identifier. submission_number: The paper number. rating: Numerical rating (scale depends on venue). confidence: Your confidence level (scale depends on venue). review_text: The main review text. title: Review title. Default: 'Official Review'. strengths: Paper strengths (if venue uses separate fields). weaknesses: Paper weaknesses (if venue uses separate fields). questions: Questions for the authors. limitations: Limitations discussion. ethics_flag: Whether to flag ethics concerns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
venue_idYes
submission_numberYes
ratingYes
confidenceYes
review_textYes
titleNoOfficial Review
strengthsNo
weaknessesNo
questionsNo
limitationsNo
ethics_flagNo

Implementation Reference

  • The handler function 'submit_review' that creates a review entry and adds it to the pending store for confirmation.
    async def submit_review(
        venue_id: str,
        submission_number: int,
        rating: int,
        confidence: int,
        review_text: str,
        title: str = "Official Review",
        strengths: str | None = None,
        weaknesses: str | None = None,
        questions: str | None = None,
        limitations: str | None = None,
        ethics_flag: bool = False,
    ) -> str:
        """Prepare a review for submission. Returns a preview — call confirm_submission to actually post it.
    
        Args:
            venue_id: The venue identifier.
            submission_number: The paper number.
            rating: Numerical rating (scale depends on venue).
            confidence: Your confidence level (scale depends on venue).
            review_text: The main review text.
            title: Review title. Default: 'Official Review'.
            strengths: Paper strengths (if venue uses separate fields).
            weaknesses: Paper weaknesses (if venue uses separate fields).
            questions: Questions for the authors.
            limitations: Limitations discussion.
            ethics_flag: Whether to flag ethics concerns.
        """
        content = {
            "title": {"value": title},
            "review": {"value": review_text},
            "rating": {"value": rating},
            "confidence": {"value": confidence},
        }
        if strengths:
            content["strengths"] = {"value": strengths}
        if weaknesses:
            content["weaknesses"] = {"value": weaknesses}
        if questions:
            content["questions"] = {"value": questions}
        if limitations:
            content["limitations"] = {"value": limitations}
        if ethics_flag:
            content["ethics_flag"] = {"value": "Yes"}
    
        client = get_client()
        profile_id = client.profile.id
        anon_groups = client.get_groups(
            prefix=f"{venue_id}/Submission{submission_number}/Reviewer_",
            signatory=profile_id,
        )
        if not anon_groups:
            return f"Could not find your anonymous reviewer group for Submission #{submission_number}. Are you assigned as a reviewer?"
    
        anon_id = anon_groups[0].id
        payload = {
            "invitation": f"{venue_id}/Submission{submission_number}/-/Official_Review",
            "signatures": [anon_id],
            "content": content,
        }
    
        preview_lines = [
            f"## Review Preview for Submission #{submission_number}",
            f"**Signing as:** {anon_id}",
            f"**Rating:** {rating}",
            f"**Confidence:** {confidence}",
            f"\n### {title}\n",
            review_text,
        ]
        if strengths:
            preview_lines.append(f"\n**Strengths:** {strengths}")
        if weaknesses:
            preview_lines.append(f"\n**Weaknesses:** {weaknesses}")
        if questions:
            preview_lines.append(f"\n**Questions:** {questions}")
    
        preview = "\n".join(preview_lines)
        confirmation_id = pending_store.add(action="submit_review", payload=payload, preview=preview)
        return f"{preview}\n\n---\n**Confirmation ID:** `{confirmation_id}`\n\nCall `confirm_submission` with this ID to post the review to OpenReview."

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