💡 Inspiration: The Plight of a Two-Person Editorial Team
Years ago, I served as a journal editor for an academic journal (cogito.unklab.ac.id). Our editorial team consisted of just two people.
Every week, a flood of new submissions arrived in our Open Journal Systems (OJS) queue. The administrative burden was suffocating:
- We spent hours manually reading through abstracts just to verify if papers met our scope.
- Finding and assigning reviewers with relevant domain expertise took days of cross-referencing past archives.
- Reviewers routinely missed deadlines, forcing us to constantly track due dates and send manual reminders.
- Reading divergent reviewer reports and drafting customized, polite, constructive decision letters drained our remaining mental energy.
Academic peer review is the bedrock of human knowledge, yet over 56,000 journals worldwide are managed by small, overworked academic teams suffering from click fatigue and administrative burnout.
When the WebMCP standard emerged from W3C, Chrome, and OpenAI, a lightbulb went off: Why should academic editors spend hours navigating dozens of nested tabs when an in-browser AI agent can co-pilot the editorial desk using the editor's live session?
⚡ What It Does
OJS-WebMCP turns standard Open Journal Systems installations into an Agent-Native Editorial Control Room.
Instead of relying on fragile scrapers or complex command-line MCP servers, our plugin directly registers 7 native WebMCP tools into the editor's browser session via document.modelContext.registerTool:
- Intelligent Desk Screening: The agent queries active queues across all 4 workflow stages (
ojs_list_submissions) and retrieves full abstracts and verified author affiliations (ojs_get_submission_details) to evaluate scope compliance. - Automated Peer-Review Tracking: Inspects reviewer assignments, identifies overdue reviews, and monitors reviewer recommendations (
ojs_get_review_rounds). - Live Review Synthesis: Connects directly to real reviewer feedback to synthesize a formal decision letter (
ojs_draft_editorial_decision), accurately distinguishing between Minor Revisions, Major Revisions (Resubmit for Review), Acceptance, and Decline. - Approval-Gated Reviewer Reminder: Prepares and dispatches polite reminder notifications to overdue reviewers (
ojs_send_reviewer_reminder). It enforces strict Human-in-the-Loop safety: the agent can only preview the reminder until the human editor explicitly approves it (confirmSend: true). - Issue & Volume Planning: Discovers upcoming unpublished future issues (
ojs_list_issues) to help editors schedule accepted papers for publication.
🛠️ How We Built It
- Universal OJS Generic Plugin: Packaged as a clean, modular plugin (
plugins/generic/webmcp) compatible with modern OJS 3.4+ and 3.5+. - Zero API Key Friction: Academic editors are researchers, not DevOps engineers. Our plugin leverages the editor's active browser session cookie and CSRF token. When ChatGPT or Chrome Agent opens the tab, it inherits authoritative editorial permissions immediately-no API keys or environment variables required.
- Granular REST Integration: Extended OJS's core routing architecture with custom, authenticated REST endpoints (
/submissions/{id}/reviewAssignments) to expose granular review progress without leaking unnecessary personal identifiers. - W3C WebMCP Standard: All tools implement structured JSON Schemas and async execution handlers conforming strictly to the official WebMCP spec.
🧗 Challenges We Faced
- Navigating OJS's Deep RBAC & Security Policies: OJS has a strict multi-layer authorization system (
SubmissionAccessPolicy,PolicyAuthorizer). Ensuring that our WebMCP tools respected editorial permissions without bypassing journal security required deep reverse-engineering of OJS's internal routing stack. - Ensuring Human Authority Over AI Actions: We did not want an agent going rogue and emailing professors unsolicited rejection letters. Designing the Approval-Gated Action pattern (
confirmSendgate) ensured that the AI serves as an indispensable assistant while the human editor always retains final academic authority. - Data Sanitization & Metadata Quality: Normalizing OJS 3.5's multi-table author affiliation schemas (
author_affiliationsandauthor_affiliation_settings) and stripping raw HTML tags from abstracts so that LLMs receive clean, token-efficient context.
📚 What We Learned
- In-Browser MCP is the Future: Traditional MCP requires running local processes, configuring port forwarding, or sharing sensitive API tokens. WebMCP completely democratizes agentic AI for web-first workflows: you log into your web app, and your agent is immediately ready to help.
- The "Control Room" Dynamic: The winning paradigm for AI in knowledge work is not total automation, but co-browsing: the human provides the high-level strategy and moral judgment, while the agent handles workload tracking, data retrieval, and first-pass drafting.
🚀 What's Next
- Automated Reviewer Matching: Using paper embeddings and CrossRef/OpenAlex APIs to suggest the top 3 best-matching reviewers based on published citation history.
- Submission to PKP Plugin Gallery: Submitting this plugin to the official Public Knowledge Project (PKP) Plugin Gallery so that all 58,000+ academic journals worldwide can install OJS-WebMCP in a single click.
Built With
- academic-publishing
- ai-agents
- chatgpt
- chrome
- human-in-the-loop
- javascript
- json-schema
- laravel
- mysql
- ojs
- open-journal-systems
- php
- rest-api
- w3c
- webmcp
Log in or sign up for Devpost to join the conversation.