Skip to main content
Glama

MCP Video Recognition Server

로컬 파일에서 이미지를 설명하고, 오디오를 텍스트로 변환하며, 비디오를 요약하는 MCP 서버입니다. 기본적으로 Google Gemini를 사용하며, OpenRouter와 같은 OpenAI 호환 엔드포인트도 사용할 수 있습니다.

기능

  • 공급자 선택: Google Gemini(기본) 또는 OpenAI 호환 엔드포인트

  • 로컬 이미지, 오디오, 비디오를 위한 세 가지 MCP 도구

  • 선택적 Gemini 모델 폴백과 최종 OpenAI 호환 백업

모델 지원은 다양합니다. OpenAI 호환 공급자를 선택한다고 해서 모든 엔드포인트나 모델이 모든 미디어 유형을 처리하는 것은 아니며, 서버는 사용자를 대신하여 모델이나 공급자를 대체하지 않습니다.

Related MCP server: Puter MCP Server

사전 요구 사항

  • Node.js 18.0.0 이상

  • 공급자용 API 키:

    • Gemini: GOOGLE_API_KEY

    • OpenAI 호환: OPENAI_COMPATIBLE_API_KEY

설치

git clone https://github.com/yourusername/mcp-video-recognition.git
cd mcp-video-recognition
npm install
npm run build

빠른 시작

MCP 클라이언트 구성에 서버를 추가하고 빌드된 dist/index.js를 가리키세요:

{
  "mcpServers": {
    "video-recognition": {
      "command": "node",
      "args": ["/path/to/mcp-video-recognition/dist/index.js"],
      "env": {
        "GOOGLE_API_KEY": "your_google_api_key"
      }
    }
  }
}

Windows에서는 경로에 슬래시 또는 이중 백슬래시(\\)를 사용하세요. 파일을 저장하고 MCP 클라이언트를 다시 연결하세요.

OpenRouter 또는 다른 OpenAI 호환 엔드포인트를 사용하려면 RECOGNITION_PROVIDER=openai-compatible과 해당 변수를 설정하세요. 바로 사용할 수 있는 예시는 구성을 참조하세요.

FLUJO 사용:

  1. 서버 추가를 클릭하세요.

  2. GitHub URL을 붙여넣으세요.

  3. 구문 분석, 복제, 설치, 빌드 및 저장을 클릭하세요.

구성

서버는 환경 변수를 읽습니다. 가장 일반적인 변수는 다음과 같습니다:

변수

기본값

용도

RECOGNITION_PROVIDER

gemini

gemini 또는 openai-compatible

GOOGLE_API_KEY

없음

Gemini API 키

GEMINI_MODEL

gemini-3.5-flash

사용할 Gemini 모델

OPENAI_COMPATIBLE_API_KEY

없음

OpenAI 호환 API 키

OPENAI_COMPATIBLE_BASE_URL

없음

엔드포인트 기본 URL

OPENAI_COMPATIBLE_MODEL

xiaomi/mimo-v2.5

사용할 모델

ALLOWED_MEDIA_ROOTS

없음

OpenAI 호환 공급자 및 Gemini 백업용 미디어 디렉터리

잘못된 값은 시작을 중지시키며, 조용히 수정되지 않습니다.

전체 변수 목록, 검증 규칙, OpenRouter 예시, 지원되는 미디어 유형은 **구성 참조**를 참조하세요.

Gemini 모델 폴백과 최종 백업은 **공급자 복구 참조**를 참조하세요.

도구

서버는 세 가지 MCP 도구를 제공합니다. 각 도구는 로컬 filepath, 선택적 prompt(기본값 Describe this content), 선택적 modelname 재정의를 사용합니다.

  • image_recognition — 이미지 설명

  • audio_recognition — 오디오 텍스트 변환 또는 설명

  • video_recognition — 비디오 설명

예시:

{
  "name": "video_recognition",
  "arguments": {
    "filepath": "/path/to/video.mp4",
    "prompt": "Describe what happens in this video"
  }
}

보안

  • 기본적으로 HTTPS가 필요합니다. 일반 HTTP는 명시적으로 활성화된 로컬 엔드포인트에서만 허용됩니다.

  • OpenAI 호환 공급자와 Gemini 백업은 ALLOWED_MEDIA_ROOTS에 나열된 디렉터리에서만 미디어를 읽습니다.

  • 키는 프로세스 환경에 유지됩니다. 실제 키를 커밋하지 마세요.

엔드포인트 규칙, 리소스 제한, 사고 대응은 **보안 참조**를 참조하세요.

개발

# Run in development mode
GOOGLE_API_KEY=your_api_key npm run dev

# Build and run the provider foundation tests
npm run verify:provider-foundation

프로젝트 구조

  • src/index.ts: 진입점 및 공급자 구성

  • src/server.ts: MCP 서버 및 전송

  • src/tools/: 세 가지 인식 도구

  • src/services/: Gemini 및 OpenAI 호환 공급자

  • src/types/: 공유 유형

  • src/utils/: 헬퍼

라이선스

MIT

Available Tools

3 tools
audio_recognitionB

Analyze and transcribe audio using Google Gemini AI

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesPath to the media file to analyze
modelnameNoGemini model to use for recognitiongemini-2.0-flash
promptNoCustom prompt for the recognitionDescribe this content

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It only states 'analyze and transcribe' but does not detail output format, processing behavior, authentication needs, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the core purpose. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain what the tool returns (e.g., transcribed text or analysis). It does not, nor does it cover edge cases or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description does not add additional meaning beyond what the schema provides, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: analyze and transcribe audio using Google Gemini AI. It explicitly mentions 'audio' which distinguishes it from sibling tools image_recognition and video_recognition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives (e.g., image_recognition, video_recognition). The description only states what it does without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_recognitionB

Analyze and describe images using Google Gemini AI

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesPath to the media file to analyze
modelnameNoGemini model to use for recognitiongemini-2.0-flash
promptNoCustom prompt for the recognitionDescribe this content

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only mentions 'using Google Gemini AI' but does not disclose safety (e.g., read-only vs destructive), API costs, file size limits, or the nature of the analysis (e.g., real-time, batch).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource. No wasted words. Efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, yet the description does not explain what the tool returns (e.g., text description, confidence scores). For a tool with 3 parameters and no annotations, this leaves the agent guessing about the response format and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The description adds no additional meaning beyond the schema; it only names the AI provider. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Analyze and describe images') and the technology ('using Google Gemini AI'). It distinguishes from sibling tools (audio_recognition, video_recognition) by specifying the media type (images).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., audio_recognition, video_recognition). No mention of prerequisites, limitations, or scenarios where it is not appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_recognitionC

Analyze and describe videos using Google Gemini AI

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesPath to the media file to analyze
modelnameNoGemini model to use for recognitiongemini-2.0-flash
promptNoCustom prompt for the recognitionDescribe this content

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool analyzes and describes videos but doesn't mention critical behavioral aspects like rate limits, authentication requirements, file size limits, supported video formats, processing time, or error handling. The description is too vague about what 'analyze and describe' entails operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core functionality without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of video analysis (which typically involves format handling, processing time, and potential errors), no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, how to interpret results, or any operational constraints, leaving significant gaps for an AI agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining how the prompt interacts with video analysis or model selection trade-offs. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as analyzing and describing videos using Google Gemini AI, which is specific (verb+resource) and distinguishes it from sibling tools like audio_recognition and image_recognition. However, it doesn't explicitly mention video-specific capabilities beyond the name, leaving some ambiguity about whether it handles all video formats or specific features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings (audio_recognition, image_recognition). It doesn't mention prerequisites, limitations, or alternative scenarios, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedaudio_recognition
    • First observedimage_recognition
    • First observedvideo_recognition

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting different media types: audio, images, and videos. There is no overlap in functionality, as they handle separate input formats with similar analysis capabilities but different domains.

Naming Consistency5/5

All tool names follow a consistent pattern of 'media_type_recognition' using snake_case. This predictable naming scheme makes it easy to understand what each tool does based on its name alone.

Tool Count3/5

With only 3 tools, the server feels somewhat thin for a video recognition domain, as it lacks operations like video editing, frame extraction, or metadata retrieval. However, the core recognition functions for audio, images, and videos are covered, making it borderline appropriate.

Completeness3/5

The server provides basic recognition for three media types but lacks comprehensive coverage for video processing. There are no tools for operations like video segmentation, object tracking, or format conversion, which are common in video recognition workflows, leaving notable gaps.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers