Dog Geroscience

io.github.w0lph由 GitHub 账号 w0lph 发布v0.1.1更新于 Oct 29, 2026

Dog-specific aging tools: HAGR dog rows, dog orthologs, dose translation, DAP codebooks, FDA FOI.

概览

AI 生成的概览

本地 MCP 服务器,为助手提供犬类衰老研究工具:寿命与药物数据、同源基因、剂量换算、Dog Aging Project 码本、试验与 FDA FOI 摘要。

可以做什么
  • 查询 HAGR 数据库中的物种寿命、衰老基因与延寿实验记录
  • 查找人/小鼠基因的犬同源基因,并在物种间换算剂量
  • 检索 Dog Aging Project 码本与发布版本中的调查变量
  • 检索犬类衰老文献、NIH 资助项目与已登记的犬衰老试验
  • 获取犬用产品的 FDA FOI 摘要及结构化的剂量、药代、安全性与不良反应记录
  • 汇总上述来源与 openFDA 犬不良反应数据,生成单一化合物的证据档案
适用场景
适合回答犬类衰老、延寿干预、兽医剂量或犬衰老研究数据相关的问题,并希望得到有出处、可引用的证据而非泛泛知识。面向研究型问题,而非一般兽医诊疗。
运行要求
以 stdio 在本地运行,通常通过 uvx 启动,需要 Python 与 uv。首次运行会从 Hugging Face Hub 下载约 90 MB 的预构建 SQLite 数据库到用户缓存目录;DOG_GERO_DATA 指定其位置,DOG_GERO_DB_URL 可指定其他下载地址。部分工具在请求时访问 Ensembl、NIH RePORTER 与 openFDA,需要网络。
安装前请注意
首次启动会从第三方主机下载约 90 MB 数据;DOG_GERO_DB_URL 可将下载指向其他来源,请只使用可信来源。实时工具会把基因名、检索短语和化合物名发送给 Ensembl、NIH RePORTER 与 openFDA。结果只反映来源收录的内容,不代表生物学或临床事实,也不构成兽医建议。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dog Geroscience,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

dog-geroscience-mcp

mcp-name: io.github.w0lph/dog-geroscience-mcp

An MCP server that gives any agent (Claude, Cursor, other MCP clients) dog-specific aging tools that do not exist anywhere else:

ToolSourceWhat it answers
anage_speciesHAGR AnAgeLongevity record for the dog (or any species for comparison): max longevity, IMR, MRDT, weight, maturity.
drugage_search, drugage_species_summaryHAGR DrugAgeLifespan-extension experiments by compound/species, with the NIA ITP flag; shows how thin the dog evidence is.
genage_searchHAGR GenAgeHuman aging genes and model-organism longevity genes by symbol/name.
dog_orthologEnsembl Compara (live, cached)Dog ortholog(s) of a human/mouse gene: id, symbol, % identity, orthology type, location.
dose_translateFDA 2005 Km tablemg/kg conversion between species (mouse → dog = ×3/20).
dap_releases, dap_codebook_search, dap_variableDog Aging Project public codebooks (GitHub)Which survey variables capture a concept; full entry for a variable; which releases contain it.
nih_reporter_searchNIH RePORTER v2 (live)Funded projects matching a phrase, by fiscal year.
corpus_search, corpus_record, corpus_infocanine-aging-corpus (Europe PMC)BM25 search over 3,500+ canine aging papers; abstracts for all, Markdown full text for the open-access subset.
foi_summary_search, foi_summary_getfoi-summaries (FDA CVM, public domain)FOI summaries for 497 dog products: recommended dosage, indications, route, PK and safety candidate sentences, PDF link; foi_summary_get returns the parsed section text (e.g. the dose-multiple target-animal-safety study) by foi_id.
foi_structured_searchfoi-summaries structured layerTyped, quote-grounded records for all 497 summaries (1,026 PK values, 193 safety studies, 918 adverse-reaction rows): dose regimen, PK values, target-animal-safety design/findings, effectiveness study, adverse reactions with treated/control rates.
canine_trial_searchcanine-trials registryInterventional studies and cohorts on aging in dogs (lifespan, healthspan, cognition, mobility, immunosenescence, cancer prevention), including company programs (STAY/LOY-002, LOY-001, LOY-003) and TRIAD: design, status, intervention, dose, duration, population, primary outcome, result as reported, sources with verbatim quotes. Match on name, acronym, intervention, tags or PMID; trial_id for one record; status filter.
intervention_dossiercomposition of the above + openFDAOne evidence package per compound: DrugAge across species with ITP and dog rows, dog-equivalent doses, corpus hits and dog trials, target ortholog, openFDA dog adverse events, FOI summaries, explicit gaps. Synonym-aware (selegiline ↔ L-deprenyl, rapamycin ↔ sirolimus).

The server also exposes one MCP prompt, dossier_briefing(compound, target_gene?), which instructs the client model to call intervention_dossier and write a six-section evidence briefing without adding anything the tools did not return. examples/rapamycin_briefing.md is a worked example written from examples/rapamycin_dossier.json; examples/selegiline_dossier.json shows the FOI and structured blocks populated for a marketed veterinary drug.

scripts/dossier_eval.py runs the dossier over 14 ITP-tested compounds plus two veterinary comparators and prints a coverage table (data/dossier_eval.json). It measures what the sources contain, not biological truth: for example rapamycin resolves 37 DrugAge experiments, 16 ITP rows, 152 corpus mentions and 5 candidate dog trials but no FOI summary (not a veterinary product), while selegiline resolves 1 dog lifespan experiment, 4,117 openFDA dog reports and 2 FOI summaries with 2 structured records, and carprofen 46,859 openFDA dog reports plus FOI summaries and structured records up to each search's result cap (11 and 19).

Adjacent servers this one deliberately does not duplicate: sniff-mcp (canine genomics, OMIA, breed allele frequencies), mcp-veterinary-fda (openFDA animal adverse events, Green Book), and the longevity-genie servers (Open Genes, SynergyAge, gget).

Install

No build step: the first run downloads the prebuilt database (~90 MB) from the Hugging Face Hub (w0lph/dog-geroscience-mcp-data) into a per-user cache directory, and every offline tool works from that single file.

bash
uvx dog-geroscience-mcp                 # stdio server; downloads the database on first startuvx dog-geroscience-mcp fetch-data      # or download it explicitly (prints the path)

Claude Desktop / Claude Code / Cursor config:

json
{  "mcpServers": {    "dog-geroscience": {      "command": "uvx",      "args": ["dog-geroscience-mcp"]    }  }}

Claude Desktop, one click: download dog-geroscience-mcp-<version>.mcpb from the releases page and open it (Settings → Extensions → Install from file). The bundle declares the PyPI package as a uv-type extension, so the desktop app installs it with its own uv; nothing else to set up. Source of the bundle: mcpb/ (npx @anthropic-ai/mcpb pack mcpb dist/dog-geroscience-mcp-0.1.1.mcpb).

Claude Code, as a plugin with a routing skill (needs uv on the PATH):

text
/plugin marketplace add w0lph/k9/plugin install dog-geroscience@k9

Codex CLI:

bash
codex mcp add dog-geroscience -- uvx dog-geroscience-mcp

The skill alone, for any agent that reads SKILL.md files: copy plugins/dog-geroscience/skills/dog-geroscience/ into your skills directory (for Claude Code, ~/.claude/skills/). It routes dog-aging questions to the right tools and states how to read their output (species labels on FOI summaries, allometric doses, verbatim quotes).

Docker (the root Dockerfile of the repository bakes the database into the image):

bash
docker build -t dog-geroscience-mcp . && docker run -i --rm dog-geroscience-mcp

Environment: DOG_GERO_DATA (where the database lives; default %LOCALAPPDATA%\dog-geroscience-mcp on Windows, ~/.cache/dog-geroscience-mcp elsewhere, <checkout>/data in a source checkout), DOG_GERO_DB_URL (alternative download URL), DOG_GERO_AUTO_FETCH=0 (fail instead of downloading when the database is missing).

Build from sources

bash
uv syncuv run dog-geroscience-mcp build            # downloads HAGR + DAP codebooks, indexes ../corpus/data and ../foi/datauv run dog-geroscience-mcp build --skip-downloaduv run dog-geroscience-mcp build --fulltext-licences "cc by,cc0" --out dog_geroscience.sqlite   # the redistributable builduv run dog-geroscience-mcp                  # serve from data/dog_geroscience.sqliteuv run mcp dev src/dog_geroscience_mcp/server.py   # inspector (optional)

The build writes one SQLite file: plain tables + FTS5 indexes, the corpus's Markdown full text (all of it locally; only CC BY / CC0 articles in the published file), the full FOI records, and a meta table with every source URL and fetch time. DOG_GERO_CORPUS, DOG_GERO_FOI and DOG_GERO_FOI_STRUCTURED point the build at the inputs.

In a source checkout, Claude Desktop can run it without PyPI:

json
{  "mcpServers": {    "dog-geroscience": {      "command": "uv",      "args": ["--directory", "D:/OneDrive/k9/mcp", "run", "dog-geroscience-mcp"]    }  }}

Design

  • Ground-truth tables (AnAge, DrugAge, GenAge, DAP codebooks) are served verbatim with their source; nothing is merged or inferred.
  • Network at request time is limited to the live tools (Ensembl, RePORTER, and openFDA inside the dossier); Ensembl results are cached in the database. The database itself is fetched once, atomically, and checked for the SQLite header before use.
  • Query functions in queries.py are pure and tested offline; server.py is a thin wrapper.
  • Licences: code MIT; HAGR data CC BY 3.0 (commercial use permitted with attribution); DAP codebooks are public GitHub files; corpus content keeps each article's own licence.

Test

bash
uv run pytest -quv run ruff check src tests

Tests build a miniature database from fixtures and drive the server through the SDK's in-process client; nothing touches the network.

来源:mcp/README.md,提交 7bca6ce

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.1.1最新Oct 1, 2026
  2. v0.1.0Sep 30, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分