Cochrane Meta-Analysis MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cochrane Meta-Analysis MCP Serverperform a random-effects meta-analysis on the 10 RCTs data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cochrane Meta-Analysis MCP Server
An MCP (Model Context Protocol) server that provides AI-assisted meta-analysis workflows following Cochrane methodological standards.
Features
RevMan Import: Parse RevMan 5 (.rm5 XML) and Cochrane CSV exports
Data Validation: Comprehensive validation against Cochrane standards
Meta-Analysis: R-based statistical analysis using metafor/meta packages
Forest Plots: Publication-ready visualizations
Publication Bias: Funnel plots, Egger's test, trim-and-fill
Reporting: Automated Cochrane-style HTML/PDF reports
Related MCP server: Cochrane MCP
Installation
npm install
npm run buildPrerequisites
Node.js 18+
R 4.0+ with packages:
metafor
meta
ggplot2
jsonlite
Install R packages:
install.packages(c("metafor", "meta", "ggplot2", "jsonlite"))Configuration
Add to Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"cochrane-meta": {
"command": "node",
"args": ["/Users/YOUR_USERNAME/Documents/cochrane-meta-mcp/dist/index.js"]
}
}
}Available Tools
1. import_revman_data
Import and parse RevMan 5 files or Cochrane CSV exports.
{
"file_path": "/path/to/review.rm5",
"format": "rm5"
}2. validate_cochrane_data
Validate study data against Cochrane standards.
{
"data": { ... },
"validation_level": "comprehensive"
}3. perform_meta_analysis
Execute meta-analysis following Cochrane Handbook Chapter 10.
{
"data": { ... },
"effect_measure": "OR",
"model": "random",
"heterogeneity_test": true
}4. generate_forest_plot
Create publication-ready forest plot.
{
"analysis_results": { ... },
"plot_style": "classic",
"output_path": "/path/to/forest_plot.png"
}5. assess_publication_bias
Perform publication bias assessment.
{
"analysis_results": { ... },
"methods": ["funnel_plot", "egger_test", "trim_fill"],
"output_path": "/path/to/funnel_plot.png"
}6. generate_cochrane_report
Generate comprehensive Cochrane-style report.
{
"analysis_results": { ... },
"format": "html",
"output_path": "/path/to/report.html"
}Example Usage with Claude
User: I have a Cochrane CSV file with 10 RCTs comparing intervention A vs control.
Can you help me run a meta-analysis?
Claude: I'll help you analyze this. First, let me import the data using the import_revman_data tool...
[Uses import_revman_data]
Claude: Great! I've imported 10 studies. Let me validate the data...
[Uses validate_cochrane_data]
Claude: Validation passed with 2 warnings about small sample sizes.
Now I'll perform the meta-analysis using a random-effects model
with odds ratios as the effect measure...
[Uses perform_meta_analysis]
Claude: The pooled OR is 0.75 (95% CI: 0.62-0.91), p=0.003, with moderate
heterogeneity (I²=45%). Let me generate a forest plot...
[Uses generate_forest_plot]
Claude: Forest plot created. Now checking for publication bias...
[Uses assess_publication_bias]
Claude: Egger's test p=0.42, no evidence of publication bias.
Generating final report...
[Uses generate_cochrane_report]
Claude: Complete! Your meta-analysis report is ready at report.htmlCSV Format
For CSV imports, use this format:
study_id,authors,year,title,intervention,comparison,outcome,events_treatment,n_treatment,events_control,n_control
Study1,Smith 2020,2020,RCT of intervention,Drug A,Placebo,Mortality,10,100,20,100
Study2,Jones 2021,2021,Another RCT,Drug A,Placebo,Mortality,15,150,30,150For continuous outcomes:
study_id,authors,year,title,intervention,comparison,outcome,mean_treatment,sd_treatment,n_treatment,mean_control,sd_control,n_controlDevelopment
# Watch mode
npm run dev
# Build
npm run build
# Test (coming soon)
npm testArchitecture
TypeScript MCP Server: Handles tool requests from Claude
R Bridge: Executes statistical analyses via Rscript
Validation Layer: Zod schemas for data validation
Tools: Modular tool implementations for each MCP capability
Integration with Existing Tools
This MCP server integrates with your existing meta-analysis infrastructure:
Uses your R meta-analysis scripts (
~/meta_analysis_workflow.R)Compatible with medical research multi-agent system
Can leverage AI citation processors for literature extraction
Cochrane Compliance
Follows:
Cochrane Handbook for Systematic Reviews (Chapter 10)
PRISMA reporting guidelines
Cochrane risk of bias (RoB 2) recommendations
GRADE framework for evidence certainty
License
MIT
Version
0.1.0
Author
Matheus Rech
Available Tools
6 toolsassess_publication_biasB
Perform publication bias assessment using funnel plots, Egger's test, and trim-and-fill method.
| Name | Required | Description | Default |
|---|---|---|---|
| methods | No | Publication bias assessment methods | |
| output_path | No | Path to save funnel plot | |
| analysis_results | Yes | Meta-analysis results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the methods used but doesn't disclose side effects, dependencies, expected return values, or any caveats about the input data. The absence of such information leaves the agent uncertain about the tool's behavior beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the core purpose. It avoids unnecessary wording and is easy to scan. However, it is perhaps too terse to provide meaningful behavioral or usage context, so it loses a point for being underspecified rather than merely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested object parameter (analysis_results) and an optional methods array, but the description does not explain how to provide these, what a valid analysis_results object looks like, or what the tool returns. With no output schema, the description is insufficient to guide an agent through a complete workflow, especially given the complexity of the input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, but since the schema already explains each parameter adequately, it doesn't need to compensate. The description doesn't clarify the relationship between analysis_results and the methods, but this is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Perform publication bias assessment using funnel plots, Egger's test, and trim-and-fill method.' This specifies the verb (perform), the resource (publication bias assessment), and the methods involved, effectively distinguishing it from sibling tools like perform_meta_analysis or generate_forest_plot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It doesn't mention that publication bias assessment typically follows a meta-analysis, nor does it reference sibling tools or indicate the required input format for analysis_results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_cochrane_reportB
Generate comprehensive meta-analysis report in Cochrane format (HTML/PDF).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format | html |
| output_path | Yes | Path to save report | |
| include_code | No | Include R code in report | |
| analysis_results | Yes | Complete meta-analysis results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior, but it only says 'generate'. It does not mention that a file is written to output_path, whether existing files are overwritten, or any side effects. The scope of 'comprehensive' remains undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence front-loaded with the verb and object. Every word adds value, with no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters including a nested object, but the description gives no context on workflow positioning, expected report structure, or output behavior. The absence of an output schema makes the description the only narrative source, and it is too sparse to fully orient an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with descriptions for all four parameters, so baseline is 3. The description adds slight value by noting the report is in Cochrane format and mentions HTML/PDF, which aligns with the format enum, but it does not enrich the meaning of analysis_results or output_path beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (generate), the object (comprehensive meta-analysis report), and the format (Cochrane format, HTML/PDF). It is distinct from sibling tools like perform_meta_analysis or generate_forest_plot, which cover other stages of the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. It does not mention prerequisites (e.g., meta-analysis results must be ready) or exclude use for tasks like plotting or validation. The intended context is implied only by the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_forest_plotB
Create publication-ready forest plot following Cochrane standards.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_style | No | Visual style of forest plot | classic |
| output_path | Yes | Path to save plot (PNG format, 300 DPI) | |
| analysis_results | Yes | Meta-analysis results | |
| confidence_level | No | Confidence interval level (0-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the purpose and that output follows Cochrane standards, but does not mention overwriting behavior, required input structure, or any side effects. This is insufficient for a tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose effectively. It is front-loaded and free of fluff, though it could include a brief note on expected input from perform_meta_analysis to improve usefulness without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool generates a plot file, but the description omits what the return value is (or if it just saves to output_path), what data structure analysis_results must have, and how this fits with sibling tools. Given no annotations and no output schema, the description should provide more context to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning to the parameters (e.g., what analysis_results should look like, how plot_style differs). Baseline of 3 is appropriate since the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a publication-ready forest plot following Cochrane standards. It uses a specific verb ('create'), a specific resource ('forest plot'), and adds a quality criterion ('publication-ready', 'Cochrane standards'), which distinguishes it from siblings like generate_cochrane_report or perform_meta_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage in a Cochrane-style meta-analysis context, but does not explicitly state when to use this tool versus alternatives like generate_cochrane_report. No when-not-to-use guidance or alternative tools are mentioned, so it relies on the user's understanding of the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_revman_dataA
Import and parse meta-analysis data from CSV, Excel (XLSX), or JSON formats. Supports both structured Cochrane datasets and flat record arrays. Extracts study metadata, outcomes, and analysis parameters following Cochrane standards.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Input file format: 'csv' for comma-separated values, 'xlsx' for Excel workbooks, 'json' for structured or array format JSON | |
| file_path | Yes | Path to data file (.csv, .xlsx, or .json) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It describes the parsing/extraction behavior and mentions adherence to 'Cochrane standards,' which adds context. However, it does not disclose side effects (e.g., whether data is persisted), permission requirements, or error handling behavior, leaving some ambiguity for an import tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the main action, and every word provides useful information. There is no redundancy or filler, making it highly concise while covering the essentials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema) and lack of annotations, the description is moderately complete. It explains what data is parsed and extracted, but it does not clarify whether the tool returns a dataset, stores data, or requires any external context. For a tool likely used as the first step in a workflow, this leaves some ambiguity about its output or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both 'file_path' and 'format' have clear descriptions in the schema. The tool description adds context about supported data structures ('structured Cochrane datasets and flat record arrays') but does not add meaning to individual parameters beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Import and parse') and resource ('meta-analysis data'), and explicitly lists supported formats. It is well differentiated from sibling tools (validate, analyze, plot, bias, report), which focus on later workflow stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied — it is the data ingestion step before validation and analysis — but the description does not explicitly state when to use it over alternatives or when not to use it. The mention of 'structured Cochrane datasets and flat record arrays' provides some applicability guidance, but no direct exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perform_meta_analysisB
Execute meta-analysis using R metafor/meta packages. Follows Cochrane Handbook Chapter 10 guidelines.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Validated study data | |
| model | No | Meta-analysis model | random |
| effect_measure | Yes | Effect measure type | |
| heterogeneity_test | No | Perform heterogeneity assessment (I², Q-test, τ²) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only mentions the R packages and Cochrane Handbook, which provide methodological context but not behavioral traits such as whether the tool writes outputs, requires pre-validated data, or has side effects. The return value is also undisclosed, especially important given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no filler. The second sentence adds useful context (Cochrane Handbook) without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with four parameters, no output schema, and no annotations. The description does not explain what the tool returns, how it connects to sibling tools (e.g., after validate_cochrane_data, before generate_forest_plot), or any limitations. The 'Validated study data' in the schema hints at prerequisites but the description does not elaborate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (data, model, effect_measure, heterogeneity_test) having a clear description. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Execute meta-analysis using R metafor/meta packages.' This is a specific verb and resource, and it distinguishes this tool from its siblings (import_revman_data, validate_cochrane_data, generate_forest_plot, assess_publication_bias, generate_cochrane_report), which handle supporting tasks rather than the core analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'Follows Cochrane Handbook Chapter 10 guidelines,' suggesting this is a standard meta-analysis tool. However, it does not explicitly state when to use this tool versus alternatives like validate_cochrane_data or generate_forest_plot, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_cochrane_dataA
Validate study data against Cochrane standards. Checks PICO criteria, sample sizes, effect sizes, and data quality.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Study data to validate | |
| validation_level | No | Level of validation checks | comprehensive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the checks performed, which is useful, but does not mention any side effects, output format, or whether data is modified. For a validation tool, read-only behavior is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and no wasted words. It is highly concise while conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description should indicate what the tool returns (e.g., a validation report, pass/fail). It also doesn't explain differences between 'basic' and 'comprehensive' validation. However, it does mention the key checks, providing some completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description only mentions general validation areas, not the parameters themselves. It doesn't clarify what 'validation_level' does beyond the schema's brief 'Level of validation checks'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Validate') and resource ('study data'), and lists concrete checks (PICO criteria, sample sizes, effect sizes, data quality), clearly distinguishing it from sibling tools like import_revman_data or generate_forest_plot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a validation workflow but does not explicitly state when to use this tool vs alternatives, nor provide prerequisites or exclusions. It lacks clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
assess_publication_bias - First observed
generate_cochrane_report - First observed
generate_forest_plot - First observed
import_revman_data - First observed
perform_meta_analysis - First observed
validate_cochrane_data
TDQS
Scored across 6 tools
Each tool targets a distinct stage in the meta-analysis workflow: import, validate, analyze, visualize, bias assessment, and report generation. No overlap or ambiguity between tool purposes.
All tool names follow a consistent verb_noun snake_case pattern (import_, validate_, perform_, generate_, assess_, generate_). The pattern is uniform and predictable.
Six tools cover the essential steps of a Cochrane meta-analysis pipeline without being excessive. Each tool serves a clear and necessary role, making the set well-scoped.
The toolset covers the core workflow from data import to report generation. Minor gaps exist (e.g., sensitivity analysis, subgroup analysis, data export), but the primary domain is well represented.
Maintenance
Related MCP Connectors
The statistical analyst in your AI chat — validated, citable, re-runnable analysis of your data.
Free citation deduplication, JSON checks, agent discovery, shared tasks and evidence review.
Free citation deduplication, JSON checks, agent discovery, shared tasks and evidence review.
Multi-expert decision intelligence with transparent synthesis and auditable workflows.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables medical evidence retrieval and analysis via AI-powered search and summarization tools.145 npmMIT
- AlicenseNot gradedqualityBmaintenanceTurns the Cochrane Library into a tool for AI agents to search and retrieve clinical evidence, including systematic reviews, trials, and plain-language summaries.10 npm1MIT
- AlicenseAqualityBmaintenanceEnables automated assessment of research manuscripts against the TARGET reporting guideline for target trial emulation, providing item-by-item scoring with evidence and provenance.11Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI-native statistical analysis and reproducible research workflows through MCP, including natural language planning, protocol-based analysis, Python/R cross-validation, and publication-ready figure generation.MIT