
musharna/phylokit-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
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_informativealongsiden_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. |
インストール
uvx phylokit-mcp設定
{
"mcpServers": {
"phylokit": {
"command": "uvx",
"args": ["phylokit-mcp"]
}
}
}