Skip to content

Latest commit

 

History

History
264 lines (196 loc) · 9.58 KB

File metadata and controls

264 lines (196 loc) · 9.58 KB

DINO-X MCP

License npm version npm downloads PRs Welcome MCP Badge GitHub stars

English | 中文

DINO-X 官方 MCP 服务器, 基于通用视觉检测模型 DINO-X 和 Grounding DINO,给大模型提供细粒度的目标检测、图像理解、图片分析能力。

为什么需要 DINO-X MCP?

  • 精细理解:支持全图检测、定向检测与区域描述。

  • 结构化输出:可直接获取类别、数量、位置、属性,助力视觉问答与多步推理。

  • 组合易用:可与其他 MCP Server 搭配,构建端到端视觉智能体与自动化流程。

传输模式

DINO-X MCP 支持两种传输模式:

特性 STDIO(默认) Streamable HTTP
运行环境 本地 本地或云端
通信方式 标准输入/输出 HTTP(流式响应)
输入限制 支持 file://https:// 仅支持 https://
可视化 支持(生成本地标注图片) 暂不支持

快速接入

1. 准备 MCP 客户端

首先, 你需要在本地安装一个支持 MCP 协议的客户端,例如:

2. 获取 API Key

前往 DINO-X 官网 注册账号并申请 API Token(新用户有免费额度)。

3. 配置 MCP

方式 A:使用官方托管的 Streamable HTTP(推荐)

在客户端配置文件中添加,替换自己的 API Key:

{
  "mcpServers": {
    "dinox-mcp": {
      "url": "https://mcp.deepdataspace.com/mcp?key=your-api-key"
    }
  }
}

方式 B:使用 NPM 包本地运行(STDIO)

首先,需要本地安装 Node.js 环境,可以从 Node.js 官网 下载安装包,或使用命令安装:

# MacOS 或 Linux 系统
# 1. 安装 nvm (Node 版本管理器)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
#
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# 2. 将以下配置添加到你的终端配置文件中(~/.bash_profile、~/.zshrc、~/.profile 或 ~/.bashrc)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  

# 3. 在当前终端中激活 nvm
# bash 用户运行:
source ~/.bashrc
# zsh 用户运行:
source ~/.zshrc   

# 4. 验证 nvm 是否安装成功
command -v nvm

# 5. 安装并使用 Node.js LTS 版本
nvm install --lts
nvm use --lts

# Windows 系统
winget install OpenJS.NodeJS.LTS
# 或使用 PowerShell (管理员权限)
iwr -useb https://raw.githubusercontent.com/chocolatey/chocolatey/master/chocolateyInstall/InstallChocolatey.ps1 | iex
choco install nodejs-lts -y

然后,在你的 MCP 客户端的配置文件中加入配置:

{
  "mcpServers": {
    "dinox-mcp": {
      "command": "npx",
      "args": ["-y", "@deepdataspace/dinox-mcp"],
      "env": {
        "DINOX_API_KEY": "you-api-key-here",
        "IMAGE_STORAGE_DIRECTORY": "/path/to/your/image/directory"
      }
    }
  }
}

注意:获取 API Key 后,把上面配置中的 you-api-key-here 替换成真正的密钥。

方式 C:克隆源码本地运行

首先,需要本地安装 Node.js 环境(参考方式二)

# 下载源码
git clone https://github.com/IDEA-Research/DINO-X-MCP.git
cd DINO-X-MCP

# 安装依赖
npm install

# 编译
npm run build

MCP 客户端中配置:

{
  "mcpServers": {
    "dinox-mcp": {
      "command": "node",
      "args": ["/path/to/DINO-X-MCP/build/index.js"],
      "env": {
        "DINOX_API_KEY": "you-api-key-here",
        "IMAGE_STORAGE_DIRECTORY": "/path/to/your/image/directory"
      }
    }
  }
}

启动参数与环境变量

  • 常用启动参数

    • --http:以 Streamable HTTP 方式启动;否则默认 STDIO
    • --stdio:强制以 STDIO 启动
    • --dinox-api-key=...:指定 API Key
    • --enable-client-key:允许客户端通过 URL ?key= 传入 API Key(Streamable HTTP 模式)
    • --port=8080:HTTP 端口(默认 3020)
  • 环境变量

    • DINOX_API_KEY(必需/条件必需):DINO-X 平台鉴权密钥
    • IMAGE_STORAGE_DIRECTORY(可选,STDIO 模式):可视化图片输出目录
    • AUTH_TOKEN(可选,Streamable HTTP 模式):若设置,则需客户端请求头携带 Authorization: Bearer <token>

示例:

# STDIO(本地)
node build/index.js --dinox-api-key=your-api-key

# Streamable HTTP(服务端提供统一的 API Key)
node build/index.js --http --dinox-api-key=your-api-key

# Streamable HTTP(自定义端口)
node build/index.js --http --dinox-api-key=your-api-key --port=8080

# Streamable HTTP(强制客户端提供 API Key)
node build/index.js --http --enable-client-key

# 此时,客户端需要通过 ?key= 传入
{
  "mcpServers": {
    "dinox-mcp": {
      "url": "http://localhost:3020/mcp?key=your-api-key"
    }
  }
}

# Streamable HTTP(启用 AUTH_TOKEN)
AUTH_TOKEN=my-token node build/index.js --http --enable-client-key

# 此时,客户端可以借助 supergateway 传入 Authorization: Bearer <token>
{
  "mcpServers": {
    "dinox-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--streamableHttp",
        "http://localhost:3020/mcp?key=your-api-key",
        "--oauth2Bearer",
        "my-token"
      ]
    }
  }
}

🛠️ 功能支持

能力 工具 ID 传输模式 输入 输出
全图万物检测 detect-all-objects STDIO/HTTP 图片链接 类别 + bbox +(可选)描述
指定目标检测 detect-objects-by-text STDIO/HTTP 图片链接 + 英文名词(用点号分隔多类,如 person.car 指定对象的 bbox +(可选)描述
人体姿态检测 detect-human-pose-keypoints STDIO/HTTP 图片链接 17 个关键点 + bbox +(可选)描述
检测结果可视化 visualize-detection-result 仅 STDIO 图片链接 + 检测结果数组 生成本地标注图片路径

应用案例

场景 输入 输出
检测定位 💬 提示词:
帮我框选森林里的
着火范围并可视化

🖼️ 输入图片:
1-1
1-2
物体计数 💬 提示词:
请帮我分析这张
仓库图片,检测其中
的所有纸箱,统计
总数量

🖼️ 输入图片:
2-1
2-2
特征检测 💬 提示词:
找到图中所有红色
的车,并可视化展示

🖼️ 输入图片:
4-1
4-2
属性推理 💬 提示词:
找到图中最高的人,
并描述他的着装,
用 Canvas 可视化

🖼️ 输入图片:
5-1
5-2
全图检测 💬 提示词:
找到图中维生素C
含量最高的水果

🖼️ 输入图片:
6-1
6-3

Answer: Kiwi fruit (93mg/100g)
姿态分析 💬 提示词:
请分析这是什么
瑜伽姿势,并用
canvas 显示关键点

🖼️ 输入图片:
3-1
3-3

常见问题

  • 支持哪些图片来源?
    • STDIO:file://https://
    • Streamable HTTP:仅 https://
  • 支持哪些图片格式?
    • Jpg, Jpeg, Webp, Png

开发与调试

如果你要修改这个 MCP 服务,可以开启监听模式,代码改动会自动重新编译:

npm run watch

遇到问题时,可以用官方调试工具排查:

npm run inspector

协议

Apache License 2.0