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 分