CVAT MCP
Enables natural language interaction with CVAT (Computer Vision Annotation Tool) for task management, project operations, and annotation handling via the CVAT REST API.
README
CVAT MCP
CVAT MCP는 Cline에서 자연어로 CVAT 작업을 수행할 수 있게 하는 stdio MCP 서버입니다. CVAT의 공식 REST API만 호출하며, Node 내장 기능만 사용하므로 별도 런타임 의존성이 없습니다.
목표
- CVAT 공식 API를 MCP Tool로 노출한다.
- Cline에서 "CVAT task 목록 보여줘", "새 task 만들고 이미지를 업로드해" 같은 텍스트 요청을 하면 적절한 CVAT API가 호출되도록 한다.
- 기존 CVAT 프로젝트에 어떻게 포함될지에 대한 단계별 계획을 문서로 남긴다.
구성
src/index.js: Cline이 실행하는 MCP stdio 엔트리포인트src/static-tools.js: 자주 쓰는 CVAT API를 고수준 MCP Tool로 정의src/cvat-client.js: CVAT REST API 클라이언트scripts/generate-tool-catalog.js: CVAT OpenAPI 스키마에서 추가 MCP Tool 카탈로그 생성docs/integration-plan.md: 기존 CVAT에 포함시키는 계획docs/cvat-api-tooling.md: CVAT API를 Tool로 확장하는 방식
요구사항
- Node.js 20 이상
- 접근 가능한 CVAT 서버
- CVAT Personal Access Token 권장
CVAT 공식 문서는 서버 API가 HTTP REST API이며, API 스키마와 Swagger 문서를 서버에서 제공한다고 설명합니다. PAT 인증은 Authorization: Bearer <token> 헤더를 사용합니다.
실행
npm test
$env:CVAT_BASE_URL="http://localhost:8080"
$env:CVAT_AUTH_TOKEN="your_pat"
npm start
서버는 MCP stdio 프로세스이므로 사람이 직접 대화형으로 쓰는 프로그램이 아닙니다. Cline이 프로세스를 실행하고 stdin/stdout으로 JSON-RPC 메시지를 주고받습니다.
Cline 설정
Cline의 cline_mcp_settings.json에 아래 서버를 추가합니다. Windows 경로는 실제 저장소 경로로 바꿉니다.
{
"mcpServers": {
"cvat-mcp": {
"command": "node",
"args": ["C:\\Users\\준승\\Desktop\\Development\\CVAT-MCP\\src\\index.js"],
"env": {
"CVAT_BASE_URL": "http://localhost:8080",
"CVAT_AUTH_TOKEN": "your_pat",
"CVAT_AUTH_SCHEME": "Bearer"
},
"disabled": false,
"alwaysAllow": [
"cvat_server_about",
"cvat_list_tasks",
"cvat_get_task",
"cvat_list_projects",
"cvat_list_jobs"
]
}
}
}
쓰기 작업을 자동 승인하려면 신중해야 합니다. cvat_api_request의 POST, PATCH, PUT, DELETE와 생성된 mutation 도구는 confirmMutation: true가 있어야 실행됩니다.
Cline 프롬프트 예시
CVAT 서버 상태를 확인해줘.
CVAT에서 "road"가 들어간 task를 찾아서 상태와 assignee를 요약해줘.
CVAT에 "sample cars" task를 만들고 label은 car, person으로 설정해줘.
task 12의 annotation JSON을 가져와서 현재 workspace에 요약해줘.
기본 제공 Tool
cvat_server_aboutcvat_get_api_schemacvat_list_taskscvat_get_taskcvat_create_taskcvat_attach_task_datacvat_get_task_annotationscvat_replace_task_annotationscvat_list_jobscvat_get_jobcvat_get_requestcvat_list_projectscvat_create_projectcvat_list_labelscvat_api_request
공식 API 전체를 Tool로 확장
CVAT 서버에서 OpenAPI 스키마를 받아 추가 도구 카탈로그를 만들 수 있습니다.
node scripts/generate-tool-catalog.js http://localhost:8080/api/schema/ generated/cvat-tools.json
인터넷 연결은 필수가 아닙니다. MCP 서버와 생성 스크립트는 CVAT_BASE_URL 또는 명령에 입력한 CVAT 주소로 직접 API를 호출합니다. 내부망 CVAT 서버를 쓰는 경우에도 MCP 서버가 그 서버의 /api/schema/에 접근할 수 있으면 Tool 카탈로그를 생성할 수 있습니다.
다만 CVAT 버전에 따라 OpenAPI 스키마와 엔드포인트가 다를 수 있습니다. https://app.cvat.ai/api/schema/처럼 외부 공개 서버 기준으로 생성한 Tool은 내부 CVAT 서버 버전과 맞지 않을 수 있으므로, 실사용 전에는 실제 사용할 CVAT 서버의 schema로 다시 생성하는 것을 권장합니다.
node scripts/generate-tool-catalog.js http://실제_CVAT_주소/api/schema/ generated/cvat-tools.json
이후 Cline 설정에 아래 환경 변수를 추가합니다.
{
"CVAT_GENERATED_TOOLS_PATH": "generated/cvat-tools.json"
}
생성 도구는 {path, query, body} 형태의 입력을 받고 실제 CVAT 엔드포인트로 전달됩니다. 자주 쓰는 작업은 정적 고수준 도구를 우선 사용하고, CVAT 버전별 새 엔드포인트는 생성 도구 또는 cvat_api_request로 처리합니다.
참고 문서
- CVAT Server API: https://docs.cvat.ai/docs/api_sdk/api/
- CVAT Access Tokens: https://docs.cvat.ai/docs/api_sdk/access_tokens/
- Cline MCP 설정: https://docs.cline.bot/mcp/adding-and-configuring-servers
- MCP stdio transport: https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.