ITIS MCP服务器
模型上下文协议(MCP)服务器,用于通过其SOLR API与ITIS(综合分类信息系统)数据库交互。
概述
此MCP服务器提供对ITIS数据库的访问,该数据库包含数十万种物种的分类信息。它使用ITIS SOLR API来执行搜索和检索分类数据。
特性
- 自然语言答案:使用专门的工具和提示来回答日常问题,如“北极熊住在哪里?”或“与大象有什么关系?”
- 按科学名称搜索:按学名查找生物体
- 按方言/常用名称搜索:通过常见名称查找生物体(例如“人类”、“狗”、“橡树”)
- 按TSN搜索:按分类序列号查找生物
- 按王国搜索:在特定王国内寻找生物
- 按分类排名搜索:寻找特定等级的生物体
- 自动完成搜索:获取部分科学名称的建议
- 分层数据:检索完整的分类层次结构
- 地理信息:查看物种的分布
- 一般SOLR搜索:使用自定义SOLR查询执行灵活搜索
- 随机物种发现:通过灵活的过滤从任何分类群中获取随机物种
- 统计:获取数据库统计信息
用法
作为MCP服务器
服务器通过stdin/stdout进行通信,可以与MCP兼容的客户端一起使用。
要运行服务器,请执行以下操作:
npm start发展:
npm run dev自然语言问题
此服务器包括特殊的提示和工具,可以轻松回答常见的外行问题:
- “跟我说说科莫多龙吧” ->使用
species_profile迅速和get_full_species_profile工具 - “北极熊住在哪里?” ->使用
where_does_it_live迅速和get_geographic_info工具 - “大象的亲戚是谁?” ->使用
animal_relatives迅速和find_relatives工具 - “猫科有哪些物种?” ->使用
whats_in_this_group迅速和get_children工具 - “狗和狼有什么关系?” ->使用
compare_animals提示
MCP客户端配置
构建项目后,将此配置添加到MCP客户端:
克劳德桌面 (claude_desktop_config.json):
{
"mcpServers": {
"itis": {
"command": "npx",
"args": ["-y", "path/to/itis-mcp"]
}
}
}游标/其他MCP客户端:
{
"command": "npx",
"args": ["-y", "path/to/itis-mcp"]
}可用工具
1. search_itis
具有灵活参数的通用SOLR搜索。
2. search_by_scientific_name
按学名搜索生物体。
3. search_by_common_name
通过日常常用名称(例如“狗”、“大象”)搜索生物体。这通常是外行用户在询问动物或植物时想要的。
4. search_by_tsn
按分类序列号搜索。
5. search_by_kingdom
在特定王国内搜索。
6. search_by_rank
按分类等级搜索。
7. get_hierarchy
获取TSN的分类层次结构。
8. autocomplete_search
自动完成部分名称的搜索。
9. get_random_species
使用可选的分类过滤器获取随机物种。
10. find_relatives
展示特定动物或植物的亲属。接受通用或科学名称。
11. get_children
找到一个更大的分类群中包含的所有物种(例如“猫科动物”)。
12. get_geographic_info
找出生物体生活的地方(地理分区)。接受通用或科学名称。
13. get_full_species_profile
一次性获取包括层次结构、地理位置和同义词在内的全面配置文件。
14. explore_taxonomy
通过在不同分类水平上寻找相关生物来探索分类关系。
15. get_statistics
获取数据库统计信息。
查询示例
以下是您可以使用的一些示例查询:
按科学名称搜索人类
{
"tool": "search_by_scientific_name",
"arguments": {
"name": "Homo sapiens"
}
}按常用名称搜索美洲狮
{
"tool": "search_by_vernacular_name",
"arguments": {
"vernacularName": "cougar"
}
}寻找植物
{
"tool": "search_by_kingdom",
"arguments": {
"kingdom": "Plantae",
"rows": 5
}
}橡树自动补全
{
"tool": "autocomplete_search",
"arguments": {
"partialName": "Quercus"
}
}获取随机鸟类
{
"tool": "get_random_species",
"arguments": {
"kingdom": "Animalia",
"class": "Aves",
"count": 3,
"requireVernacular": true
}
}从食肉动物中获取随机哺乳动物
{
"tool": "get_random_species",
"arguments": {
"kingdom": "Animalia",
"class": "Mammalia",
"order": "Carnivora",
"count": 2,
"requireVernacular": true
}
}智能生物发现
{
"prompt": "random_creature_discovery",
"arguments": {
"creature_type": "big cats",
"count": 3
}
}探索海鸟
{
"prompt": "random_creature_discovery",
"arguments": {
"creature_type": "sea birds",
"count": 2,
"focus_area": "diving birds"
}
}获取随机植物
{
"tool": "get_random_species",
"arguments": {
"kingdom": "Plantae",
"count": 2,
"requireVernacular": true
}
}自定义SOLR查询
{
"tool": "search_itis",
"arguments": {
"query": "nameWInd:*tiger* AND kingdom:Animalia",
"rows": 10,
"sort": "nameWInd asc"
}
}ITIS数据库字段
ITIS数据库包含许多字段。以下是最常用的:
tsn:分类序列号(唯一标识符)nameWInd:带指标的学名kingdom:王国名称phylum:叶系名称class:类名order:订单名称family:姓氏genus:属名species:物种名称author:作者引用rank:分类等级usage:使用状态(有效、无效等)credibilityRating:数据质量评级phyloSort:系统发育排序
SOLR查询示例
ITIS SOLR API支持各种查询类型:
- 精确匹配:
nameWInd:"Homo sapiens" - 通配符:
nameWInd:Homo* - 范围:
tsn:[1 TO 1000] - 布尔:
kingdom:Animalia AND rank:Species - 短语:
nameWInd:"oak tree"
配置
服务器使用官方的ITIS SOLR端点: https://services.itis.gov/
不需要API密钥,因为ITIS数据库是可公开访问的。
错误处理
服务器包括全面的错误处理:
- 捕获并报告网络错误
- 无效查询返回有用的错误消息
- 格式错误的响应会得到妥善处理
贡献
请随时提交问题和增强请求!
许可证
MIT许可证
