Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

mrmrmr

LLM-powered automated Mendelian Randomization for causal discovery in biomedical research

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 35 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
Name/description align with included code: the package implements PubMed crawling, LLM prompt/selection logic, OpenGWAS lookups and R-based MR analysis. However, the registry metadata marks OPENGWAS_JWT as a required environment variable while the SKILL.md and code treat it as optional (only needed for online OpenGWAS access); likewise OPENAI_API_KEY is declared required despite the code supporting local LLM providers (ollama). Requiring those credentials unconditionally is disproportionate to the multiple supported workflows (local CSV mode and local LLMs).
Instruction Scope
SKILL.md and run_mragent.py explicitly instruct the agent to crawl PubMed, call LLMs, query OpenGWAS (online or via local CSV), and run R scripts for MR analysis — all expected for this purpose. The instructions do not appear to direct unrelated data collection or exfiltration. One runtime example (agent_demo) uses a nonstandard API base_url in examples (https://api.gpt.ge/v1/) which is unexpected and should be reviewed before use.
Install Mechanism
There is no automated install spec in the registry (instruction-only), so nothing will be automatically downloaded by the skill manifest. The repository includes requirements.txt and README instructions that tell users to pip/Poetry-install packages and (in README) to run an external curl | sh for ollama; that curl command is in the README (user-facing guidance) not an automated installer, but it is a high-risk pattern to follow blindly.
!
Credentials
The skill declares OPENAI_API_KEY and OPENGWAS_JWT as required env vars and OPENAI_API_KEY as primary. In practice: (1) OPENGWAS_JWT is only needed for online OpenGWAS queries (a local CSV mode exists, and the repo includes opengwas.csv), so requiring it unconditionally is disproportionate; (2) the code supports alternate LLM providers (ollama/local) so mandating an OpenAI API key by default is also unnecessary for those workflows. No unrelated third-party credentials (AWS, database passwords) are requested.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide agent settings. It is runnable as a normal user-level tool and does not demand persistent elevated privileges in the manifest.
What to consider before installing
What to check before installing or running this skill: - Do not hand over secrets until you confirm you need them: OPENGWAS_JWT is only required for online OpenGWAS access — you can run the tool in CSV mode using the included opengwas.csv if you prefer not to provide a GWAS token. Likewise, if you plan to use a local LLM (ollama/local model), you do not need to set an OPENAI_API_KEY; the skill currently declares it as required, but that is not strictly necessary for local LLM workflows. - Review example/demo base_url values and examples: some demo files reference an unexpected third-party base_url (e.g., https://api.gpt.ge/v1/). Treat those as examples only and do not point your API_KEY at unknown endpoints. - Inspect code before running: this package includes many Python scripts that will run network requests (PubMed, OpenGWAS, LLM providers) and invoke R via Rscript. If you will run it in an environment with sensitive data, run it in an isolated environment (container or VM) first. - Exercise caution with the README 'curl | sh' instruction for installing ollama: running arbitrary install scripts from the web is risky; follow official install docs from the vendor and verify the script source. - If you want to minimize exposure: run in CSV mode (opengwas.csv present), use a local LLM provider, and create a throwaway API key (or scope/monitor the key) if you must provide a remote LLM key. Consider reviewing mrmrmr/mragent/LLM.py and any network-calling modules to confirm endpoints and behavior. - If uncertain, run a code audit or execute the tool in a sandbox to observe network traffic and file outputs before using it in production or with real credentials.
mrmrmr/mragent/agent_workflow.py:976
Dynamic code execution detected.
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.1
Download zip
latestvk97df64dqnb9kzadt5c2fg8y3d83zcs2

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🧬 Clawdis
Binspython, Rscript
EnvOPENAI_API_KEY, OPENGWAS_JWT
Primary envOPENAI_API_KEY

SKILL.md

MRAgent - Automated Mendelian Randomization Analysis Agent

Description

MRAgent is an intelligent agent that automates the entire process of Mendelian randomization analysis for causal discovery in biomedical research. It:

  1. Knowledge Discovery Mode (KD): Given a disease (outcome), automatically scans PubMed literature to discover potential modifiable exposure (risk factor) that have correlation but no established causal inference, then performs comprehensive Mendelian randomization analysis using OpenGWAS data to identify novel causal relationships.

  2. Causal Validation Mode (CV): Directly test whether a user-specified exposure (e.g., "body mass index") has a causal effect on a specific outcome (e.g., "type 2 diabetes") using two-sample Mendelian randomization.

MRAgent handles all steps automatically:

  • PubMed literature crawling
  • LLM-based extraction of candidate exposure-outcome pairs
  • Check for existing MR studies via PubMed search
  • Optional STROBE-MR quality assessment of existing studies
  • UMLS medical synonym expansion
  • OpenGWAS database query for GWAS summary statistics
  • LLM selection of most appropriate GWAS datasets
  • Multiple MR methods: Inverse variance weighted, MR-Egger, weighted median, etc.
  • Heterogeneity analysis and pleiotropy sensitivity testing
  • MRlap correction for sample overlap
  • Automatic generation of publication-ready PDF reports with LLM-written interpretation

Requirements

  • Python packages (install via pip install -r {baseDir}/requirements.txt)
  • R language (>= 4.3.4) with the following packages installed:
    • TwoSampleMR - core Mendelian randomization
    • ieugwasr - OpenGWAS interface
    • vcfR - required for MRlap (optional)
    • MRlap - sample overlap correction (optional)
    • jsonlite - JSON processing (required for MRlap)
  • OPENAI_API_KEY environment variable must be set (OpenAI API key)
  • OPENGWAS_JWT environment variable (optional, for OpenGWAS access token)

Usage

Knowledge Discovery Mode (recommended for novel discoveries)

Discover novel causal relationships starting from a disease:

python {baseDir}/run_mragent.py --mode KD --outcome "back pain" --num-pubmed 100 --bidirectional

Discover novel causal relationships starting from an exposure:

(Currently the CLI implements KD starting from outcome; for exposure-based discovery use the Python API directly)

Causal Validation Mode

Validate a specific hypothesis: does exposure causally affect outcome?

python {baseDir}/run_mragent.py --mode CV --exposure "body mass index" --outcome "type 2 diabetes"

Common Options

OptionDescriptionExample
--mode KD|CVRequired. KD=knowledge discovery, CV=causal validation--mode CV
--outcome NAMERequired. Outcome (disease) to study--outcome "back pain"
--exposure NAMERequired in CV mode. Exposure factor to test--exposure "osteoporosis"
--num-pubmed NNumber of papers to fetch from PubMed (default: 100)--num-pubmed 50
--model MR|MR_MOEMR model type. MR=standard, MR_MOE=mixture of experts--model MR_MOE
--bidirectionalPerform bidirectional analysis (also test outcome → exposure)--bidirectional
--no-synonymsDisable synonym expansion (faster)--no-synonyms
--strobe-mrEnable STROBE-MR quality assessment of existing studies--strobe-mr
--mrlapEnable MRlap sample overlap correction--mrlap
--output-dir DIROutput directory (default: ./output)--output-dir /tmp/mragent-out
--steps 1,2,3Only run specific steps (for debugging/intervention)--steps 1,2

Environment Variables

VariableRequiredDescription
OPENAI_API_KEYYesOpenAI API key
OPENGWAS_JWTOptionalOpenGWAS JWT access token
LLM_MODELNoLLM model name (default: gpt-4o)
LLM_PROVIDERNoopenai or ollama (default: openai)
OPENAI_BASE_URLNoCustom base URL for OpenAI-compatible API
MRAGENT_SOURCE_PATHNoPath to original MRAgent source if not installed globally

Output

MRAgent outputs a JSON summary to stdout with:

  • success: boolean indicating success
  • output_directory: directory containing all results
  • discovered_pairs: number of candidate exposure-outcome pairs found
  • selected_for_mr: number of pairs selected for MR analysis
  • reports: list of paths to generated PDF files (Report.pdf, Introduction.pdf, Conclusion.pdf, etc.)

Example output:

{
  "success": true,
  "mode": "CV",
  "outcome": "back pain",
  "exposure": "osteoarthritis",
  "output_directory": "./output/osteoarthritis_back_pain_gpt-4o",
  "discovered_pairs": 1,
  "selected_for_mr": 1,
  "reports": [
    "./output/osteoarthritis_back_pain_gpt-4o/osteoarthritis_back_pain/Introduction.pdf",
    "./output/osteoarthritis_back_pain_gpt-4o/osteoarthritis_back_pain/osteoarthritis_back_pain/MR_ieu-a-2_ieu-a-1008/Report.pdf",
    "./output/osteoarthritis_back_pain_gpt-4o/osteoarthritis_back_pain/Conclusion.pdf"
  ]
}

Workflow Steps

When running all steps (default):

StepDescription
1Crawl PubMed, extract candidate exposure-outcome pairs
2Check if each pair already has MR studies in literature
3Extract unique terms, expand with medical synonyms
4Check which terms have available GWAS data in OpenGWAS
5LLM selects most appropriate GWAS IDs for each term
6Generate all combinations of exposure-outcome pairs
7Check new combinations for existing MR studies
8Select final set of novel pairs for analysis
9Run MR analysis, generate plots and LLM-interpreted PDF reports

Notes

  • This is a computationally intensive process. The full analysis can take tens of minutes to hours depending on the number of pairs.
  • All intermediate results are saved as CSV files in the output directory, allowing manual editing and intervention between steps.
  • MRAgent requires R to be installed with the necessary packages, because the actual MR analysis is performed by R's TwoSampleMR package.

Files

32 total
Select a file
Select a file to preview.

Comments

Loading comments…