OP

OpenReview MCP Server for AI/ML Conference Manuscripts

Use the OpenReview MCP server to fetch, read, and save AI/ML conference manuscripts for streamlined retrieval and submission management.

Quick Install
npx -y @anyakors/openreview-mcp-server

Overview

The OpenReview MCP Server provides a lightweight HTTP service that implements the Model Context Protocol (MCP) and exposes OpenReview conference manuscripts for programmatic retrieval, reading, and saving. It acts as a bridge between language models / tooling and the OpenReview dataset, turning manuscript metadata and PDF content into a standardized, machine-friendly interface. This makes it easier to build assistants, pipelines, or integrations that need consistent access to conference papers and their submission state.

Designed for developers and platform integrators, the server supports common MCP operations such as manifest introspection, document retrieval, and safe persistence of model-generated artifacts (e.g., annotations or enriched copies). Run as a standalone service (locally or in a container), it can be dropped into review tooling, dataset pipelines, or model-in-the-loop submission workflows to centralize access control and caching.

Features

  • MCP-compatible endpoints for manifest, read, and save operations
  • OpenReview integration: fetch metadata, PDF content, and submission history
  • Configurable storage backend for downloading and caching manuscripts
  • Authentication via API key or token to restrict access
  • Simple HTTP API and examples for curl, Python, and Postman
  • Docker-ready for quick deployment and reproducible runs
  • Logging and health endpoints for monitoring and troubleshooting

Installation / Configuration

Prerequisites: git and Docker are recommended. You can also run from source if the repository uses a Node or Python runtime.

Clone the repository:

git clone https://github.com/anyakors/openreview-mcp-server.git
cd openreview-mcp-server

Run with Docker (recommended):

docker build -t openreview-mcp-server .
docker run -d \
  -p 8080:8080 \
  -e OPENREVIEW_BASE_URL=https://api.openreview.net \
  -e OPENREVIEW_API_KEY=your_api_key_here \
  -e STORAGE_DIR=/data/manuscripts \
  --name openreview-mcp-server \
  openreview-mcp-server

Run from source (example using npm; check repository for exact runtime instructions):

# if Node-based
npm install
npm start
# or if Python-based, use:
# pip install -r requirements.txt
# python -m openreview_mcp_server.app

Sample .env configuration

PORT=8080
OPENREVIEW_BASE_URL=https://api.openreview.net
OPENREVIEW_API_KEY=your_api_key_here
STORAGE_DIR=./data/manuscripts
LOG_LEVEL=info
CACHE_TTL_SECONDS=3600

Environment variables

  • PORT: HTTP port to listen on (default 8080)
  • OPENREVIEW_BASE_URL: Base URL for the OpenReview API
  • OPENREVIEW_API_KEY: API key or token for OpenReview access
  • STORAGE_DIR: Directory to store downloaded PDFs and cached data
  • LOG_LEVEL: Logging verbosity (info, debug, warn, error)
  • CACHE_TTL_SECONDS: How long to cache retrieved metadata/content

Available Resources

API endpoints (typical)

MethodPathDescription
GET/healthHealth and readiness probe
GET/mcp/manifestMCP manifest describing capabilities
POST/mcp/readRead request — returns manuscript metadata and content
POST/mcp/saveSave request — persist model-produced artifacts or modified content
GET/manuscripts/{id}Download or access a cached manuscript by id

Repository and docs

  • Source code and issues: https://github.com/anyakors/openreview-mcp-server
  • OpenReview platform: https://openreview.net

Client suggestions

  • Use curl for quick testing
  • Use Postman/Insomnia for interactive exploration
  • Build lightweight clients in Python (requests) or Node (fetch/axios) for integrations

Examples

Fetch manifest (curl)

curl -s \
  -H "Authorization: Bearer $OPENREVIEW_API_KEY" \
  http://localhost:8080/mcp/manifest

Read a manuscript (curl)

curl -X POST http://localhost:8080/mcp/read \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENREVIEW_API_KEY" \
  -d '{
    "document_id": "OpenReview:ABC123",
    "content": { "format": "pdf" }
  }'

Python example: fetch manuscript metadata and download PDF

import requests

BASE = "http://localhost:8080"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

# request metadata and link to PDF
resp = requests.post(f"{BASE}/mcp/read", json={"document_id": "OpenReview:ABC123"}, headers=headers)
resp.raise_for_status()
data = resp.json()

pdf_url = data.get("content", {}).get("pdf_url")
r = requests.get(pdf_url, headers=headers)
with open("paper_ABC123.pdf", "wb") as f:
    f.write(r.content)
print("Saved paper_ABC123.pdf")

Save an annotated manuscript (curl)

curl -X POST http://localhost:8080/mcp/save \
  -H "Authorization: Bearer $OPENREVIEW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document_id": "OpenReview:ABC123",
    "artifact_type": "annotation",
    "payload": {
      "notes": "Model summary + highlights",
      "annotations": [...some structured JSON...]
    }
  }'

Use Cases

  • Build a review assistant that can fetch submission PDFs and provide summaries or structured critiques to reviewers without manual downloading.
  • Create ingestion pipelines that mirror accepted manuscripts into an internal dataset for benchmarking or model training, with consistent caching and provenance.
  • Automate submission validation: fetch the latest manuscript version, run format/metadata checks, and persist validation reports back to the MCP server for audit trails.
  • Enable research tools: let model-driven agents read, extract, and