{"serverId":"mcp-registry/com.theytree/theytree","tools":[{"name":"get_api_info","fixed":{"name":"get_api_info","description":"Get service meta: summary, auth, dataset size (haplogroups / mutation records), and the tool list. 获取本服务元信息：简介、鉴权、数据集规模、工具清单。","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"get_haplogroup","fixed":{"name":"get_haplogroup","description":"Get a single haplogroup by name / hid / SNP. 按名称/hid/SNP 获取单个单倍群详情。","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"get_haplogroup_lineage","fixed":{"name":"get_haplogroup_lineage","description":"Get the lineage chain from a haplogroup up to ROOT. Use limit to fetch only the most recent N levels (e.g. limit=2 for the node + its parent). 获取某单倍群上溯到 ROOT 的谱系链；可用 limit 只取最近 N 级（如 limit=2 即该节点与其直接父级）。","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Haplogroup name or hid / 单倍群名称或 hid"},"limit":{"type":"integer","description":"Return only the most recent N levels (default: all). / 只返回最近 N 级，默认全部"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"get_haplogroup_mutations","fixed":{"name":"get_haplogroup_mutations","description":"List a haplogroup defining (equivalent) mutations (paternal / Y tree only). 获取某单倍群的等价突变（defining SNPs）列表（仅父系 Y 树）。","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"page":{"type":"integer","default":1},"fields":{"type":"string","description":"Custom fields (comma-separated), e.g. \"snpname,location\" / 自定义返回字段"},"compact":{"type":"integer","default":0,"description":"1=compact fields only (snpid,snpname,haplogroup), much smaller / 1=仅返回精简字段，显著缩小体积"},"per_page":{"type":"integer","default":200,"maximum":500},"include_under_observation":{"type":"integer","default":0}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":185,"tokensAfter":185},{"name":"list_haplogroups","fixed":{"name":"list_haplogroups","description":"Search or list paternal haplogroups by fuzzy name and/or parent, with stable ordering for full pagination (order=name recommended). 搜索/列出父系单倍群：按名称模糊匹配、按父节点筛选，稳定排序可完整枚举。","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Fuzzy name match, e.g. O-F15365 / 名称模糊匹配"},"page":{"type":"integer","default":1},"level":{"type":"integer"},"order":{"enum":["name","endcounts","level","ages","view_count","snpcount"],"type":"string","default":"endcounts"},"parent":{"type":"string","description":"Parent node (name/hid); returns only its direct children / 父节点（名称/hid），只返回直接子节点"},"per_page":{"type":"integer","default":50,"maximum":200},"order_dir":{"enum":["asc","desc"],"type":"string","default":"desc"},"exclude_mf":{"type":"integer","default":0,"description":"1=exclude MagicCube (MF) names (matches the site); default 0 keeps all / 1=排除魔方(MF)名，默认0保留全部"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":257,"tokensAfter":257},{"name":"resolve_snp","fixed":{"name":"resolve_snp","description":"Resolve a SNP name to its haplogroup and return equivalent names (merged-name variants supported). 将 SNP 名解析到所属单倍群并返回等价名。","inputSchema":{"type":"object","required":["snpname"],"properties":{"snpname":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"resolve_snps","fixed":{"name":"resolve_snps","description":"Batch-resolve up to 200 SNP names to their haplogroups (for reading a whole Y-SNP panel). 批量解析多个 SNP 名到所属单倍群（≤200/次）。","inputSchema":{"type":"object","required":["snpnames"],"properties":{"snpnames":{"type":"array","items":{"type":"string"},"description":"Array of SNP names, e.g. [\"M269\",\"M122\",\"F15365\"] / SNP 名数组"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102}],"toolsChanged":7,"tokensSaved":0,"todo":[{"tool":"get_haplogroup","params":["name"]},{"tool":"get_haplogroup_mutations","params":["name","page","per_page","include_under_observation"]},{"tool":"list_haplogroups","params":["page","level","order","per_page","order_dir"]},{"tool":"resolve_snp","params":["snpname"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}