MCP Server
The Dragoneye MCP server lets an MCP-compatible client (such as Cursor, Claude Code, Codex CLI, Claude Desktop, VS Code Copilot Chat, or Windsurf) create and manage your Dragoneye custom vision models on your behalf, using natural-language instructions. It implements the Model Context Protocol over streamable-HTTP at https://nexus.api.dragoneye.ai/mcp and authenticates with OAuth2.
It exposes six tools that wrap the Dragoneye Model Management REST API and cover the full lifecycle of a custom model: create, list, get, update, rename, and delete. Models built through it are standard Dragoneye custom vision models supporting zero-shot object detection together with category and attribute classification.
Install
- Endpoint:
https://nexus.api.dragoneye.ai/mcp - Transport:
streamable-http - Auth: OAuth2 (browser sign-in on first use, no API key in the config)
- Claude Code
- Cursor
- Claude Desktop
- Codex CLI
- VS Code (Copilot)
- Windsurf
- Other
Run in your terminal:
claude mcp add --transport http dragoneye https://nexus.api.dragoneye.ai/mcp
Claude Code will prompt you to sign in on first use.
Config file: ~/.cursor/mcp.json (or .cursor/mcp.json to scope it to one workspace)
{
"mcpServers": {
"dragoneye": {
"url": "https://nexus.api.dragoneye.ai/mcp"
}
}
}
Cursor handles OAuth natively. Restart Cursor, and the Dragoneye tools appear in the MCP panel.
Custom connectors are managed on claude.ai and sync to Claude Desktop and Claude mobile automatically.
- In claude.ai, open Customize → Connectors.
- Click Add custom connector.
- Paste
https://nexus.api.dragoneye.ai/mcpas the remote MCP server URL and confirm. - Complete sign-in in the browser when prompted.
Custom connectors require a Pro, Max, Team, or Enterprise plan.
Config file: ~/.codex/config.toml
[mcp_servers.dragoneye]
url = "https://nexus.api.dragoneye.ai/mcp"
Or let the CLI write the entry for you:
codex mcp add dragoneye --url https://nexus.api.dragoneye.ai/mcp
Codex CLI supports streamable-HTTP natively and handles the OAuth flow on first use.
Docs: Codex MCP.
Config file: .vscode/mcp.json in your workspace, or run MCP: Open User Configuration from the command palette for a user-scope entry.
{
"servers": {
"dragoneye": {
"type": "http",
"url": "https://nexus.api.dragoneye.ai/mcp"
}
}
}
Reload VS Code; Copilot Chat will list the Dragoneye tools and prompt for sign-in on first use.
Docs: Use MCP servers in VS Code.
Config file: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"dragoneye": {
"serverUrl": "https://nexus.api.dragoneye.ai/mcp"
}
}
}
Windsurf handles OAuth natively. Restart Windsurf and sign in when prompted.
Any spec-compliant MCP client that supports streamable-HTTP transport with OAuth2 can point directly at https://nexus.api.dragoneye.ai/mcp. Discovery metadata is published at https://nexus.api.dragoneye.ai/.well-known/mcp/server-card.json.
If your client only supports stdio, wrap the endpoint with the mcp-remote bridge:
npx -y mcp-remote https://nexus.api.dragoneye.ai/mcp
The first time your agent invokes a Dragoneye tool, your client will open a browser tab to sign you in via OAuth. Use your Dragoneye account credentials, the same ones you'd use for the dashboard. The token is cached by your client, so you only sign in once per machine. Don't have an account yet? Sign up at the Dragoneye Playground.
What the server can do
The server exposes six tools. Your agent picks the right one based on what you ask; you usually don't need to think about the names.
| Tool | What it does | Example prompt |
|---|---|---|
create_model | Creates a new custom vision model. Asynchronous: returns immediately in PENDING while Dragoneye builds the model. | "Build me a model that detects pallets and classifies whether they're shrink-wrapped." |
list_models | Lists your existing models, newest first, with paging. | "What Dragoneye models do I have right now?" |
get_model | Fetches one model by uuid, including current status and any error details. Used to poll async create / update calls. | "Is the new model done training yet?" |
update_model | Changes a model's categories or attributes. Asynchronous: re-runs model generation. | "Add a forklift_brand attribute with options Toyota, Hyster, Crown, and Other." |
rename_model | Renames a model in place. Synchronous, no re-training. | "Rename my test model to pallet-detector-v1." |
delete_model | Permanently deletes a model. The only way to recover from a FAILED model. | "Drop the experiment-2 model." |
Model creation and updates run asynchronously on Dragoneye's side, typically taking a minute or two. Your agent will poll get_model for you and report when it's done.
Tips for working with your agent
- Be explicit the first time. The agent infers the model's categories and attributes from your prompt, so listing them clearly produces better models than a vague description.
- Models in
FAILEDcan't be updated. Ask your agent to delete and recreate; that's the supported recovery path. - Training takes a minute. If your agent reports
PENDING, just ask it to "check on it" a moment later. - Inspect resolved state. For complex models, ask the agent to
get_modeland show you the resolved categories and attributes before relying on the model.
Learn more
- Server card (machine-readable): full tool schemas and discovery metadata.
- Model Management REST API Reference: the underlying API, if you'd rather call it directly.
- Create a custom vision model: what categories and attributes actually represent and how a finished model behaves.