这是一个模型上下文协议(MCP)服务器,它为AI代理提供特定领域的工具,通过BigQuery查询GBIF(全球生物多样性信息设施)物种出现数据。此MCP服务器负责查询的构建;它依赖于BigQuery MCP服务器来执行查询。
此MCP服务器作为AI代理与GBIF之间的桥梁,提供以下三个关键功能:
该服务器生成优化的BigQuery SQL语句,基于以下知识:
AI代理 → GBIF MCP服务器 → BigQuery MCP服务器 → Google BigQuery
MCP生成领域特定的SQL,BigQuery MCP执行它,代理获取具有完整GBIF上下文的结果。
mamba create -n gbif-mcp-server python=3.12 -2
mamba activate gbif-mcp-server
pip install -r requirements.txt
python gbif_mcp_server.py
服务器应启动并等待输入(使用Ctrl+C退出)。
配置因主机代理环境而异,但相关的.json配置文件如下所示:
{
"mcpServers": {
"gbif-mcp-server": {
"command": "/path/to/your/gbif-mcp-server/bin/python",
"args": ["/path/to/your/gbif_mcp_server.py"],
"env": {}
},
"bigquery": {
"command": "npx",
"args": ["-y", "@google-cloud/mcp-server-bigquery"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json"
}
}
}
}
"计算乌干达蚊子的出现次数,包括坐标"
→ 生成SQL使用family = 'Culicidae',country_code = 'UG',require_coordinates = True
"列出在肯尼亚发现的蝴蝶物种"
→ 生成SQL使用order = 'Lepidoptera',country_code = 'KE'
"获取来自巴西的最近鸟类观察记录,限制50条记录"
→ 生成SQL使用class = 'Aves',country_code = 'BR',limit = 50
count_occurrences_by_taxon按分类群和地点统计GBIF出现记录。
参数:
kingdom,phylum,class_name,order,family,genus,species:分类过滤器country_code:两位数的ISO国家代码(例如,'UG','KE')require_coordinates:仅统计具有有效坐标的记录min_year,max_year:时间过滤器get_occurrence_records检索实际出现记录及其详细信息。
参数: 同上,加上:
limit:返回的最大记录数(默认100,最大10,000)get_species_in_taxon列出高级分类群内的不同物种。
参数: 同计数工具,不包括物种级过滤器
limit:返回的最大物种数(默认1,000)该服务器还提供了参考资源:
gbif://schema:GBIF BigQuery模式参考gbif://country-codes:常见的ISO国家代码输入:"计算乌干达蚊子的出现次数,包括坐标"
生成的SQL:
SELECT COUNT(*) as occurrence_count
FROM `bigquery-public-data.gbif.occurrences`
WHERE occurrencestatus = 'PRESENT'
AND UPPER(family) = UPPER('Culicidae')
AND countrycode = 'UG'
AND decimallatitude IS NOT NULL
AND decimallongitude IS NOT NULL;
此服务器生成查询针对的是GBIF BigQuery数据集,该数据集包含超过20亿条来自全球生物多样性信息设施的物种出现记录。
MIT许可证