MP

musharna/phylokit-mcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

0 stars 0 forks 品質 74 トレンド 20GPL-2.0

MCP server for phylogenetic inference over IQ-TREE 3 (through piqtree) — never returns a topology without its bootstrap support

概要

Phylogenetic inference over MCP, driving IQ-TREE 3 through piqtree 0.8, which builds IQ-TREE 3 into its wheel. infer_tree always runs a bootstrap and always returns per-clade support. There is no flag to skip it. 6 tools. The test suite runs real IQ-TREE and real MAFFT (no mocked engine), and includes 23 mutation checks and a real-process JSON-RPC handshake test. A maximum-likelihood tree looks identical whether or not the data support it. Measured here, on alignments simulated from a known 7-taxon tree so the right answer is not in doubt: At 60 sites the tree contains a clade (C,D,G) that does not exist and omits one that does (E,F,G). Both runs return a fully resolved Newick string of the same shape; nothing about the topology itself distinguishes them. The support values do — and the false clade is the lowest-supported one in the tree. That is the entire argument for this server. Returning a bare tree returns a result the caller cannot evaluate.

README

以下は原文 README の抜粋です。原文を見る。

phylokit-mcp

phylokit-mcp is an MCP server that lets AI agents build maximum-likelihood trees with IQ-TREE 3 and align sequences with MAFFT.

A topology without support is not a result. infer_tree always runs a bootstrap and returns per-clade support. There is no flag to skip it.

Why the rule

A maximum-likelihood tree looks the same whether or not the data support it. Measured on alignments simulated from a known 7-taxon tree (JC, 100 replicates, seed 1):

Sites Informative sites Recovered the true tree? Lowest clade support
300 51 yes, exactly 1.00
60 11 no, RF 2 0.57

At 60 sites the tree contains a clade (C,D,G) that does not exist and omits one that does (E,F,G). Both runs return a fully resolved Newick string of the same shape. Only the support values tell them apart, and the false clade is the lowest-supported one in the tree.

What it reports that a Newick string cannot

  • Conflicting clades: groupings the data support at ≥0.70 that are absent from the reported tree. A support-annotated Newick string has nowhere to put them.
  • fraction_resolved: the share of clades clearing 0.70. The headline number, before any single grouping is repeated as fact.
  • Model runners-up with ΔAIC, not just a winner. On the 300-site alignment above, simulated under JC, the AIC winner is not JC (TPM2u and TPM2 tie), and several models, JC among them at ΔAIC 0.7, sit inside the conventional ±2 margin (seed=1, piqtree 0.8.3).
  • Length versus evidence: n_parsimony_informative alongside n_sites. A 10,000-site alignment of near-identical sequences supports nothing.

Tools

Tool What it does
infer_tree ML tree plus bootstrap support (nonparametric or UFBoot2), per clade.
GitHub で README 全文を見る

インストール

uvx phylokit-mcp
MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "phylokit": { "command": "uvx", "args": ["phylokit-mcp"] } } }