Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Phylogenetic inference via IQ-TREE 3 — never returns a topology without its support
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OMP_NUM_THREADS, MKL_NUM_THREADSYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"phylokit": {
"command": "uvx",
"args": [
"phylokit-mcp"
],
"env": {
"OMP_NUM_THREADS": "your-value",
"MKL_NUM_THREADS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add phylokit --env OMP_NUM_THREADS=your-value --env MKL_NUM_THREADS=your-value -- uvx phylokit-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"phylokit": {
"command": "uvx",
"args": [
"phylokit-mcp"
],
"env": {
"OMP_NUM_THREADS": "your-value",
"MKL_NUM_THREADS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"phylokit": {
"type": "stdio",
"command": "uvx",
"args": [
"phylokit-mcp"
],
"env": {
"OMP_NUM_THREADS": "your-value",
"MKL_NUM_THREADS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OMP_NUM_THREADS envMKL_NUM_THREADS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account musharna, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.9.1) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Screencast MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let AI agents record the Windows screen, watch it as frames, and edit it with ffmpeg
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
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.
seed=1, piqtree 0.8.3).n_parsimony_informative alongside n_sites. A 10,000-site alignment of near-identical sequences supports nothing.| Tool | What it does |
|---|---|
infer_tree | ML tree plus bootstrap support (nonparametric or UFBoot2), per clade. |
select_substitution_model | Ranks 100+ models with ΔAIC/AICc/BIC, and says when the criteria disagree. |
compare_trees | Robinson–Foulds distance and the clades that differ. Compares splits, not strings. |
simulate_alignment | Generates sequences along a tree you specify: the positive control. |
align_sequences | Aligns unaligned FASTA with MAFFT, inline or to a new file (out_path). |
map_positions | Maps a residue to its alignment column, and that column to every other sequence. |
capabilities | piqtree and IQ-TREE versions, 215 substitution models, MAFFT version, limits. |
Tools that take FASTA or Newick also take a file path (fasta_path, or trees_path for two trees), read by the server; a relative path resolves against the server's working directory.
The tests run real IQ-TREE and real MAFFT (no mocked engine), with 23 mutation checks and a real-process JSON-RPC handshake test.
pip install phylokit-mcp
Requires Python 3.12+. IQ-TREE 3 comes through piqtree 0.8, which builds it into its wheel. align_sequences also needs the MAFFT binary on PATH, as does map_positions on unaligned input; the other tools work without it. Details: docs/INSTALL.md.
{
"mcpServers": { "phylokit": { "command": "uvx", "args": ["phylokit-mcp"] } } }
If uvx picks a Python older than 3.12, use "args": ["--python", "3.12", "phylokit-mcp"].
Claude with the server was compared with Claude writing Python in an environment we set up with piqtree, cogent3 and MAFFT, on 38 phylogenetics questions, 3 runs each. A tie means the server matches that result without you building the environment. Questions right in every run, server against Python: Claude Haiku 5.5 34 against 37, Sonnet 5.5 37 against 35, Opus 5.5 36 against 35 (on the commit that takes file paths). None is separated (pre-registered; Holm-adjusted McNemar p = 0.75 on both Haiku and Sonnet). The server cost about the same as Python on Haiku and more on Sonnet (1.23×) and Opus (1.26×).
The chart is the first Opus 5.5 run, on a release that took the data as text. Counting answers, the server got 110 of 114 right and Python 113; counting questions, 36 of 38 were right in every run against 37 (sign test p = 1). Per question the server took 6.0 times as long (95% CI 4.4 to 8.3) and cost 14.4 times as much (9.9 to 20.2), each a geometric mean of per-question ratios. Most of that cost was the model pasting the data file into tool calls; taking file paths (pre-registered re-run, 2026-10-18) brought it down to 1.26 times (1.04 to 1.55).
We wrote the questions and ran the benchmark ourselves; an outside re-run is welcome. The benchmark does not score support values; method, controls and other limitations are in benchmarks/agent_qa; the Haiku and Sonnet runs: 2026-10-20 re-run.
Not bit-exact, in any setting: IQ-TREE reads the wall clock during its search, so the same request and seed can differ in the trailing digits of branch lengths and log-likelihood, and a support value can move: by about 0.05 (a replicate flipping) for the nonparametric bootstrap, and by no fixed bound for UFBoot2, whose replicates IQ-TREE draws inside the search (one clade moved 0.16 across six calls on one machine). The server reports deterministic_across_processes: false and the drift bound for the method used, null for UFBoot2. Compare trees with compare_trees and numbers with a tolerance, never by string equality. Measurements: docs/REPRODUCIBILITY.md.
sequence_type="protein" and a protein model (LG, WAG, …). The molecule type is declared, never sniffed: an A/C/G/T-only alignment is also valid protein (Ala/Cys/Gly/Thr), and a wrong guess returns a wrong tree, likelihood and support with no warning.support_method="ufboot" is IQ-TREE's UFBoot2 (Hoang et al. 2018), clades supported at 0.95.GPL-2.0-only, because piqtree is GPL-2.0-only, which is _incompatible_ with GPL-3.0. cogent3 is BSD.
If you publish results from this server, cite IQ-TREE 3, piqtree and (when it made the alignment) MAFFT, not this wrapper. The references are in CITATION.cff, and licensing and affiliation are in NOTICE.