mcp-six-eyes
mcp-six-eyes
텍스트 전용 AI 에이전트가 이미지를 이해할 수 있게 해주는 MCP 서버입니다. "이미지 1과 2를 참조해줘" 또는 "이 스크린샷들을 비교해줘" 같은 다중 이미지 대화도 지원합니다.
텍스트 전용 모델은 픽셀을 볼 수 없습니다. 이 서버가 그 격차를 메워줍니다: 에이전트가 비전 도구를 호출하면, 서버가 멀티모달 API와 통신하고, 에이전트는 일반 텍스트를 돌려받습니다.
Agent (text-only)
│ tool call: analyze / compare / refer / ocr / …
▼
mcp-six-eyes (this server)
│ 1..N images: path | URL | base64 (labels: 1, 2, before, …)
▼
Vision API (OpenAI / Anthropic / Gemini / OpenRouter / custom)
│
▼
Plain-text description / OCR / comparison / structured extract
│
▼
Agent continues reasoning with text작동 원리
MCP는 에이전트가 호출할 수 있는 도구를 노출합니다. 에이전트는 네이티브 비전이 필요 없습니다:
사용자가 하나 이상의 이미지를 업로드하거나 지정합니다
에이전트가 해당 소스(및 선택적 레이블)로 비전 도구를 호출합니다
서버가 이미지를 로드하여 멀티모달 모델로 전송합니다
서버는 안정적인 이미지 레이블과 함께 텍스트만 반환합니다
텍스트 전용 에이전트는 다른 도구 결과와 마찬가지로 해당 텍스트를 사용합니다
Related MCP server: MCP Vision Server
도구
도구 | 용도 |
| 하나 이상의 이미지에 대한 일반 Q&A |
| 상세 장면/UI 설명 (에이전트용 "컨텍스트 덤프"로 유용) |
| 보이는 텍스트 추출 (다중 이미지 시 이미지별 섹션) |
| 2개 이상의 이미지 비교 (전후, A/B, 변형) |
| "이미지 1", "두 그림 모두" 등을 인용하는 질문에 답변 |
| UI/UX 스크린샷 검토 및 다단계 흐름 분석 |
| 차트, 플롯, 표, 대시보드 |
| 아키텍처 / 순서도 / ERD / 화이트보드 설명 |
| 양식, 영수증, 표, 라벨에서 구조화된 JSON 추출 |
| 구성된 공급자/모델 및 제한 사항 표시 |
이미지 입력
모든 이미지 도구는 다음을 허용합니다:
단일:
image: 로컬 경로,file://,http(s), 데이터 URL 또는 base64다중:
images: 소스 배열 또는{ source, label?, mimeType? }객체둘 다 전달 가능하며 병합됩니다
레이블은 기본적으로 "1", "2", ...로 설정되어 "이미지 1과 2를 비교해줘" 같은 에이전트 프롬프트가 깔끔하게 매핑됩니다. 사용자 정의 레이블도 작동합니다 ("before", "after", "fig-a").
# one image
analyze_image({ image: "./shot.png", prompt: "What failed?" })
# multi-image with default labels 1..n
compare_images({
images: ["./a.png", "./b.png"],
prompt: "What changed in the error state?"
})
# multi-image with explicit labels (best for long threads)
refer_images({
images: [
{ source: "./login.png", label: "1" },
{ source: "./dashboard.png", label: "2" }
],
prompt: "Using image 1 and image 2, is the user authenticated?"
})지원되는 소스 형식:
로컬 파일 경로 (
/path/to/image.png또는C:\path\to\image.png)file://URIhttp(s)URL데이터 URL (
data:image/png;base64,...)원시 base64 (가능하면
mimeType전달)
요구 사항
Node.js 20+
비전 지원 API 키 (OpenAI, Anthropic, Google, OpenRouter 또는 모든 OpenAI 호환 엔드포인트)
설치
npm에 mcp-six-eyes로 게시되어 있습니다.
npx -y mcp-six-eyes또는 전역 / 프로젝트 의존성으로 설치:
npm install -g mcp-six-eyes
# or
npm install mcp-six-eyes대부분의 사용자는 수동으로 실행하는 대신 MCP 클라이언트에 연결합니다. Claude Desktop / Cursor 구성 예시:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "npx",
"args": ["-y", "mcp-six-eyes"],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}여기서 npx가 인기 있는 이유:
전역 설치 불필요
클라이언트가 필요 시 서버를 시작
-y는 첫 실행 시 설치 프롬프트를 건너뜀npm이 이후 실행을 위해 패키지를 캐시
로컬 개발
npm install
npm run build그런 다음 다음 중 하나:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "npx",
"args": ["-y", "."],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}또는 Node가 빌드된 엔트리포인트를 가리키게:
{
"mcpServers": {
"mcp-six-eyes": {
"command": "node",
"args": ["./build/index.js"],
"env": {
"VISION_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-..."
}
}
}
}환경
MCP 클라이언트 env 블록(권장) 또는 개발용 로컬 .env에 공급자 키를 설정하세요.
최소 OpenAI 설정:
VISION_PROVIDER=openai
OPENAI_API_KEY=sk-...선택적 모델 / 제한:
VISION_MODEL=gpt-4o-mini
VISION_MAX_IMAGES=10
VISION_MAX_IMAGE_BYTES=20971520
VISION_CACHE_MAX_ENTRIES=200서버는 stdio를 통해 MCP를 사용합니다. 애플리케이션 로그를 stdout에 작성하지 마세요.
캐싱
비전 호출은 콘텐츠 기준으로 메모리에서 메모이제이션됩니다. 캐시 키는 소스 문자열이 아닌 실제 이미지 바이트와 작업, 프롬프트, 레이블, 토큰 상한을 해시하므로, 모델이 동일한 이미지에 대해 describe_image(또는 다른 비전 도구)를 다시 호출하면 비전 API에 재청구하지 않고 이전 답변을 즉시 받아 Cached: yes로 표시합니다.
기본값:
VISION_CACHE_MAX_ENTRIES=200(제한적, 가장 오래된 항목부터 제거)VISION_CACHE_MAX_ENTRIES=0으로 설정하면 비활성화주어진 키에 대해 첫 번째 답변이 우선; 변경된 파일이나 URL은 새 키를 생성
실패 및 폴백 응답은 절대 캐시되지 않음
캐시는 프로세스 수명 동안만 유지 (디스크 영속성 없음)
클라이언트 참고 사항
Claude Desktop
구성 파일:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%AppData%\Claude\claude_desktop_config.json
Quick start with npx의 npx 블록을 사용하세요.
Cursor
.cursor/mcp.json(프로젝트) 또는 전역 Cursor MCP 구성에 동일한 서버 블록을 추가하세요.
기타 stdio MCP 호스트
다음을 실행할 수 있는 모든 호스트:
npx -y mcp-six-eyes및 환경 변수를 전달할 수 있는 호스트에서 작동합니다.
공급자
공급자 |
| 키 환경 변수 | 기본 모델 |
OpenAI |
|
|
|
Anthropic |
|
|
|
Google Gemini |
|
|
|
OpenRouter |
|
|
|
사용자 정의 OpenAI 호환 |
|
|
|
선택적 폴백:
VISION_FALLBACK_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...에이전트 사용 예시
단일 스크린샷
User: What's wrong in this screenshot? ./screenshots/build-error.png
Agent → ocr_image({ image: "./screenshots/build-error.png" })
Agent → analyze_image({
image: "./screenshots/build-error.png",
prompt: "Explain the error and suggest a fix"
})
Agent → answers in plain text다중 이미지: 참조 / 비교
User: I uploaded two shots. Compare image 1 and 2. Did the fix work?
Agent → compare_images({
images: [
{ source: "./before.png", label: "1" },
{ source: "./after.png", label: "2" }
],
prompt: "Did the red error banner disappear after the fix?"
})User: Refer image 1 and image 2. Which CTA is primary?
Agent → refer_images({
images: [
{ source: "./landing-a.png", label: "1" },
{ source: "./landing-b.png", label: "2" }
],
prompt: "Which image has the stronger primary CTA and why?"
})UI 흐름, 차트, 다이어그램, 구조화 추출
inspect_ui({
images: ["./step1.png", "./step2.png", "./step3.png"],
prompt: "Describe the checkout flow and any friction"
})
read_chart({
image: "https://example.com/revenue.png",
prompt: "Summarize the trend and call out outliers"
})
explain_diagram({
image: "./architecture.png",
prompt: "List services and data flow"
})
extract_from_images({
image: "./receipt.jpg",
schema: "{\"merchant\":string,\"date\":string,\"total\":number,\"items\":[{\"name\":string,\"price\":number}]}"
})아키텍처
src/
index.ts MCP server + tools
config.ts env/provider config
image.ts path/URL/base64 loader + multi-image labels
prompts.ts task prompts (analyze/describe/ocr/compare/...)
providers/
index.ts provider router + fallback
openai-compatible.ts OpenAI / OpenRouter / custom (multi-image)
anthropic.ts Claude vision (multi-image)
google.ts Gemini vision (multi-image)
types.ts shared contracts
test/ unit tests (node:test, mocked providers)
assets/
logo.png project logo설계 노트
도구, 리소스 아님: 이미지 이해는 부작용(API 비용)이 있는 작업이므로 도구로 노출됩니다.
텍스트 전용 출력: 비전이 없는 호스트 모델은 텍스트 콘텐츠 블록만 필요합니다.
레이블이 있는 다중 이미지: 채팅 UI의 에이전트는 "이미지 1/2"에 대해 이야기합니다; 레이블은 그 근거를 안정적으로 유지합니다.
작업별 도구: compare / refer / UI / chart / diagram / extract는 도구 선택에 있어 하나의 거대한 프롬프트보다 우수합니다.
Stdio 전송: 데스크톱 에이전트를 위한 가장 간단한 로컬 통합.
stdout 로깅 없음: stdout은 JSON-RPC 전용; 진단은 stderr로.
공급자 추상화: 에이전트가 학습한 도구 이름을 바꾸지 않고 백엔드를 교체 가능.
개발
npm install
npm test
npm start스크립트 | 용도 |
| TypeScript를 |
| 타입 검사만 수행 |
| 빌드 + 전체 단위 테스트 스위트 |
| 현재 |
| 빠른 이미지 로더 스모크 스크립트 |
| stdio에서 MCP 서버 실행 |
MCP Inspector로 디버그:
npx @modelcontextprotocol/inspector node ./build/index.jsPR 및 코딩 지침은 CONTRIBUTING.md를 참조하세요.
링크
npm: mcp-six-eyes
관리자: rimunace
릴리스 워크플로
로컬 변경 후 관리자 경로:
# one-time
npm login
# bump version + CHANGELOG, then ship
npm test
npm publish --access public선택적 헬퍼 (테스트 후 npm publish):
npm run release보안
API 키는 환경 변수 / 클라이언트 구성에 유지되며 도구 응답에 절대 포함되지 않음
원격 URL 가져오기는 명시적 도구 입력입니다; 신뢰할 수 없는 URL은 주의해서 처리
큰 이미지는
VISION_MAX_IMAGE_BYTES(기본 20MB)로 거부호출당 이미지 수는
VISION_MAX_IMAGES(기본 10)로 제한응답 캐시는 콘텐츠 해시와 결과 텍스트만 메모리에 보관하며 디스크에 아무것도 저장하지 않음
전체 정책: SECURITY.md.
기여
이슈와 풀 리퀘스트를 환영합니다. PR을 열기 전에 npm test를 실행하고 CONTRIBUTING.md를 읽어주세요.
라이선스
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that analyzes images with Google's Gemini vision models, allowing agents to describe or ask questions about images without bloating context.1MIT
- FlicenseNot gradedqualityBmaintenanceA versatile MCP server that adds vision capabilities (image analysis, OCR, image/video generation) to AI models lacking native vision, with support for multiple providers and automatic task routing.1
- AlicenseNot gradedqualityCmaintenanceMCP server for analyzing images using multiple vision LLM providers (OpenCode, OpenAI, Anthropic, Google, and custom OpenAI-compatible endpoints). Provides tools to analyze single or multiple images, list providers, and test vision capabilities.MIT
- AlicenseAqualityCmaintenanceEnables non-vision LLMs to analyze images via any OpenAI-compatible vision API. Hardened against truncation, empty responses, and timeouts for reliable analysis.1177MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Flux AI image generation
MCP server for NanoBanana AI image generation and editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RimunAce/mcp-six-eyes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server