mcpField
G
gdex-mcp

gdex-mcp

远程服务
github.com/NCAR科研与教育04 周前更新
代码仓库

关于 gdex-mcp

gdex-mcp 通过 MCP 工具向大模型客户端开放 GDEX 地球科学数据门户。它支持数据集发现与元数据查询、文件访问、门户指标及需认证的数据子集工作流。

主要功能

  1. 01发现数据集并查询元数据
  2. 02列出文件和数据访问链接
  3. 03访问 ARCO 变量
  4. 04查询门户和数据集指标
  5. 05查找工作人员联系方式
  6. 06提交需认证的数据子集请求

适用场景

  1. 01查找地球科学数据集及其元数据
  2. 02定位文件和数据访问链接
  3. 03查看门户或数据集指标
  4. 04提交并跟踪数据子集请求

MCP 相关

gdex-mcp 将 GDEX REST API 封装为供 MCP 客户端调用的工具。它支持本地 stdio 或 streamable HTTP;数据子集请求工具需要 GDEX 令牌。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gdex-mcp.k8s.ucar.edu/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

30
参数类型必填说明
limitinteger否
querystring否
offsetinteger否

详细介绍

GDEX MCP Server

一个 MCP(Model Context Protocol)服务,将 GDEX (Geoscience Data Exchange)REST API 作为工具提供给大模型客户端使用,包括数据集发现与元数据、文件列表、数据访问链接、ARCO 变量、门户/数据集指标、工作人员联系方式,以及经过身份验证的子集请求工作流。

本地运行

pip install -e .
gdex-mcp

然后将 MCP 客户端(Claude Desktop、Claude Code 等)指向 gdex-mcp 命令。通过环境变量或 .env 文件进行配置,详见 CLAUDE.md 的 Configuration 部分。大多数工具无需任何配置;只有在使用 子集请求工具(list_request_statuses、check_request_status、 get_request_files、submit_subset_request、submit_and_wait_for_request、 purge_request)时才需要设置 GDEX_TOKEN。

作为共享服务运行

设置 GDEX_MCP_TRANSPORT=streamable-http(参见 Dockerfile),即可将其作为 可通过网络访问的服务运行,而不是本地 stdio 子进程。在这种模式下, 调用子集请求工具的客户端需要在每个请求中通过 Authorization: Token <token> 标头传入各自的 GDEX 令牌,而不是依赖 共享的 GDEX_TOKEN。具体接线方式请参阅 CLAUDE.md 的 “Two transports” 部分。

Docker

# Build the image
docker build -t gdex-mcp .

# Run the container
docker run -d --name gdex-mcp -p 8080:8080 gdex-mcp

MCP 请求发送至 http://localhost:8080/mcp。

# Stop and remove the container
docker stop gdex-mcp && docker rm gdex-mcp

部署

合并到 main 的 PR 会触发 GitHub Actions 工作流,该工作流运行 测试套件(pip install -e ".[test]" && pytest),然后构建新的 Docker 镜像并推送至 Harbor (hub.k8s.ucar.edu/gdex_mcp/gdex-mcp)。应用通过 app-chart/ 中的 Helm chart 部署到 Kubernetes。有关如何遵循 gdex-web-services 约定,请参阅 CLAUDE.md 的 Deployment 部分。

# Deploy with Helm
helm upgrade --install gdex-mcp ./app-chart -n <namespace>

# Deploy a test instance
helm upgrade --install gdex-mcp ./app-chart -n <namespace> --set testName=<your-name>

MCP Registry

gdex-mcp 已发布到官方 MCP Registry ,名称为 io.github.rpconroy/gdex-mcp(参见 server.json),而不是 io.github.NCAR/gdex-mcp。 即使将组织成员资格设为公开,在 NCAR 组织命名空间下发布仍不断遇到 403 错误。这是 Registry 组织成员资格检查中一个已知但尚未解决的问题(参见 modelcontextprotocol/registry#1537 和 #1649)。 我们怀疑问题出在组织管理员一侧的 GitHub OAuth App 访问限制,而非我们这边。.github/workflows/publish-mcp-registry.yaml 会在 v* 标签上发布新版本;它使用 PAT 身份验证(MCP_GITHUB_TOKEN 密钥),而不是 GitHub OIDC,因为此仓库归 NCAR 所有,所以 Actions OIDC 始终声明 repository_owner: NCAR,无法以个人的 rpconroy 命名空间进行身份验证。待 NCAR 组织访问问题解决后,改用 io.github.NCAR/gdex-mcp 意味着要发布新的 Registry 条目(Registry 不支持重命名),并将工作流切换回 login github-oidc。

文档

CLAUDE.md 介绍了完整内容:架构、添加工具时要遵循的约定、两种传输模式以及部署。进行修改前请先阅读。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。