
用于基于 IQ-TREE 3 进行系统发育推断的 MCP 服务器(通过 piqtree)——从未返回没有 bootstrap 支持的拓扑
概览
基于MCP的系统发育推断,推动IQ-TREE 3通过piqtree 0.8,后者将IQ-TREE 3集成到其转轮中。 infer_tree总是运行引导程序,并且总是返回每个分支的支持。没有跳过它的标志。 6 个工具。测试套件运行真实的 IQ-TREE 和真实的 MAFFT(无模拟引擎),包含 23 次突变检查和一个真实进程的 JSON-RPC 握手测试。 无论数据是否支持,最大似然树看起来都是相同的。这里测量的是从已知的7-分类树模拟的比对,因此正确答案毋庸置疑: 在60个站点中,树包含一个不存在的分支(C,D,G),并省略了一个存在的分支(E,F,G)。两次运行都返回一个完全解析的纽克字符串,形状相同;拓扑本身没有区分它们。支持值区分——而假分支是树中支持最低的分支。 这就是该服务器的全部论点。返回裸树返回的结果是调用者无法评估的。
概述(AI 翻译)
Phylokit-mcp 是一个 MCP 服务器,允许 AI 代理构建最大概然值 树用IQ-TREE 3,序列用MAFFT比对。
没有支持的拓扑不是结果。 infer_tree 总是运行
bootstrap并返回每个分支的支持。没有跳过的标志。
为什么要有这条规则
无论数据是否支持,最大似然树看起来都是一样的。 测量基于已知7-分类树(JC,100 复制品,种子1):
| 遗址 | 信息遗址 | 恢复了真正的树? | 最低支系支持 |
|---|---|---|---|
| 300 | 51 | 是的,正是如此 | 1.00 |
| 60 | 11 | 不,射频2 | 0.57 |
在60个位点中,树包含一个不存在且省略的演化支(C,D,G)
一个有 (E,F,G) 的。两个运行都返回一个完全解析的 Newick 字符串
形状相同。只有支撑值区分它们,假分支是
_lowest supported_树上的一根。
这有用吗?
还没有。在我们的基准测试中,Claude 对这台服务器的准确性并不比 使用Python壳时,服务器成本更高。按路径获取文件时,关闭了大多数 成本差距,但并非全部。
本页由 AI 翻译,技术细节请以原文为准。
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"]
}
}
}