ESS-DIVE MCP服务器
MCP(模型上下文协议)服务器,用于从基于聊天的AI客户端(如Claude Code、Codex、带Copilot chat的VS Code和Goose)查询ESS-DIVE数据集和ESS-DeepDive融合数据库。
目录
快速开始
如果您想通过桌面应用程序最快地进入ESS-DIVE MCP,请使用Goose desktop并按照以下说明进行操作。对于此快速入门路径,您不需要克隆此存储库或运行 uv sync。您仍然需要将命令粘贴到Goose的扩展设置中。
如果您想获得更详细的Goose演练截图,请参阅 docs/GOOSE_SETUP.md.
你首先需要什么
以下是最低先决条件:
- python
3.10或更新
与核对 python --version 或 python3 --version. (如果你有,你会得到这样的回应 Python 3.13.4.) 如果没有,请从安装 .
uv
与核对 uv --version. (如果你有,你会得到这样的回应 uv 0.7.11.) 从安装 . 最佳安装选项 uv 将取决于您的系统,但请注意,安装后可能需要刷新终端。
- 鹅桌面
从安装 . 最佳安装选项将取决于您的系统。安装完成后,运行Goose Desktop以完成下一步。
- 访问Goose Desktop可以使用的LLM API。
示例包括OpenAI、Anthropic或LBNL的CBORG。如果您计划使用CBORG,请参阅 docs/CBORG_SETUP.mdGoose会在您首次运行时提示您提供LLM API详细信息。有关更多详细信息和可视化示例,请参阅 docs/GOOSE_SETUP.md.
- ESS-DIVE API令牌,如果您需要对私有数据进行身份验证访问。
公共数据集搜索和检索不再需要令牌。如果您确实需要,请登录 。这通常需要使用您的ORCID进行身份验证。完成此操作后,打开您的个人资料(右上角),然后转到 Settings 选项卡-> Authentication Token。创建新令牌或单击 Renew authentication token 如果您需要新令牌,请单击按钮。将此令牌复制到安全的地方。
⚠️ 重要提示:
- 在ESS-DIVE MCP扩展可用之前,必须使用LLM提供商和API密钥配置Goose Desktop。
- 如果配置ESS-DIVE令牌,则环境变量名称必须精确
ESSDIVE_API_TOKEN. - ESS-DIVE表示,API令牌将在24小时后过期,因此,如果经过身份验证的请求突然停止工作,请生成新的令牌并更新扩展。
在Goose桌面中安装
如果你想让Goose运行,这是最简单的设置 essdive-mcp 直接从GitHub下载,无需先克隆此存储库:
- 安装Python,
uv,以及如上所述的Goose Desktop。如果您需要私人数据访问,还可以获得ESS-DIVE令牌。 - 打开Goose Desktop并配置您的LLM提供者。
- 为添加新的扩展
essdive-mcp.
使用以下命令之一:
Windows:
uvx.exe --from git+https://github.com/ess-dive/essdive-mcp essdive-mcp
macOS/Linux:
uvx --from git+https://github.com/ess-dive/essdive-mcp essdive-mcp如果Goose分别请求命令和参数,请使用:
- Windows命令:
uvx.exe - Windows参数:
--from git+https://github.com/ess-dive/essdive-mcp essdive-mcp - macOS/Linux命令:
uvx - macOS/Linux参数:
--from git+https://github.com/ess-dive/essdive-mcp essdive-mcp
- 如果需要私有数据访问,请设置扩展环境变量:
ESSDIVE_API_TOKEN=YOUR_ESS_DIVE_TOKEN_HERE对于公共数据集搜索和检索,您可以不设置ESS-DIVE令牌。
保存扩展程序后,在Goose中开始聊天,并问一个简单的ESS-DIVE问题。如果扩展正常工作,Goose应该自动调用ESS-DIVE MCP工具,而无需您键入工具名称,尽管它可能会先要求您允许使用该工具。
在Goose中尝试的第一个提示
确切的结果会随着时间的推移而变化,但成功的回应应该大致像这些例子。
提示:
Find 3 public ESS-DIVE datasets about wildfire recovery and summarize each one in 1 sentence.预期响应:
Here are three public ESS-DIVE datasets related to wildfire recovery:
1. Post-fire Time Series Data from Oak Creek Watershed, Washington: This dataset includes sensor and geochemistry sample data from surface water, groundwater, precipitation, soil, and vegetation, providing insights into the ecological recovery of the watershed after a wildfire. [View Dataset](https://data.ess-dive.lbl.gov/view/doi:10.15485/3018020)
2. Pyrogenic Organic Matter Laboratory Experiment: This dataset examines aerobic respiration and geochemical characteristics from variably inundated stream sediments, contributing to our understanding of soil recovery processes post-wildfire. [View Dataset](https://data.ess-dive.lbl.gov/view/doi:10.15485/3001969)
3. Post-fire Time Series Photos from Oak Creek Watershed, Washington: This collection of photographs documents changes over time at five sites across the watershed, visually capturing the landscape's recovery after wildfire disturbance. [View Dataset](https://data.ess-dive.lbl.gov/view/doi:10.15485/3018598)提示:
Convert DOI 10.15485/2588618 to an ESS-DIVE dataset ID.预期响应:
The ESS-DIVE dataset ID for the DOI 10.15485/2588618 is ess-dive-f002e3e8be8a266-20260401T000217538.提示:
Search ESS-DeepDive for temperature-related fields and summarize what datasets they come from.预期响应:
Here are some temperature-related fields found in the ESS-DeepDive datasets, along with their summaries:
1. **HG_Soil_Temperature_C**: This field measures in situ soil temperature in degrees Celsius, with a record count of 36 values ranging from 19.1 to 26.9°C. It is part of the dataset linked to [DOI: 10.15485/2587853](https://fusion.ess-dive.lbl.gov/api/v1/deepdive/doi:10.15485/2587853:NExpt_ESSDIVE_Datafile.csv).
2. **HG_Soil_Temperature_F**: Similar to the previous field, this one captures in situ soil temperature but in degrees Fahrenheit, also containing 36 records with values from 66.4 to 80.5°F. It belongs to the same dataset as above, accessible via [DOI: 10.15485/2587853](https://fusion.ess-dive.lbl.gov/api/v1/deepdive/doi:10.15485/2587853:NExpt_ESSDIVE_Datafile.csv).
3. **temperature_c**: This field provides groundwater temperature readings in degrees Celsius, with a substantial record count of 144,966 entries ranging from 3.77 to 21.63°C, originating from the dataset associated with [DOI: 10.15485/2587412](https://fusion.ess-dive.lbl.gov/api/v1/deepdive/doi:10.15485/2587412:Machado_Silva_et_al_2024_EST_data.csv).
4. **Effect_Size_Temperature_degC**: This field quantifies the effect size of temperature changes, specifically the comparison between drying and rewetting treatments, with 19 records showing values between -0.3 and 0.5°C. It comes from the dataset tied to [DOI: 10.15485/2583945](https://fusion.ess-dive.lbl.gov/api/v1/deepdive/doi:10.15485/2583945:WHONDRS_MEL_Sample_Data.zip/WHONDRS_EL_Soil_Effect_Size.csv).
5. **Median_Temperature_degC**: Measuring the median temperature with 40 records ranging from 19.8 to 20.8°C, this field is crucial for understanding temperature variations in environmental data, linked to the same dataset as the previous field [DOI: 10.15485/2583945](https://fusion.ess-dive.lbl.gov/api/v1/deepdive/doi:10.15485/2583945:WHONDRS_MEL_Sample_Data.zip/WHONDRS_EL_Soil_Sample_Data_Summary.csv).
These fields collectively provide valuable insights into soil and groundwater temperature dynamics in various environmental contexts.提示:
Turn the point 38.9219, -106.9490 into map links I can open in geojson.io and Google Maps.预期响应形状:
Here are the map links for the point **38.9219, -106.9490**:
- **[Open in geojson.io](https://geojson.io/#data=data:application/json,%7B%22type%22%3A%22FeatureCollection%22%2C%22features%22%3A%5B%7B%22type%22%3A%22Feature%22%2C%22geometry%22%3A%7B%22type%22%3A%22Point%22%2C%22coordinates%22%3A%5B-106.949%2C38.9219%5D%7D%2C%22properties%22%3A%7B%7D%7D%2C%7B%22type%22%3A%22Feature%22%2C%22geometry%22%3A%7B%22type%22%3A%22Polygon%22%2C%22coordinates%22%3A%5B%5B%5B-106.949%2C38.9219%5D%2C%5B-106.949%2C38.9219%5D%2C%5B-106.949%2C38.9219%5D%2C%5B-106.949%2C38.9219%5D%2C%5B-106.949%2C38.9219%5D%5D%5D%7D%2C%22properties%22%3A%7B%22type%22%3A%22bbox%22%7D%7D%5D%7D)
- **[Open in Google Maps](https://www.google.com/maps/@?api=1&map_action=map¢er=38.9219,-106.949)**
- **[Open in OpenStreetMap](https://www.openstreetmap.org/?minlon=-106.949&minlat=38.9219&maxlon=-106.949&maxlat=38.9219)**
These links will allow you to view the specified coordinates on the respective mapping platforms.如果您想要更完整的手动设置、更多的客户端选项或更多的示例查询,请继续阅读此README的其余部分。
这个项目是什么
该项目为AI客户端提供了一套工具,用于:
- 搜索公共ESS-DIVE数据集
- 获取数据集元数据、版本历史和共享权限
- 在ESS-DIVE数据集ID和DOI之间进行转换
- 使用MCP/neneneba API访问详细信息生成一致的ESS-DIVE数据引用,以及针对非ESS-DIVE DOI的警告支持Crossref回退
- 解析文件级元数据(FLMD)CSV内容
- 搜索ESS DeepDive字段和文件元数据
- 查找ESS-DIVE项目缩写、描述和门户网址
- 将坐标转换为地图链接
如果你是MCP和技能的新手
你不需要深厚的背景知识来尝试这个项目。
- MCP服务器是一个小型本地程序,向AI聊天客户端公开工具。
- 您的聊天客户端是您键入自然语言问题的界面。
- 此存储库是MCP服务器。您在本地运行它,然后从客户端连接到它。
- Agent技能是可选的指令包,可帮助Agent更可靠地使用工具集完成特定任务。您不需要技能来运行基本的ESS-DIVE查询。
最简单的心理模型是:
- 启动或注册此MCP服务器。
- 如果您需要私人数据访问,可以选择添加ESS-DIVE令牌。
- 打开你的AI客户端。
- 用简单的英语提问。
入门指南
在开始之前,请确保您具备以下先决条件:
- Python 3.10或更新版本
Python运行 essdive-mcp 服务器本身。
uv 安装项目依赖项并运行服务器。
git
git 仅当您想从命令行克隆存储库时才需要。如果你愿意,你可以从GitHub下载ZIP文件作为存储库。
- 如果您想直接使用MCP服务器,请使用一个支持MCP的客户端:
- 克劳德代码 - 法典 - 在代理模式下使用GitHub Copilot聊天进行VS代码 - 鹅
其他支持MCP的客户端也可能工作。这里列出的客户端只是本README明确记录的客户端。
如何手动检查先决条件:
- 检查Python:
python3 --version如果这不起作用,请尝试:
python --version你需要Python 3.10 或更新。如果没有,请从安装 .
- 检查
uv:
uv --version如果你没有 uv,按照Astral官方说明安装:
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"- 检查
git:
git --version如果你没有 git,您仍然可以通过从GitHub下载此存储库作为ZIP文件并在本地提取来继续。
1.下载存储库
选项A:用克隆 git:
git clone https://github.com/ess-dive/essdive-mcp.git
cd essdive-mcp选项B:在GitHub存储库页面上,使用 Code -> Download ZIP,然后提取ZIP并打开提取的 essdive-mcp 终端或编辑器中的文件夹。
2.检查存储库中的先决条件
克隆或提取存储库并打开 essdive-mcp 在终端中的文件夹中,检查设置的最简单方法是:
./scripts/check_prereqs.sh如果你的shell报告 Permission denied,运行相同的脚本 bash例如:
bash scripts/check_prereqs.sh此脚本将检查您是否缺少任何安装工具,如 uv。它不会检查您是否安装了Goose或Claude Code等客户端软件。
3.在本地安装项目
最简单的方法是:
./scripts/setup_local.sh此脚本:
- 检查您所需的先决条件
- 跑
uv sync - 告诉接下来的步骤
如果您更喜欢手动命令:
uv sync4.可选择获取ESS-DIVE身份验证令牌
ESS-DIVE在其数据集API文档中记录令牌工作流。
- 首选
https://data.ess-dive.lbl.gov - 使用您的ORCID登录
- 打开您的个人资料(右上角图标)
- 首选
Settings->Authentication Token - 复制令牌
在本地保存它的最简单方法是:
./scripts/save_token.sh只有当您想要经过身份验证的访问(如私有数据集)时,才需要此令牌。
重要提示:
- ESS-DIVE表示,令牌将在24小时后过期。
- 环境变量名称为
ESSDIVE_API_TOKEN. - 您可以通过以下方式进行身份验证
--token,--token-file,或ESSDIVE_API_TOKEN.
如果您更喜欢手动命令,您仍然可以将令牌保存到 essdivetoken 你自己。
5.本地检查服务器是否正常
最简单的方法是:
./scripts/start_server.sh此脚本:
- 检查
uv可用的 - 启动MCP服务器
- 用途
essdivetoken如果该文件存在,则自动
如果您更喜欢手动命令:
uv run essdive-mcp如果你想进行身份验证/私有数据访问,你仍然可以显式提供一个令牌:
uv run essdive-mcp --token-file ./essdivetoken应该发生什么:
- 过程开始
- 它似乎坐在那里等着
这是预期的结果。MCP服务器通过标准输入/输出进行通信,因此它不会打印交互式菜单。确认它干净启动后,您可以停止它(用 Ctrl+C,或您系统上的等效程序),然后转到下面的一个客户端设置。
安装并连接到客户端
选择以下客户端之一与ESS-DIVE MCP服务器一起使用。安装客户端桌面应用程序,然后使用此处的说明将客户端连接到MCP服务器。这些是替代方案,而不是顺序步骤。
如果您的首选客户端未在此处列出,请查找该客户端的MCP服务器设置并将其配置为运行:
uv run essdive-mcp对于托管或容器部署,同一服务器可以通过流式HTTP运行:
uv run essdive-mcp --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp客户端选项:
- VS代码与GitHub Copilot聊天
- 克劳德代码
- 法典
- 鹅
VS代码与GitHub Copilot聊天
对于那些想要熟悉的GUI而不是仅限终端的工作流的用户来说,这是一个不错的选择。
GitHub的Copilot MCP文档说需要Visual Studio Code 1.99或更高版本。
在以下位置创建项目范围的MCP配置 .vscode/mcp.json:
{
"servers": {
"essdive-mcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "essdive-mcp"]
}
}
}然后:
- 在VS Code中打开此存储库。
- 打开
.vscode/mcp.json. - 点击
Start在服务器条目之上。 - 打开Copilot聊天。
- 将聊天模式切换到
Agent. - 打开工具列表并确认
essdive-mcp可用。
如果你需要经过身份验证/私有的数据访问,你可以添加一个带有环境变量的令牌:
{
"servers": {
"essdive-mcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "essdive-mcp"],
"env": {
"ESSDIVE_API_TOKEN": "YOUR_ESS_DIVE_TOKEN_HERE"
}
}
}
}克劳德代码
注册服务器:
claude mcp add --transport stdio essdive-mcp -- \
uv run essdive-mcp然后检查:
claude mcp get essdive-mcp在Claude Code内部,使用 /mcp 确认服务器已连接。
笔记:
--transport,--scope,以及--env标志必须位于服务器名称之前。- 使用
--scope project如果您想与此存储库中的其他人共享服务器配置。 - 添加
--env ESSDIVE_API_TOKEN=...如果您需要身份验证/私有数据访问。
法典
注册服务器:
codex mcp add essdive-mcp -- \
uv run essdive-mcp或手动添加到 ~/.codex/config.toml:
[mcp_servers.essdive-mcp]
command = "uv"
args = ["run", "essdive-mcp"]然后确认:
codex mcp get essdive-mcp在Codex TUI中,使用 /mcp 以检查活动的MCP服务器。
如果您需要经过身份验证/私人数据访问,请添加 ESSDIVE_API_TOKEN 到您的Codex MCP服务器环境或传递 --token-file.
托管部署
如果你想跑步 essdive-mcp 作为基于流式HTTP的托管MCP服务器,包括基于Docker的部署,请参阅 docs/HOSTED_HTTP_SETUP.md.
鹅
如果您想要最低摩擦的Goose Desktop设置,请使用 快速开始 此README顶部附近的路径。
有关Goose的更详细的截图演练,请参阅 docs/GOOSE_SETUP.md.
对于直接从GitHub运行而无需先克隆此存储库的Goose Desktop扩展:
- 姓名:
essdive-mcp - Windows命令:
uvx.exe - Windows参数:
--from git+https://github.com/ess-dive/essdive-mcp essdive-mcp - macOS/Linux命令:
uvx - macOS/Linux参数:
--from git+https://github.com/ess-dive/essdive-mcp essdive-mcp - 环境:可选
ESSDIVE_API_TOKEN=YOUR_ESS_DIVE_TOKEN_HERE - 超时:
300
如果您已经克隆了此存储库,并希望Goose运行您的本地签出,请添加一个自定义STDIO扩展:
- 姓名:
essdive-mcp - 命令:
uv - 论据:
run essdive-mcp - 超时:
300
如果您需要身份验证/私有数据访问,请设置:
ESSDIVE_API_TOKEN=YOUR_ESS_DIVE_TOKEN_HERE
要尝试的第一个查询
从简单的自然语言提示开始。您不需要直接调用工具名称。
ESS-DIVE数据集搜索
尝试以下提示:
Find public ESS-DIVE datasets about soil carbon and summarize the top five results.Find public ESS-DIVE datasets about BIONTE sorted by name ascending.Search ESS-DIVE for datasets inside the bounding box [38.9187, -106.9532, 38.9263, -106.9451].Search ESS-DIVE for datasets within 100 meters of 38.8747, -76.5519 and summarize the results.Find ESS-DIVE datasets published in 2024 about wildfire recovery.Look for datasets with temporal coverage between 2020 and 2021 and show the dataset IDs.
数据集详细信息和权限
Get the metadata for ESS-DIVE dataset ess-dive-165671432ae620e-20250908T210722395.Show the version history for DOI 10.15485/2529445 and tell me what changed most recently.Show the sharing permissions for ESS-DIVE dataset ess-dive-165671432ae620e-20250908T210722395.
标识符转换
Convert DOI 10.15485/2587853 to an ESS-DIVE dataset ID.Convert ESS-DIVE ID ess-dive-165671432ae620e-20250908T210722395 to a DOI.
ESS DeepDive查询
Search ESS-DeepDive for temperature-related fields and summarize what datasets they come from.Find ESS-DeepDive fields with the word soil in the definition.Search ESS-DeepDive for temperature fields with at least 100 records.
映射助手
Turn the point 38.9219, -106.9490 into map links I can open in geojson.io and Google Maps.Create map links for the bounding box [38.9187, -106.9532, 38.9263, -106.9451].
示例结果
随着ESS-DIVE和ESS-DeepDive的更新,确切的结果会随着时间的推移而变化,但成功的查询应该大致如下。 以下过滤后实例于2026年4月2日针对实况ESS-DIVE API重新检查。
数据集搜索示例
提示:
Search ESS-DIVE for datasets within 100 meters of 38.8747, -76.5519 and summarize the results.示例结果摘录:
Found 20 datasets. Showing 3 results:
1. COMPASS-FME Terrestrial Ecosystem Manipulation to Probe the Effects of Storm Treatments (TEMPEST) Experiment Level 1 Sensor Data v2-1
ID: ess-dive-f002e3e8be8a266-20260401T000217538
Published: 2025
URL: https://data.ess-dive.lbl.gov/view/doi:10.15485/2588618
2. COMPASS-FME Synoptic Sites Level 1 Sensor Data v2-1
ID: ess-dive-3aa5e31d62e9ee6-20260331T235820880
Published: 2025元数据帖子过滤示例
这些示例使用两步模式:
- 运行本机ESS-DIVE
/packages搜索 - 获取当前结果页面的完整元数据,并在本地对以下字段进行筛选
creator.affiliation,variableMeasured,funder,或文件格式
这意味着 page_size 和 row_start 问题。使用以下示例 page_size=5,因此本地过滤器检查了前5个本地匹配。
提示:
Search ESS-DIVE for "East River" datasets, then keep only results whose creators are affiliated with Lawrence Berkeley National Laboratory.等效工具调用:
search-datasets with query="East River" and creator_affiliation="Lawrence Berkeley National Laboratory" and page_size=5示例结果摘录:
Found 3 datasets after local metadata filtering. Scanned 5 API results from 307 native matches:
1. Data for "Depth of nutrient uptake by deep-rooted plants is regulated by water availability"
ID: ess-dive-4c1829de1b8a2ec-20260401T171210416
2. Mountain Basin Controls on the Snow-to-Streamflow Signal: An AIC-Weighted Multiple Linear Regression Framework
ID: ess-dive-a63ff0854da2d62-20260330T232846064
3. CHESS 2025: Leaf Area Index (LAI) for meadow, shrub, tree, and understory vegetation
ID: ess-dive-6d3178c5222ea40-20260327T145831553提示:
Search ESS-DIVE for "East River" datasets, then keep only results where variableMeasured includes streamflow.等效工具调用:
search-datasets with query="East River" and variable_measured="streamflow" and page_size=5示例结果摘录:
Found 1 datasets after local metadata filtering. Scanned 5 API results from 307 native matches:
1. Mountain Basin Controls on the Snow-to-Streamflow Signal: An AIC-Weighted Multiple Linear Regression Framework
ID: ess-dive-a63ff0854da2d62-20260330T232846064提示:
Search ESS-DIVE for "East River" datasets, then keep only results funded by NASA.等效工具调用:
search-datasets with query="East River" and funder="NASA" and page_size=5示例结果摘录:
Found 1 datasets after local metadata filtering. Scanned 5 API results from 307 native matches:
1. Site and endmember spectra of terrestrial vegetation and soils for the Colorado Headwaters Ecological Spectroscopy Study, June-July 2025
ID: ess-dive-c938a042bca2b42-20260327T150016394标识符转换示例
提示:
Convert DOI 10.15485/2588618 to an ESS-DIVE dataset ID.示例结果:
ess-dive-f002e3e8be8a266-20260401T000217538反向转换应返回:
doi:10.15485/2588618项目参考示例
提示:
What is CHESS, and where can I find more information about it?示例结果摘录:
CHESS stands for Colorado Headwaters Ecological Spectroscopy Study.
It is a remote sensing and field research campaign organized by Rocky Mountain Biological Laboratory
and Berkeley Lab's Watershed Function SFA.
More information: https://ecosis.org/package/proximal-spectra-for-the-2025-colorado-headwaters-ecological-spectroscopy-study--chess-ESS DeepDive现场搜索示例
提示:
Search ESS-DeepDive for temperature-related fields.示例结果摘录:
{
"field_name": "HG_Soil_Temperature_C",
"unit": "C",
"definition": "In situ soil temperature",
"data_type": "numeric",
"total_record_count": 36,
"missing_values_count": 10,
"values_summary": {
"min": 19.1,
"max": 26.9
},
"doi": "doi:10.15485/2587853",
"version": "ess-dive-165671432ae620e-20250908T210722395",
"data_file": "NExpt_ESSDIVE_Datafile.csv"
}工具级别示例
如果您的客户端支持直接工具调用,则这些示例将与可用工具紧密对应。
对于对话式分页,请在以下步骤后使用有状态的下一页/上一页工具 第一搜索或版本历史请求。如果用户要求“更多”,“下一步 页面”、“继续”或“上一页”,调用 next-search-page, previous-search-page, next-dataset-versions-page,或 previous-dataset-versions-page 而不是重复原始请求。
search-datasets with query="wildfire recovery" and page_size=5
search-datasets with query="BIONTE" and sort="name:asc" and page_size=3
search-datasets with query="BIONTE" and sort="name:asc" and cursor="PASTE_NEXT_CURSOR_HERE"
search-datasets with query="BIONTE" and sort="name:asc" and page_size=3 and format="raw"
next-search-page
previous-search-page
search-datasets with begin_date="2020" and end_date="2021" and format="detailed"
search-datasets with bbox=[38.9187, -106.9532, 38.9263, -106.9451]
search-datasets with lat=38.8747 and lon=-76.5519 and radius=100
search-datasets with query="East River" and creator_affiliation="Lawrence Berkeley National Laboratory" and page_size=5
search-datasets with query="East River" and variable_measured="streamflow" and page_size=5
search-datasets with query="East River" and funder="NASA" and page_size=5
get-dataset with id="ess-dive-165671432ae620e-20250908T210722395"
get-dataset with id="doi:10.15485/2529445" and format="raw"
generate-data-citation with id="doi:10.15485/3014404"
generate-data-citation with id="doi:10.15485/3014404" and access_date="2026-05-06"
generate-data-citation with id="doi:10.1038/nature12373" and access_date="2026-05-06"
get-dataset-versions with id="doi:10.15485/2529445" and page_size=2
get-dataset-versions with id="doi:10.15485/2529445" and cursor="PASTE_NEXT_CURSOR_HERE"
next-dataset-versions-page
previous-dataset-versions-page
get-dataset-status with id="ess-dive-f78cb03d11550da-20260309T160313214"
get-dataset-permissions with id="ess-dive-165671432ae620e-20250908T210722395"
doi-to-essdive-id with doi="10.15485/2587853"
essdive-id-to-doi with essdive_id="ess-dive-165671432ae620e-20250908T210722395"
search-ess-deepdive with field_name="temperature" and page_size=5
coords-to-map-links with points=[[38.9219, -106.9490]] and zoom=12代理技能
技能是可选的。当您希望代理能够一致地识别重复任务模式时,它们非常有用,例如:
- 数据集发现和元数据跟踪
- 数据引文生成
- DOI和ESS-DIVE ID转换
- ESS DeepDive现场和文件探索
什么是技能?
- 技能是一个可重用的指令文档,通常用Markdown编写
- a技能与MCP服务器不是一回事
- 技能可以参考MCP工具,但它们不能取代它们
- 代理可以显式或隐式地使用技能
您也可以在不安装此MCP服务器的情况下使用技能。在这种情况下,它们仍然提供特定于任务的指令和提示模式,其中一些还包括回退API示例。您将无法获得完整的MCP工具集成。
此存储库包括中描述的四种技能 docs/SKILLS.md:
essdive-datasetsessdive-identifiersessdive-data-citationsessdeepdive
Goose桌面技能快速入门
如果你想在Goose Desktop中以最简单的方式尝试这些技能,请使用Goose的标准技能目录,而不是 npx 市场工作流程。
你首先需要的是:
- Goose Desktop已安装并配置了LLM提供程序
- 如果需要经过身份验证/私有数据ESS-DIVE查询,则使用ESS-DIVEneneneba API令牌
你不需要Python或 uv 只是为了自己安装技能文件。
如果您还没有设置Goose,请从中的Goose设置说明开始 快速开始 以上或基于屏幕截图的指南 docs/GOOSE_SETUP.md.
重要提示:
- Goose的官方技能文档称,此功能需要内置
SummonGoose中的扩展v1.25.0或更新。 - 鹅发现技能从
~/.agents/skills/全球技能或.agents/skills/项目级技能。 - 对于这些ESS-DIVE技能,请保留目录结构,使共享引用文件保持在预期的相对位置。
Goose的官方技能指南在这里:
为了便于安装,请将此存储库的技能树复制到Goose的标准技能位置之一:
.agents/skills/
essdive-datasets/SKILL.md
essdive-identifiers/SKILL.md
essdive-data-citations/SKILL.md
essdeepdive/SKILL.md
references/essdive_project_portals.yaml这意味着:
- 将文件复制到
~/.agents/skills/如果你想让它们在所有Goose课程中都可用 - 将文件复制到
.agents/skills/如果你想将它们限定在特定项目内
如果您更喜欢手动创建文件,请创建这些目录,然后从该存储库复制粘贴内容:
复制文件后:
- 在技能可用的项目中开始一个新的Goose会话。
- 问鹅
What skills are available? - 尝试以下提示
Use the essdive-identifiers skill to convert DOI 10.15485/2588618 to an ESS-DIVE dataset ID.
这些技能在与本自述中前面描述的ESS-DIVE MCP设置配合使用时效果最佳,因为这样Goose就可以直接调用ESS-DVE MCP工具。如果没有MCP服务器,技能仍然可以帮助Goose构建与ESS-DIVE相关的任务,但行为更多地取决于Goose的本地工具和后备API使用。
在Claude代码中安装技能
注册本地市场:
/plugin marketplace add ./.claude-plugin/marketplace.json然后从该市场安装您想要的技能。
在Codex中安装技能
使用辅助脚本:
./scripts/install_codex_skills.sh这将在中创建符号链接 ~/.codex/skills (或 $CODEX_HOME/skills).
稍后使用以下命令删除它们:
./scripts/uninstall_codex_skills.sh技能使用示例
您可以按名称要求技能,也可以在相关时让代理人选择。
示例:
Use the essdive-datasets skill to find recent wildfire-related datasets and then fetch the metadata for the best match.Use the essdive-datasets skill to search for BIONTE datasets sorted by name ascending and summarize the first three.Use the essdive-datasets skill to search for BIONTE datasets, then continue to the next page with the returned cursor.Use the essdive-datasets skill to search for BIONTE datasets, keep the pagination cursor, and show me the next page if I ask for more results.Use the essdive-datasets skill to search for BIONTE datasets and then show me the next page without exposing the cursor values.Use the essdive-datasets skill to search for BIONTE datasets, then if I ask for more, continue the active search instead of searching again.Use the essdive-datasets skill to list the version history for DOI 10.15485/2529445 and summarize the newest two versions.Use the essdive-identifiers skill to normalize DOI https://doi.org/10.15485/2587853 and return the ESS-DIVE ID.Use the essdive-data-citations skill to generate a citation for DOI 10.15485/3014404 with access date 2026-05-06.Use the essdeepdive skill to search for temperature fields and tell me which data file each result comes from.
技能成果示例
提示:
Use the essdive-identifiers skill to convert DOI 10.15485/2588618 to an ESS-DIVE dataset ID.示例结果:
ess-dive-f002e3e8be8a266-20260401T000217538提示:
Use the essdive-datasets skill to search for datasets within 100 meters of 38.8747, -76.5519 and summarize the matches.示例结果摘录:
Found 20 datasets. Showing 3 results:
1. COMPASS-FME Terrestrial Ecosystem Manipulation to Probe the Effects of Storm Treatments (TEMPEST) Experiment Level 1 Sensor Data v2-1
ID: ess-dive-f002e3e8be8a266-20260401T000217538
2. COMPASS-FME Synoptic Sites Level 1 Sensor Data v2-1
ID: ess-dive-3aa5e31d62e9ee6-20260331T235820880提示:
Use the essdeepdive skill to find temperature fields in ESS-DeepDive and tell me which file they come from.示例结果摘录:
One matching field is HG_Soil_Temperature_C from DOI doi:10.15485/2587853.
It is defined as in situ soil temperature, stored in NExpt_ESSDIVE_Datafile.csv,
and the observed values range from 19.1 to 26.9 C.可用工具
ESS-DIVE数据集工具
search-datasetsnext-search-pageprevious-search-pageget-datasetgenerate-data-citationget-dataset-versionsnext-dataset-versions-pageprevious-dataset-versions-pageget-dataset-statusget-dataset-permissionsparse-flmd-file
标识符工具
doi-to-essdive-idessdive-id-to-doi
项目参考工具
lookup-project-portal
ESS深潜工具
search-ess-deepdiveget-ess-deepdive-datasetget-ess-deepdive-file
映射工具
coords-to-map-links
命令行选项
--token,-t:直接提供可选的ESS-DIVE API令牌--token-file:从文件中读取可选的ESS-DIVE API令牌--verbose,-v:启用调试日志记录,并在工具错误响应中包含回溯
环境变量
ESSDIVE_API_TOKEN:用于身份验证/私有数据访问的可选ESS-DIVE API令牌ESSDIVE_MCP_VERBOSE:设置为1,true,yes,或on用于详细诊断
测试
运行单元测试:
uv run pytest tests/ -m "not integration"运行公共匿名访问的实时集成测试:
uv run pytest tests/integration -m integration要运行经过身份验证的ESS-DIVE集成覆盖率,请设置:
export ESSDIVE_API_TOKEN="YOUR_ESS_DIVE_TOKEN_HERE"
uv run pytest tests/integration -m integration故障排除
服务器启动后似乎什么也没做
这是意料之中的。MCP stdio服务器等待客户端连接。
我的客户端未显示任何ESS-DIVE工具
检查:
- 服务器已正确注册
- 服务器已启动
- 如果需要,您的客户处于代理模式
- 如果你需要私人数据访问,你的令牌是有效的
我收到一个身份验证错误
公共数据集读取不应需要令牌。如果身份验证/私有数据请求失败,请刷新ESS-DIVE令牌并重试。ESS-DIVE表示,代币将在24小时后过期。
我设置了一个环境变量,但经过身份验证的请求仍然失败
变量名必须精确 ESSDIVE_API_TOKEN.
我没有看到我期望从数据集搜索中得到的所有结果
搜索结果将取决于您对私人数据的访问。您无权访问的数据集将不会出现在搜索结果中。如果您正在使用ESS-DIVE令牌,请检查其有效性(请参阅前两期),验证您希望看到的条目是公开的或您有权访问它们,然后重新尝试搜索。
我在LBNL,想使用CBORG支持的模型
这是可选的,不是此项目所必需的。看 docs/CBORG_SETUP.md.
许可证
BSD-3条款
