Oceanum MCP
一 主控程序 服务器包,为AI助手提供访问 海洋 海洋/环境数据和云存储平台。
服务器
此包包含多个MCP服务器,可在运行时选择:
| 服务器 | 描述 |
|---|---|
datamesh | 搜索、查询和管理海洋/环境数据集 |
storage | 列出、读取、写入和删除Oceanum云存储中的文件 |
combined | 单个端点下来自两个服务器的所有工具(默认) |
先决条件
从获取API令牌 海洋.io.将其设置为 DATAMESH_TOKEN 环境变量。
安装
pip install oceanum-mcp或者直接与 uvx:
uvx oceanum-mcp # combined server (default)
uvx oceanum-mcp datamesh # datamesh only
uvx oceanum-mcp storage # storage only
uvx oceanum-mcp --list # show available servers配置
克劳德桌面
添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
组合服务器(所有工具):
{
"mcpServers": {
"oceanum": {
"command": "uvx",
"args": ["oceanum-mcp"],
"env": {
"DATAMESH_TOKEN": "your-token-here"
}
}
}
}单个服务器(仅限数据网格):
{
"mcpServers": {
"oceanum-datamesh": {
"command": "uvx",
"args": ["oceanum-mcp", "datamesh"],
"env": {
"DATAMESH_TOKEN": "your-token-here"
}
}
}
}克劳德代码
# Combined server
claude mcp add --transport stdio oceanum -- uvx oceanum-mcp
# Individual server
claude mcp add --transport stdio oceanum-datamesh -- uvx oceanum-mcp datamesh在您的环境中设置令牌:
export DATAMESH_TOKEN=your-token-hereVS代码/点击/继续
使用相同的命令使用stdio传输:
{
"command": "uvx",
"args": ["oceanum-mcp"],
"env": {
"DATAMESH_TOKEN": "your-token-here"
}
}环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
DATAMESH_TOKEN | 是 | Oceanum API令牌(所有服务器共享) |
DATAMESH_SERVICE | 否 | 自定义数据网格服务URL(默认值: https://datamesh.oceanum.io) |
STORAGE_SERVICE | 否 | 自定义存储服务URL(默认值: https://storage.oceanum.io) |
OCEANUM_DOMAIN | 否 | 覆盖所有服务的基域(默认值: oceanum.io) |
数据网格工具
search_catalog
使用可选的文本搜索、时间范围和边界框过滤器搜索Datamesh目录。
| 参数 | 类型 | 说明 |
|---|---|---|
search | string | 名称、描述或标签的文本搜索 |
time_start | string | ISO 8601开始时间 |
time_end | string | ISO 8601结束时间 |
bbox | 列表\[浮动\] | 边界框 [xmin, ymin, xmax, ymax] WGS84 |
limit | int | 要返回的最大结果 |
get_datasource_info
获取数据源的完整元数据,包括模式、变量、坐标和属性。
| 参数 | 类型 | 说明 |
|---|---|---|
datasource_id | string | 数据源ID |
query_data
使用筛选器查询数据源。返回大结果的数据摘要,返回小结果的完整数据。
| 参数 | 类型 | 说明 |
|---|---|---|
datasource_id | string | 要查询的数据源 |
variables | list\[string\] | 要选择的变量 |
time_start | string | ISO 8601开始时间 |
time_end | string | ISO 8601结束时间 |
bbox | 列表\[浮动\] | 边界框 [xmin, ymin, xmax, ymax] |
geofilter_geojson | string | 用于空间过滤的GeoJSON功能 |
level_min | 浮子 | 最低垂直高度 |
level_max | 浮子 | 最大垂直高度 |
coord_filters | string | JSON数组 {"coord": "name", "values": [...]} |
aggregate_operations | list\[string\] | 聚合操作:平均值、最小值、最大值、标准值、总和 |
aggregate_spatial | bool | 空间dims上的聚合(默认为true) |
aggregate_temporal | bool | 在时间维度上聚合(默认为true) |
limit | int | 要返回的最大行数 |
load_datasource
加载整个数据源。最适合小型数据集。
| 参数 | 类型 | 说明 |
|---|---|---|
datasource_id | string | 要加载的数据源 |
update_metadata
更新现有数据源上的元数据。仅更改提供的字段。
| 参数 | 类型 | 说明 |
|---|---|---|
datasource_id | string | 要更新的数据源 |
name | string | 新名称 |
description | string | 新描述 |
tags | list\[string\] | 新标签 |
labels | list\[string\] | 新标签 |
info | string | 元数据字典的JSON字符串 |
details | string | 数据源详细信息的URL |
存储工具
list_files
列出Oceanum云存储中的文件和目录。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 列表的目录路径(默认值:“/”) |
recursive | bool | 递归列出子目录 |
file_exists
检查存储器中是否存在文件或目录。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 要检查的路径 |
read_file
从存储器读取文本文件的内容。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 文件路径 |
write_file
将文本内容写入存储器中的文件。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 目标路径 |
content | string | 要写入的文本内容 |
delete_file
从存储中删除文件或目录。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 要删除的路径 |
recursive | bool | 递归删除目录内容 |
file_info
获取文件或目录的元数据。
| 参数 | 类型 | 说明 |
|---|---|---|
path | string | 要检查的路径 |
示例工作流
探索太平洋的波浪数据:
search_catalog(search="wave", bbox=[120, -50, 180, 10])get_datasource_info(datasource_id="some-wave-dataset")query_data(datasource_id="some-wave-dataset", variables=["Hs", "Tp"], time_start="2024-01-01", time_end="2024-01-31")
浏览和读取云存储中的文件:
list_files(path="/")查看顶级内容list_files(path="/my-project", recursive=True)深入探究read_file(path="/my-project/config.json")读取文件
获取数据集的快速摘要:
get_datasource_info(datasource_id="my-dataset")查看变量和时间范围query_data(datasource_id="my-dataset", limit=10)预览数据
