GBIF BigQuery MCP服务器
一种模型上下文协议(MCP)服务器,为AI代理提供特定领域的查询工具 GBIF (全球生物多样性信息设施)通过BigQuery获取物种发生数据。该MCP服务器负责查询制定;它依赖于 BigQuery MCP服务器 用于查询执行。
它做什么
此MCP服务器充当AI代理和GBIF之间的桥梁,提供三个关键功能:
- 发生次数 按分类群和地理位置
- 检索事件记录 包含完整的细节和坐标
- 列出物种 在更高的分类群中
服务器根据以下知识生成优化的BigQuery SQL:
- GBIF模式和字段名称
- 常见的查询模式和最佳实践
- 分类过滤
- 按ISO国家代码进行地理过滤
建筑
AI Agent → GBIF MCP Server → BigQuery MCP Server → Google BigQueryMCP生成特定于域的SQL,BigQuery MCP执行它,代理获得具有完整GBIF上下文的结果。
先决条件
- Python 3.8+
- BigQuery MCP服务器
安装
创建环境
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退出)。
配置
配置因您的host agent环境而异,但相关的.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"
}
}
}
}使用示例
计数记录
"Count mosquito occurrences in Uganda with coordinates"→ 使用生成SQL family = 'Culicidae', country_code = 'UG', require_coordinates = True
获取物种列表
"List butterfly species found in Kenya"→ 使用生成SQL order = 'Lepidoptera', country_code = 'KE'
获取事件记录
"Get recent bird observations from Brazil, limit 50 records"→ 使用生成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,最大值10000)
get_species_in_taxon
列出更高分类群中的不同物种。
参数: 与计数工具相同,减去物种级别过滤
limit:返回的最大物种数(默认值1000)
资源
服务器还提供参考资源:
gbif://schema:GBIF BigQuery架构引用gbif://country-codes:通用ISO国家代码
SQL输出示例
输入: *“用坐标统计乌干达的蚊子记录”*
生成的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许可证
