AgentStack
MCP verified MIT Self-run

Research Workflow Assistant

mcp-andre-inter-collab-llc-research-workflow-assistant · by andre-inter-collab-llc

Open-source AI research assistant for VS Code + GitHub Copilot. Connects to PubMed, OpenAlex, Semantic Scholar, Europe PMC, CrossRef, and Zotero via MCP servers. Custom agents guide systematic reviews, academic writing, data analysis, and project management — all ICMJE-compliant with full audit trails.

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add mcp-andre-inter-collab-llc-research-workflow-assistant

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Research Workflow Assistant? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Research Workflow Assistant

An open-source, modular AI research assistant that runs inside VS Code + GitHub Copilot. It connects to academic databases via MCP (Model Context Protocol) servers and encodes research best practices through custom Copilot agents. Built for reproducibility, ICMJE compliance, and human-centered research.

All RWA outputs — manuscripts, protocols, reports, analysis scripts, dashboards, and progress briefs — use Quarto (by Posit) as the default document format. Quarto supports R and Python code execution, multi-format rendering (HTML, PDF, Word, PowerPoint, dashboards, websites, books, slides), native Mermaid diagrams, and built-in bibliography management. See [docs/posit-quarto-guide.md](docs/posit-quarto-guide.md) for the full ecosystem guide.

> Model note: This project was developed and tested using Claude Opus 4.6 and GPT-5.3-Codex in GitHub Copilot agent mode. You can switch between models depending on task type and preference. Other models available in Copilot (model comparison) may also work, but behavior can vary by agent workflow, so validate critical outputs after switching.

> First time here? Start with [docs/quick-start.md](docs/quick-start.md), > or open Copilot Chat and type @setup for an interactive guided setup. > If setup is complete and something is not working, use @troubleshooter for diagnostics and issue resolution. > For the full walkthrough, see [docs/getting-started.md](docs/getting-started.md).

> Important: Before using non-setup agents, you must accept the user disclaimer once via @setup.

Philosophy

The question isn't which AI research tool to adopt. It's whether researchers have the right tech stack to build their own.

RWA is a proof of concept for what becomes possible when researchers have a capable IDE, open-source tools, and access to a capable LLM. If your researchers already have VS Code, R, Python, Quarto, Markdown, and git, they have the building blocks. Give them LLM access, and someone on the team could build a custom, organization-compliant research workflow assistant in a few weeks, with MCP servers tailored to their specific needs.

Any specific implementation is going to be opinionated. This one integrates with Zotero, enforces ICMJE authorship guidelines, and defaults to Quarto for reproducible documents. Your organization might make entirely different choices, and that's fine.

What matters is not locking researchers into a single platform. Tools that sound impressive but limit you to one documentation system, one output format, one way of working are the kind of constraint that slows people down. The better path: meet researchers where they already are. Make their existing environment AI-capable. Don't replace their tools; connect them.

The stack already exists:

  • Positron / VS Code for the IDE
  • R and Python for analysis
  • Quarto and Markdown for reproducible documents
  • Git for version control and collaboration
  • MCP for connecting LLMs to structured data sources

The missing piece for most organizations isn't a new product. It's access to a capable LLM within the tools researchers already use, and permission to experiment.

Read the launch post on LinkedIn for the full backstory.

Who Is This For?

Any researcher who wants AI-assisted support without surrendering intellectual ownership:

  • NGO and public sector researchers managing evidence reviews or program evaluations
  • Government analysts producing policy briefs backed by systematic evidence
  • Academic faculty and postdocs running systematic reviews or multi-study projects
  • Independent researchers and consultants needing structured, reproducible workflows
  • Research organizations wanting standardized, auditable research processes

No PhD required. If you do research, this tool is for you.

What It Does

| Capability | How | |---|---| | Systematic literature reviews | @systematic-reviewer agent guides PRISMA-compliant workflows: question refinement (PICO/PEO/SPIDER), search strategy development, database searching, screening, data extraction, risk of bias | | Academic database access | MCP servers for PubMed, OpenAlex, Semantic Scholar, Europe PMC, and CrossRef | | Reference management | Zotero MCP server: search library, add items by DOI, tag, organize collections, export BibTeX | | Data analysis | @data-analyst agent generates reproducible R or Python analysis scripts in Quarto documents | | Academic writing | @academic-writer agent scaffolds IMRaD manuscripts, manages citations, enforces ICMJE AI disclosure | | Research planning | @research-planner agent helps with protocols, ethics applications, study design, grant writing | | Project management | @project-manager agent tracks phases, milestones, tasks, decisions; generates progress briefs for colleagues | | End-to-end orchestration | @research-orchestrator routes workflows across specialist agents, tracks stage progression, and provides ready-to-run handoff prompts | | Verification and reproducibility | @verification-coordinator agent co-develops human-friendly, LLM-executable verification workbooks, tracks verifier preferences, and standardizes checkpoint evidence outputs | | Troubleshooting and support | @troubleshooter agent diagnoses environment and MCP issues, validates API keys, and provides practical how-to help for day-to-day RWA usage | | Development and bug fixes | @developer agent gathers requirements for bug fixes, feature requests, and codebase improvements, then directs to plan mode for implementation | | Chat session export | Export Copilot Chat conversations to QMD for reproducibility via scripts/export_chat_session.py or chat-exporter MCP server | | ICMJE compliance | Built into every agent: human-in-the-loop mandate, audit trail, AI disclosure generation, authorship checklist |

Architecture

graph TB
    YOU["👤 You · the ResearcherAll decisions · All ownership · All accountability"]

    VSCODE["VS Code + GitHub Copilot Chat"]

    YOU --> VSCODE

    subgraph AGENTS["Specialist AI Agents"]
        direction LR
        ORCH["@research-orchestratorEnd-to-endworkflow routing"] ~~~ SR["@systematic-reviewerPRISMA-compliantevidence reviews"] ~~~ RP["@research-plannerProtocols &study design"] ~~~ DA["@data-analystReproducible R / Pythonanalysis scripts"] ~~~ AW["@academic-writerManuscript drafting& citations"] ~~~ PM["@project-managerMilestones, decisions& progress briefs"] ~~~ VC["@verification-coordinatorHuman + LLMverification workbooks"] ~~~ TS["@troubleshooterDiagnostics &environment fixes"] ~~~ DEV["@developerBug fixes &feature planning"]
    end

    VSCODE --> AGENTS

    ICMJE["🔒 ICMJE Compliance LayerHuman-in-the-loop · Audit trail · AI disclosure"]

    AGENTS --> ICMJE

    subgraph MCP["MCP Servers · Model Context Protocol"]
        direction LR
        subgraph LITERATURE["Literature Databases"]
            direction LR
            PUB["PubMedNCBI E-utilities"] ~~~ OA["OpenAlexREST API"] ~~~ SS["Semantic ScholarAcademic Graph"] ~~~ EPMC["Europe PMCREST API"] ~~~ CR["CrossRefDOI metadata"]
        end
        subgraph REFERENCE["Reference Management"]
            direction LR
            ZOT["Zotero WebAPI v3"] ~~~ ZLOC["Zotero LocalPDFs & annotations"]
        end
        subgraph TRACKING["Project Tracking"]
            direction LR
            PRISMA["PRISMA Trackerflow diagrams"] ~~~ PROJ["Project Trackertasks & milestones"] ~~~ CHATEX["Chat Exportersession audit trails"]
        end
    end

    ICMJE --> MCP

    subgraph OUTPUTS["Research Outputs"]
        direction LR
        QMD["📄 Quarto DocumentsManuscripts · Protocols · Reports"] ~~~ SCRIPTS["📊 Analysis ScriptsR · Python · Reproducible"] ~~~ PFLOW["📋 PRISMA FlowDiagrams & Checklists"] ~~~ BRIEFS["📝 Progress BriefsDecision logs · Meeting notes"]
    end

    MCP --> OUTPUTS

    %% ── Styles ──
    classDef researcher fill:#2563eb,stroke:#1e40af,color:#fff,font-weight:bold
    classDef vscode fill:#007acc,stroke:#005a9e,color:#fff,font-weight:bold
    classDef agent fill:#7c3aed,stroke:#5b21b6,color:#fff
    classDef compliance fill:#dc2626,stroke:#991b1b,color:#fff,font-weight:bold
    classDef litdb fill:#10b981,stroke:#047857,color:#fff
    classDef refmgmt fill:#14b8a6,stroke:#0d9488,color:#fff
    classDef tracking fill:#06b6d4,stroke:#0891b2,color:#fff
    classDef output fill:#d97706,stroke:#b45309,color:#fff

    class YOU researcher
    class VSCODE vscode
    class ORCH,SR,RP,DA,AW,PM,VC,TS,DEV agent
    class ICMJE compliance
    class PUB,OA,SS,EPMC,CR litdb
    class ZOT,ZLOC refmgmt
    class PRISMA,PROJ tracking
    class QMD,SCRIPTS,PFLOW,BRIEFS output

> Also available as [SVG](docs/rwa-architecture.svg), [rendered HTML](docs/architecture-diagram.qmd) (quarto render docs/architecture-diagram.qmd), or [Mermaid source](docs/rwa-architecture.mmd).

ICMJE Compliance: You Are the Author

This tool is designed around the ICMJE authorship criteria. AI cannot be an author. You must meet all four criteria:

  1. Substantial contributions to conception, design, data acquisition, analysis, or interpretation
  2. Drafting or critically revising the work for important intellectual content
  3. Final approval of the version to be published
  4. Accountability for all aspects of the work

The tool enforces this by:

  • Requiring human decisions at every substantive step
  • Tracking AI contributions in an audit trail (ai-contributions-log.md)
  • Generating ICMJE-compliant AI disclosure statements for your manuscripts
  • Refusing to finalize outputs without explicit human review

Per ICMJE Section II.A.4: AI use must be disclosed in acknowledgments (writing assistance) and methods (data analysis). This tool generates those disclosures for you.

Setup also captures a default author profile in [.rwa-user-config.yaml](.rwa-user-config.yaml), and new projects can store per-project authors metadata in [templates/project-config.yaml](templates/project-config.yaml) so future reports and manuscripts start with the correct author front matter.

When RWA itself is cited in a Methods or Acknowledgments section, use the vanzyl2026rwa BibTeX entry from [templates/rwa-citation.bib](templates/rwa-citation.bib).

Disclaimer and Readiness Gate

RWA enforces a disclaimer/readiness gate before non-setup agent workflows.

  • Source disclaimer text: [compliance/user-disclaimer.md](compliance/user-disclaimer.md)
  • Acceptance state file: [.rwa-user-config.yaml](.rwa-user-config.yaml)
  • Required value: disclaimer_accepted: true (boolean)

When accepted through @setup, .rwa-user-config.yaml should include values like:

disclaimer_accepted: true
disclaimer_accepted_date: "YYYY-MM-DD"
setup_completed: true
setup_completed_date: "YYYY-MM-DD"
default_author:
  name: "Author Name"
  affiliation:
    name: "Organization"

If acceptance is missing or invalid, agents will return:

Before using RWA, you need to review and accept the disclaimer. Run @setup to get started.

If you see this message unexpectedly:

  1. Confirm [.rwa-user-config.yaml](.rwa-user-config.yaml) exists at workspace root.
  2. Confirm disclaimer_accepted is boolean true (not a quoted string).
  3. Run @setup again to refresh config if needed.
  4. Open a new Copilot Chat session after setup changes.

Quick Start

What setup includes (typical 20-30 minutes)

  • Stage 1: Verify Python and VS Code prerequisites
  • Stage 2: Create .venv and install all MCP servers
  • Stage 3: Configure .env API keys and PROJECTS_ROOT
  • Stage 4: Run setup validation + MCP smoke check
  • Stage 5: Confirm servers in VS Code
  • Stage 6: Save a default author profile for future outputs
  • Stage 7: Optionally start a first project with project-specific authorship metadata

> Prefer a guided setup? Open Copilot Chat and type @setup. It will > walk you through every step interactively.

Prerequisites

| Requirement | Notes | |---|---| | VS Code 1.99+ with GitHub Copilot | Agent mode must be enabled | | Python 3.11+ | Required — runs the MCP servers | | R 4.0+ | Optional — for R-based analysis templates | | Quarto | Optional — for rendering document templates | | Zotero | Optional — for reference management |

Step 1 — Clone and open the repo

git clone https://github.com/yourusername/research-workflow-assistant.git
cd research-workflow-assistant
code .

Step 2 — Create a Python environment and install MCP servers

# Create and activate a virtual environment
python -m venv .venv
# Windows:
& .venv\Scripts\Activate.ps1
# macOS / Linux:
# source .venv/bin/activate

# Install all 11 MCP servers in development mode
pip install -e mcp-servers/_shared \
            -e mcp-servers/pubmed-server \
            -e mcp-servers/openalex-server \
            -e mcp-servers/semantic-scholar-server \
            -e mcp-servers/europe-pmc-server \
            -e mcp-servers/crossref-server \
            -e mcp-servers/zotero-server \
            -e mcp-servers/zotero-local-server \
            -e mcp-servers/prisma-tracker \
            -e mcp-servers/project-tracker \
            -e mcp-servers/chat-exporter \
            -e mcp-servers/bibliography-manager

# Install dev tools (linting, testing)
pip install -e ".[dev]"

Step 3 — Configure API keys

# Copy the example env file
cp .env.example .env          # macOS / Linux
copy .env.example .env        # Windows

Open .env and add your credentials. At minimum:

| Key | Where to get it | Required? | |---|---|---| | NCBI_API_KEY | NCBI account settings | Recommended | | OPENALEX_API_KEY | OpenAlex API key settings | Recommended | | ZOTERO_API_KEY | Zotero key settings | If using Zotero | | ZOTERO_USER_ID | Numeric ID shown at the top of the Zotero keys page (not your username) | If using Zotero |

Full details: [docs/api-setup-guide.md](docs/api-setup-guide.md)

PROJECTS_ROOT should normally remain ./my_projects unless you explicitly want projects in another folder.

Step 4 — Verify everything works

python scripts/validate_setup.py

Need JSON for automation?

python scripts/validate_setup.py --json

Or in VS Code: Ctrl+Shift+P → "MCP: List Servers" — all 11 servers should appear.

Step 5 — Start using it

If you want one entry point that coordinates all phases, start with:

@research-orchestrator I am starting a systematic review. Orchestrate the full workflow and tell me exactly which agent prompt to run at each stage.

Or choose a specialist agent directly if you already know the stage.

Open Copilot Chat and try an agent:

@project-manager Initialize a new project called "my-first-review" in my_projects/my-first-review.

See [docs/getting-started.md](docs/getting-started.md) for the full guide, including project setup, multi-project workflows, an

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.