Token导航 LogoToken导航TokenDH.com
Data Commons MCP logo
搜索检索stdio官方级别未说明来源级核验

Data Commons MCP

MCP Server

EOSC Data Commons Search server是一个提供自然语言搜索功能的服务器,支持通过HTTP POST端点和模型上下文协议(MCP)帮助用户发现数据集和工具。

工具数

0

提示词数

0

GitHub Stars

14

资源数

0
PythonAPI集成搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

EOSC-Data-Commons

提供方

EOSC-Data-Commons

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run pre-commit install

详细介绍

🔭 EOSC数据共享搜索服务器

![Build](https://github.com/EOSC-Data-Commons/data-commons-search/actions/workflows/build.yml) ](https://github.com/EOSC-Data-Commons/data-commons-search/pkgs/container/data-commons-search)

服务器 EOSC数据共享项目 MatchMaker服务,提供开放获取数据集的自然语言搜索。它公开了一个HTTP POST端点,并支持 模型上下文协议(MCP) 帮助用户通过大型语言模型辅助搜索发现数据集和工具。

🧩 端点

HTTP API包括2个主要端点:

  • /mcp: MCP服务器 使用EOSC数据共享OpenSearch服务搜索相关数据以回答用户问题

- 使用流式HTTP传输 - 可用工具: - \[x\] 搜索数据集 - \[x\] 获取数据集中文件的元数据(名称、描述、文件类型) - \[\]搜索工具 - \[\]搜索与数据集或工具相关的引文

  • /chat: HTTP POST 端点(JSON),用于通过LLM提供程序与MCP服务器工具聊天(部署时通过env变量提供API密钥)

- Streams服务器发送事件(SSE)响应符合 AG-UI协议.

\[!提示\] 它也可以通过pip包用作MCP服务器。

🔌 将客户端连接到MCP服务器

该系统可以使用STDIO或Streamable HTTP传输直接用作MCP服务器。

\[!警告\] 您需要访问预先索引的OpenSearch实例,MCP服务器才能工作。

按照客户的指示,使用 /mcp 已部署服务器的URL(例如。http://localhost:8000/mcp)

向添加新的MCP服务器 VSCode GitHub副本:

  • 打开命令选项板(ctrl+shift+pcmd+shift+p)
  • 搜索 MCP: Add Server...
  • 选择 HTTP,并提供MCP服务器URLhttp://localhost:8000/mcp

您的VSCode mcp.json 应该看起来像:

{
    "servers": {
        "data-commons-search-http": {
            "url": "http://localhost:8000/mcp",
            "type": "http"
        }
    },
    "inputs": []
}

或者使用STDIO传输:

{
   "servers": {
      "data-commons-search": {
         "type": "stdio",
         "command": "uvx",
         "args": ["data-commons-search"],
         "env": {
            "OPENSEARCH_URL": "OPENSEARCH_URL"
         }
      }
   }
}

或者使用本地文件夹进行开发:

{
   "servers": {
      "data-commons-search": {
         "type": "stdio",
         "cwd": "~/dev/data-commons-search",
         "env": {
            "OPENSEARCH_URL": "OPENSEARCH_URL"
         },
         "command": "uv",
         "args": ["run", "data-commons-search"]
      }
   }
}

🛠️ 发展

\[!重要\] 要求: - \[x\] uv,轻松处理脚本和虚拟环境 - \[x\] docker,用于部署OpenSearch服务(或仅访问正在运行的实例) - \[x\] LLM提供程序的API密钥: e-infraCZ, Mistral.ai,或 开放路由

📥 安装开发依赖项

uv sync --extra agent

安装预提交挂钩:

uv run pre-commit install

创建一个 keys.env 使用您的LLM提供程序API密钥的文件:

EINFRACZ_API_KEY=YOUR_API_KEY
MISTRAL_API_KEY=YOUR_API_KEY
OPENROUTER_API_KEY=YOUR_API_KEY

⚡️ 启动开发服务器

在dev中启动服务器http://localhost:8000,MCP端点位于http://localhost:8000/mcp

uv run uvicorn src.data_commons_search.main:app --log-config logging.yml --reload
默认 OPENSEARCH_URL=http://localhost:9200

通过环境变量自定义服务器配置:

SERVER_PORT=8001 OPENSEARCH_URL=http://localhost:9200 uv run uvicorn src.data_commons_search.main:app --host 0.0.0.0 --port 8001 --log-config logging.yml --reload
\[!提示\] 示例 curl 请求: ``sh curl -X POST http://localhost:8000/chat \ -H "Content-Type: application/json" -H "Authorization: SECRET_KEY" \ -d '{"messages": [{"role": "user", "content": "Educational datasets from Switzerland covering student assessments, language competencies, and learning outcomes, including experimental or longitudinal studies on pupils or students."}], "model": "einfracz/qwen3-coder"}' ` 每个支持的提供商的推荐型号: - einfracz/qwen3-codereinfracz/gpt-oss-120b (更小、更快) - mistralai/mistral-medium-latest (large表示较旧,在工具调用方面不太好) - groq/moonshotai/kimi-k2-instruct - openai/gpt-4.1`
\[!重要\] 要构建前端web应用程序并将其集成到服务器,请从 媒人前端文件夹 运行: ``sh npm run build && rm -rf ../data-commons-search/src/data_commons_search/webapp/ && cp -R dist/spa/ ../data-commons-search/src/data_commons_search/webapp/ ``

📦 为生产而建

在中构建二进制文件 dist/

uv build

🐳 使用Docker进行部署

创建一个 keys.env 带有API密钥的文件:

EINFRACZ_API_KEY=YOUR_API_KEY
MISTRAL_API_KEY=YOUR_API_KEY
OPENROUTER_API_KEY=YOUR_API_KEY
SEARCH_API_KEY=SECRET_KEY_YOU_CAN_USE_IN_FRONTEND_TO_AVOID_SPAM
\[!提示\] SEARCH_API_KEY 可以用于添加一层保护,以防可能向LLM发送垃圾邮件的机器人程序,如果不提供,则查询API将不需要API密钥。

您可以使用预构建的docker镜像 ghcr.io/eosc-data-commons/data-commons-search:main

示例 compose.yml:

services:
  mcp:
    image: ghcr.io/eosc-data-commons/data-commons-search:main
    ports:
      - "127.0.0.1:8000:8000"
    environment:
      OPENSEARCH_URL: "http://opensearch:9200"
      EINFRACZ_API_KEY: "${EINFRACZ_API_KEY}"

构建和部署服务:

docker compose up
\[!重要\] 当前部署到临时服务器是在每次推送时通过GitHub Actions自动完成的 main 支。 当进行推送时,工作流将: - 拉一下 main 从前端存储库分支 - 构建前端,并将其添加到 src/data_commons_search/webapp - 为服务器构建docker镜像 - 将docker镜像发布为 main/latest - 然后,登台基础架构会自动拉取 latest 映像的版本并部署它。

✅ 运行测试

\[!小心\] 您需要首先在端口8001上启动服务器(请参阅启动开发服务器部分)
uv run pytest

要在调试时显示所有日志,请执行以下操作:

uv run pytest -s

🧹 格式代码和类型检查

uvx ruff format
uvx ruff check --fix
uv run mypy

♻️ 重置环境

升级 uv:

uv self update

清洁 uv 隐藏物:

uv cache clean

🏷️ 释放过程

\[!重要\] 在获取PyPI API令牌 pypi.org/manage/account.

运行提供版本升级的发布脚本: fix, minor,或 major

.github/release.sh fix
\[!提示\] 将您的PyPI令牌添加到您的环境中,例如 ~/.zshrc~/.bashrc: ``sh export UV_PUBLISH_TOKEN=YOUR_TOKEN ``

🤝 致谢

LLM提供者 einfracz 是由e-INFRA CZ提供并由CERIT-SC Masaryk大学运营的服务

计算资源由捷克共和国教育、青年和体育部支持的e-INFRA CZ项目(ID:90254)提供。

目录标签

目录标签

PythonAPI集成搜索自然语言搜索本地部署数据集发现工具搜索HTTPAPIMCP协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP