Geomcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Geomcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center"> <img src="https://www.ncbi.nlm.nih.gov/geo/img/geo_main.gif" alt="GEO Logo" width="200"/> <br/> <em>Gene Expression Omnibus (GEO) - A public functional genomics data repository</em> </div>
Status: Beta. The MCP stdio and HTTP servers are both functional and in day-to-day use. The public tool surface is stable for the 0.1.x line; internal APIs and config defaults may still evolve. Please open an issue if you hit a regression.
A Model Context Protocol (MCP) server for accessing GEO (Gene Expression Omnibus) data through NCBI E-Utils API. The tool will enable you to search for GEO datasets, series, samples, platforms, and profiles for your LLM. Tested with Claude Desktop, chatGPT has no out of the box support for this tool yet. Claude will automatically use the tools if it fits the context.
install from pip
pip install geo-mcpinstall from source
git clone https://github.com/MCPmed/GEOmcp
cd GEOmcp
pip install -e .Run init to create a config file
geo-mcp --initBy default this writes to $XDG_CONFIG_HOME/geomcp/config.json (typically ~/.config/geomcp/config.json). If you already have a legacy ~/.geo-mcp/config.json from an older install, that location is still honored and --init will update it in place so nothing gets orphaned.
The file contains:
{
"base_url": "https://eutils.ncbi.nlm.nih.gov/entrez/eutils",
"email": "[email protected]",
"api_key": "YOUR_API_KEY",
"download_dir": "~/.local/share/geomcp/downloads"
}email is required by NCBI.api_key is optional but recommended for higher rate limits(get one here).
You can also skip the config file entirely and pass values via env vars (GEOMCP_EMAIL, GEOMCP_API_KEY, GEOMCP_BASE_URL, GEOMCP_DOWNLOAD_DIR) or CLI flags (--email, --api-key, --download-dir, ...). Precedence, highest wins: CLI flags → env vars → config.json → built-in defaults.
geo-mcp geo-mcp --http --port 8001spawn geo-mcp ENOENTThis error means Claude Desktop cannot find the geo-mcp command. This is usually a PATH issue.
which geo-mcpExample output: /Users/youruser/miniforge3/bin/geo-mcp
Instead of just "geo-bio-mcp", use the full path:
{
"mcpServers": {
"geo-mcp": {
"command": "/Users/youruser/miniforge3/bin/geo-mcp",
"env": {
"CONFIG_PATH": "/Users/youruser/.geo-mcp/config.json"
}
}
}
}which geo-mcp to get the correct path.command not found: geo-mcp, make sure you installed into thePython environment whose bin directory is on your PATH, or invoke the server with its full path.
geo-mcp --init will create one. You canalso run without a config by setting GEOMCP_EMAIL in the environment.
With the server running via geo-mcp --http (default port 8001), the following endpoints are exposed:
GET / — server statusGET /health — health checkGET /tools — list all registered MCP toolsPOST /tools/call — execute a tool with argumentsGET /events — server-sent events stream of tool callsGET /docs — interactive Swagger UI# List available tools
curl http://localhost:8001/tools
# Search GEO Series
curl -X POST http://localhost:8001/tools/call \
-H "Content-Type: application/json" \
-d '{
"name": "search_geo_series",
"arguments": {"term": "breast cancer", "retmax": 5}
}'This MCP server provides access to all major GEO databases through the following tools:
results bucketed by accession type. Pass record_types to filter.
Each tool accepts:
For now just chat with claude desktop and it will use the tools automatically if it fits the context.
User: find a small brain dataset
Assistant: I'll help you find a small brain dataset from the GEO database. Let me search for brain-related datasets with a maximum of one result.
Assistant (system): search_geo_datasets
Assistant: I found a brain-related dataset for you:
This small dataset explores how prenatal stress affects neuro-immune circuits and mast-cell development.
Would you like me to download this dataset or search for others?
User: download GSE290848
Assistant: I'll download the GSE290848 dataset for you.
Assistant (system): download_geo_data
Assistant: Download complete.
Downloaded files
GSE290848_family.soft.gz — series, platform & sample infoGSE290848_metadata.xml — detailed study metadataLocation: ~/.local/share/geomcp/downloads/gse/GSE290848 Total size: 0.01 MB
The dataset is ready for analysis. Let me know if you’d like to explore it further.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.