Skip to main content
Glama

πŸͺ„ μ΄λ―Έμ§€μ†Œμ„œλ¦¬ MCP

AI 보쑰원을 μœ„ν•œ ComputerVision 기반 이미지 인식 및 νŽΈμ§‘ λ„κ΅¬μ˜ λ§ˆλ²•

νŠΉν—ˆ 엠씨피 ν΄λ‘œλ“œ μ•± 클라인

❌ ImageSorcery MCP 없이

AI μ–΄μ‹œμŠ€ν„΄νŠΈλŠ” 이미지 μž‘μ—… μ‹œ λ‹€μŒκ³Ό 같은 μ œν•œμ„ λ°›μŠ΅λ‹ˆλ‹€.

  • ❌ 이미지λ₯Ό 직접 μˆ˜μ •ν•˜κ±°λ‚˜ 뢄석할 수 μ—†μŠ΅λ‹ˆλ‹€.

  • ❌ 이미지 자λ₯΄κΈ°, 크기 μ‘°μ • λ˜λŠ” 처리 κΈ°λŠ₯이 μ—†μŠ΅λ‹ˆλ‹€.

  • ❌ 일뢀 LLM은 객체λ₯Ό κ°μ§€ν•˜κ±°λ‚˜ μ΄λ―Έμ§€μ—μ„œ ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•  수 μ—†μŠ΅λ‹ˆλ‹€.

  • ❌ μ‹œκ°μ  μ‘°μž‘ 없이 ꡬ두 μ„€λͺ…μœΌλ‘œλ§Œ μ œν•œλ¨

Related MCP server: AI Development Assistant MCP Server

βœ… ImageSorcery MCP μ‚¬μš©

πŸͺ„ ImageSorcery AI λ³΄μ‘°μ›μ—κ²Œ κ°•λ ₯ν•œ 이미지 처리 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • βœ… μ •λ°€ν•˜κ²Œ 이미지λ₯Ό 자λ₯΄κ³ , 크기λ₯Ό μ‘°μ •ν•˜κ³ , νšŒμ „ν•˜μ„Έμš”

  • βœ… 이미지에 ν…μŠ€νŠΈμ™€ λͺ¨μ–‘ 그리기

  • βœ… μ΅œμ²¨λ‹¨ λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 객체 감지

  • βœ… OCR을 μ‚¬μš©ν•˜μ—¬ μ΄λ―Έμ§€μ—μ„œ ν…μŠ€νŠΈ μΆ”μΆœ

  • βœ… μžμ„Έν•œ 이미지 메타데이터λ₯Ό λ°›μœΌμ„Έμš”

  • βœ… 객체 감지, OCR 등을 μœ„ν•΄ λ‹€μ–‘ν•œ 사전 ν•™μŠ΅λœ λͺ¨λΈμ„ μ‚¬μš©ν•˜μ„Έμš”

AIμ—κ²Œ 이미지 μž‘μ—…μ„ 도와달라고 μš”μ²­ν•˜μ„Έμš”.

"λ°˜λ €λ™λ¬Ό 사진을 frolder photos ν΄λ”μ—μ„œ pets ν΄λ”λ‘œ 볡사" λ°˜λ €λ™λ¬Ό 볡제

"photo.jpgμ—μ„œ 고양이λ₯Ό μ°Ύμ•„ μ΄λ―Έμ§€μ˜ 높이와 λ„ˆλΉ„λ₯Ό 반으둜 잘라 고양이λ₯Ό 쀑앙에 λ°°μΉ˜ν•˜μ„Έμš”."고양이 쀑심화 πŸ˜‰ 힌트:

" foduucom/web-form-ui-field-detection λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 이 form.jpg 의 양식 ν•„λ“œμ— 번호λ₯Ό λ§€κΈ°κ³  μ„€λͺ…λœ ν•„λ“œ λͺ©λ‘μœΌλ‘œ form.md μ±„μ›λ‹ˆλ‹€."μˆ«μžν˜• 양식 ν•„λ“œ πŸ˜‰ 힌트:

πŸ˜‰ 힌트:

κ·€ν•˜μ˜ λ„κ΅¬λŠ” μ•„λž˜ λ‚˜μ—΄λœ μ—¬λŸ¬ 도ꡬλ₯Ό κ²°ν•©ν•˜μ—¬ κ·€ν•˜μ˜ λͺ©ν‘œλ₯Ό λ‹¬μ„±ν•©λ‹ˆλ‹€.

πŸ› οΈ μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ

도ꡬ

μ„€λͺ…

μ˜ˆμ‹œ ν”„λ‘¬ν”„νŠΈ

crop

OpenCV의 NumPy μŠ¬λΌμ΄μ‹± 방식을 μ‚¬μš©ν•˜μ—¬ 이미지λ₯Ό μžλ¦…λ‹ˆλ‹€.

"λ‚΄ 이미지 'input.png'λ₯Ό μ’Œν‘œ (10,10)μ—μ„œ (200,200)κΉŒμ§€ μž˜λΌμ„œ 'cropped.png'둜 μ €μž₯ν•©λ‹ˆλ‹€."

resize

OpenCVλ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지 크기λ₯Ό μ‘°μ •ν•©λ‹ˆλ‹€

"λ‚΄ 이미지 'photo.jpg'의 크기λ₯Ό 800x600ν”½μ…€λ‘œ μ‘°μ •ν•˜κ³  'resized_photo.jpg'λΌλŠ” μ΄λ¦„μœΌλ‘œ μ €μž₯ν•©λ‹ˆλ‹€."

rotate

imutils.rotate_bound ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지λ₯Ό νšŒμ „ν•©λ‹ˆλ‹€.

"λ‚΄ 이미지 'photo.jpg'λ₯Ό 45도 νšŒμ „ν•˜μ—¬ 'rotated_photo.jpg'λΌλŠ” μ΄λ¦„μœΌλ‘œ μ €μž₯ν•©λ‹ˆλ‹€."

draw_texts

OpenCVλ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지에 ν…μŠ€νŠΈλ₯Ό κ·Έλ¦½λ‹ˆλ‹€.

"λ‚΄ 이미지 'photo.jpg'의 μœ„μΉ˜(50,50)에 'Hello World'λΌλŠ” ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•˜κ³  였λ₯Έμͺ½ ν•˜λ‹¨μ— 'Copyright 2023'μ΄λΌλŠ” ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€."

draw_rectangles

OpenCVλ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지에 μ‚¬κ°ν˜•μ„ κ·Έλ¦½λ‹ˆλ‹€.

"λ‚΄ 이미지 'photo.jpg'μ—μ„œ (50,50)μ—μ„œ (150,100)κΉŒμ§€ 빨간색 μ‚¬κ°ν˜•μ„ 그리고 (200,150)μ—μ„œ (300,250)κΉŒμ§€ μ±„μ›Œμ§„ νŒŒλž€μƒ‰ μ‚¬κ°ν˜•μ„ κ·Έλ¦½λ‹ˆλ‹€."

get_metainfo

이미지 νŒŒμΌμ— λŒ€ν•œ 메타데이터 정보λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.

"λ‚΄ 이미지 'photo.jpg'에 λŒ€ν•œ 메타데이터 정보λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€."

detect

Ultralytics의 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ΄λ―Έμ§€μ—μ„œ 객체λ₯Ό κ°μ§€ν•©λ‹ˆλ‹€.

"0.4의 μ‹ λ’° μž„κ³„κ°’μœΌλ‘œ λ‚΄ 이미지 'photo.jpg'μ—μ„œ 객체λ₯Ό κ°μ§€ν•©λ‹ˆλ‹€."

find

ν…μŠ€νŠΈ μ„€λͺ…을 기반으둜 μ΄λ―Έμ§€μ—μ„œ 객체λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

"신뒰도 μž„κ³„κ°’ 0.4둜 λ‚΄ 이미지 'photo.jpg'에 μžˆλŠ” λͺ¨λ“  개λ₯Ό μ°ΎμœΌμ„Έμš”"

get_models

λͺ¨λΈ 디렉토리에 μžˆλŠ” μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“  λͺ¨λΈμ„ λ‚˜μ—΄ν•©λ‹ˆλ‹€.

"λͺ¨λΈ 디렉토리에 μžˆλŠ” μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“  λͺ¨λΈμ„ λ‚˜μ—΄ν•©λ‹ˆλ‹€"

ocr

EasyOCR을 μ‚¬μš©ν•˜μ—¬ μ΄λ―Έμ§€μ—μ„œ κ΄‘ν•™ 문자 인식(OCR)을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

"OCR을 μ‚¬μš©ν•˜μ—¬ μ˜μ–΄ 이미지 'document.jpg'μ—μ„œ ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•©λ‹ˆλ‹€."

πŸ˜‰ 힌트:

πŸš€ μ‹œμž‘ν•˜κΈ°

μš”κ΅¬ 사항

  • Python 3.10 이상

  • Claude.app , Cline λ˜λŠ” λ‹€λ₯Έ MCP ν΄λΌμ΄μ–ΈνŠΈ

μ„€μΉ˜

ImageSorcery 데λͺ¨

μ§€μ—‘μŠ€ν”Ό1

  1. 가상 ν™˜κ²½μ„ λ§Œλ“€κ³  ν™œμ„±ν™”ν•©λ‹ˆλ‹€(κ°•λ ₯히 ꢌμž₯): λͺ¨λ“  ꡬ성 μš”μ†Œ, 특히 clip νŒ¨ν‚€μ§€(사후 μ„€μΉ˜ 슀크립트λ₯Ό 톡해 μ„€μΉ˜λ¨)λ₯Ό μ•ˆμ •μ μœΌλ‘œ μ„€μΉ˜ν•˜λ €λ©΄ uv venv .

    python -m venv imagesorcery-mcp source imagesorcery-mcp/bin/activate # For Linux/macOS # source imagesorcery-mcp\Scripts\activate # For Windows
  2. ν™œμ„±ν™”λœ 가상 ν™˜κ²½μ— νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. pip λ˜λŠ” uv pip μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    pip install imagesorcery-mcp # OR, if you prefer using uv for installation into the venv: # uv pip install imagesorcery-mcp
  3. μ„€μΉ˜ ν›„ 슀크립트 μ‹€ν–‰: 이 λ‹¨κ³„λŠ” 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. ν•„μš”ν•œ λͺ¨λΈμ„ λ‹€μš΄λ‘œλ“œν•˜κ³  GitHubμ—μ„œ ν™œμ„±ν™”λœ 가상 ν™˜κ²½μ— Python clip νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €κ³  μ‹œλ„ν•©λ‹ˆλ‹€.

    imagesorcery-mcp --post-install
  • 사전 ν•™μŠ΅λœ λͺ¨λΈμ„ μ €μž₯ν•˜κΈ° μœ„ν•΄ models 디렉토리(일반적으둜 가상 ν™˜κ²½μ˜ site-packages 디렉토리 λ‚΄ λ˜λŠ” μ „μ—­μœΌλ‘œ μ„€μΉ˜λœ 경우 μ‚¬μš©μžλ³„ μœ„μΉ˜)λ₯Ό λ§Œλ“­λ‹ˆλ‹€.

  • 여기에 초기 models/model_descriptions.json 파일이 μƒμ„±λ©λ‹ˆλ‹€.

  • detect 도ꡬ에 ν•„μš”ν•œ κΈ°λ³Έ YOLO λͺ¨λΈ( yoloe-11l-seg-pf.pt , yoloe-11s-seg-pf.pt , yoloe-11l-seg.pt , yoloe-11s-seg.pt )을 이 models 디렉토리에 λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

  • Ultralytics의 GitHub μ €μž₯μ†Œμ—μ„œ clip . μ΄λŠ” find λ„κ΅¬μ˜ ν…μŠ€νŠΈ ν”„λ‘¬ν”„νŠΈ κΈ°λŠ₯에 ν•„μš”ν•©λ‹ˆλ‹€.

  • find 도ꡬ에 ν•„μš”ν•œ CLIP λͺ¨λΈ νŒŒμΌμ„ models 디렉토리에 λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

μ–Έμ œλ“ μ§€ 이 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜μ—¬ κΈ°λ³Έ λͺ¨λΈμ„ λ³΅μ›ν•˜κ³  clip μ„€μΉ˜λ₯Ό μ‹œλ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • uv venv ν…ŒμŠ€νŠΈ κ²°κ³Ό, uv venv 둜 μƒμ„±λœ 가상 ν™˜κ²½μ—λŠ” imagesorcery-mcp --post-install μŠ€ν¬λ¦½νŠΈκ°€ GitHubμ—μ„œ clip νŒ¨ν‚€μ§€λ₯Ό μžλ™μœΌλ‘œ μ„€μΉ˜ν•  수 μžˆλ„λ‘ pip ν¬ν•¨λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€( clip μ„€μΉ˜ λ‹¨κ³„μ—μ„œ "pipλΌλŠ” μ΄λ¦„μ˜ λͺ¨λ“ˆμ΄ μ—†μŠ΅λ‹ˆλ‹€" 였λ₯˜κ°€ λ°œμƒν•  수 있음). uv venv

    1. uv venv μƒμ„±ν•˜κ³  ν™œμ„±ν™”ν•˜μ„Έμš”.

    2. imagesorcery-mcp μ„€μΉ˜ : uv pip install imagesorcery-mcp .

    3. ν™œμ„± uv venv 에 clip νŒ¨ν‚€μ§€λ₯Ό μˆ˜λ™μœΌλ‘œ μ„€μΉ˜ν•©λ‹ˆλ‹€.

      uv pip install git+https://github.com/ultralytics/CLIP.git
    4. imagesorcery-mcp --post-install μ‹€ν–‰ν•˜μ„Έμš”. λͺ¨λΈμ€ λ‹€μš΄λ‘œλ“œλ˜μ§€λ§Œ clip Python νŒ¨ν‚€μ§€ μ„€μΉ˜μ— μ‹€νŒ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„€μΉ˜ ν›„ 슀크립트λ₯Ό 톡해 clip μžλ™μœΌλ‘œ 더 μ›ν™œν•˜κ²Œ μ„€μΉ˜ν•˜λ €λ©΄, μœ„μ˜ 1λ‹¨κ³„μ—μ„œ μ„€λͺ…ν•œ λŒ€λ‘œ python -m venv μ‚¬μš©ν•˜μ—¬ 가상 ν™˜κ²½μ„ μƒμ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

  • uvx imagesorcery-mcp --post-install uvx μ‚¬μš©ν•˜μ—¬ μ„€μΉ˜ ν›„ 슀크립트λ₯Ό 직접 μ‹€ν–‰ν•˜λ©΄(예: uvx imagesorcery-mcp --post-install ) clip Python νŒ¨ν‚€μ§€ μ„€μΉ˜μ— μ‹€νŒ¨ν•  κ°€λŠ₯성이 λ†’μŠ΅λ‹ˆλ‹€. μ΄λŠ” uvx κ°€ μƒμ„±ν•˜λŠ” μž„μ‹œ ν™˜κ²½μ— μŠ€ν¬λ¦½νŠΈμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” pip μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λͺ¨λΈμ€ λ‹€μš΄λ‘œλ“œλ˜μ§€λ§Œ, 이 λͺ…λ ΉμœΌλ‘œλŠ” clip νŒ¨ν‚€μ§€κ°€ μ„€μΉ˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. uvx μ‚¬μš©ν•˜μ—¬ κΈ°λ³Έ imagesorcery-mcp μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜κ³  clip κΈ°λŠ₯이 ν•„μš”ν•œ 경우, uvx 찾을 수 μžˆλŠ” μ ‘κ·Ό κ°€λŠ₯ν•œ Python ν™˜κ²½μ— clip νŒ¨ν‚€μ§€κ°€ μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ±°λ‚˜, python -m venv 둜 μƒμ„±λœ 영ꡬ ν™˜κ²½μ— imagesorcery-mcp λ₯Ό μ„€μΉ˜ν•˜λŠ” 것을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€.

βš™οΈ MCP ν΄λΌμ΄μ–ΈνŠΈ ꡬ성

MCP ν΄λΌμ΄μ–ΈνŠΈμ— λ‹€μŒ 섀정을 μΆ”κ°€ν•˜μ„Έμš”. μ„€μΉ˜ ν›„ imagesorcery-mcp μ‹œμŠ€ν…œ PATH에 있으면 imagesorcery-mcp λͺ…λ ΉμœΌλ‘œ 직접 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ ‡μ§€ μ•Šμ€ 경우 μ‹€ν–‰ 파일의 전체 경둜λ₯Ό μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

"mcpServers": { "imagesorcery-mcp": { "command": "imagesorcery-mcp", // Or /full/path/to/venv/bin/imagesorcery-mcp if installed in a venv "transportType": "stdio", "autoApprove": ["detect", "crop", "get_models", "draw_texts", "get_metainfo", "rotate", "resize", "classify", "draw_rectangles", "find", "ocr"], "timeout": 100 } }
"mcpServers": { "imagesorcery-mcp": { "command": "imagesorcery-mcp.exe", // Or C:\\full\\path\\to\\venv\\Scripts\\imagesorcery-mcp.exe if installed in a venv "transportType": "stdio", "autoApprove": ["detect", "crop", "get_models", "draw_texts", "get_metainfo", "rotate", "resize", "classify", "draw_rectangles", "find", "ocr"], "timeout": 100 } }

πŸ“¦ μΆ”κ°€ λͺ¨λΈ

일뢀 λ„κ΅¬μ˜ 경우 models λ””λ ‰ν† λ¦¬μ—μ„œ νŠΉμ • λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

# Download models for the detect tool download-yolo-models --ultralytics yoloe-11l-seg download-yolo-models --huggingface ultralytics/yolov8:yolov8m.pt

λͺ¨λΈμ„ λ‹€μš΄λ‘œλ“œν•  λ•Œ μŠ€ν¬λ¦½νŠΈλŠ” μžλ™μœΌλ‘œ models/model_descriptions.json νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

  • Ultralytics λͺ¨λΈμ˜ 경우: μ„€λͺ…은 src/imagesorcery_mcp/scripts/create_model_descriptions.py 에 미리 μ •μ˜λ˜μ–΄ 있으며 각 λͺ¨λΈμ˜ λͺ©μ , 크기, νŠΉμ„±μ— λŒ€ν•œ μžμ„Έν•œ 정보λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

  • Hugging Face λͺ¨λΈμ˜ 경우: Hugging Face Hub의 λͺ¨λΈ μΉ΄λ“œμ—μ„œ μ„€λͺ…이 μžλ™μœΌλ‘œ μΆ”μΆœλ©λ‹ˆλ‹€. μŠ€ν¬λ¦½νŠΈλŠ” λͺ¨λΈ μƒ‰μΈμ˜ λͺ¨λΈ μ΄λ¦„μ΄λ‚˜ μ„€λͺ…μ˜ 첫 쀄을 μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

λͺ¨λΈμ„ λ‹€μš΄λ‘œλ“œν•œ ν›„μ—λŠ” models/model_descriptions.json 의 μ„€λͺ…을 ν™•μΈν•˜κ³  ν•„μš”ν•œ 경우 λͺ¨λΈμ˜ κΈ°λŠ₯κ³Ό μ‚¬μš© 사둀에 λŒ€ν•œ 보닀 μ •ν™•ν•˜κ³  μžμ„Έν•œ 정보λ₯Ό μ œκ³΅ν•˜λ„λ‘ μ‘°μ •ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

🀝 κΈ°μ—¬ν•˜κΈ°

디렉토리 ꡬ쑰

이 μ €μž₯μ†ŒλŠ” λ‹€μŒκ³Ό 같이 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

. β”œβ”€β”€ .gitignore # Specifies intentionally untracked files that Git should ignore. β”œβ”€β”€ pyproject.toml # Configuration file for Python projects, including build system, dependencies, and tool settings. β”œβ”€β”€ pytest.ini # Configuration file for the pytest testing framework. β”œβ”€β”€ README.md # The main documentation file for the project. β”œβ”€β”€ setup.sh # A shell script for quick setup (legacy, for reference or local use). β”œβ”€β”€ models/ # This directory stores pre-trained models used by tools like `detect` and `find`. It is typically ignored by Git due to the large file sizes. β”‚ β”œβ”€β”€ model_descriptions.json # Contains descriptions of the available models. β”‚ β”œβ”€β”€ settings.json # Contains settings related to model management and training runs. β”‚ └── *.pt # Pre-trained model. β”œβ”€β”€ src/ # Contains the source code for the πŸͺ„ ImageSorcery MCP server. β”‚ └── imagesorcery_mcp/ # The main package directory for the server. β”‚ β”œβ”€β”€ __init__.py # Makes `imagesorcery_mcp` a Python package. β”‚ β”œβ”€β”€ __main__.py # Entry point for running the package as a script. β”‚ β”œβ”€β”€ logging_config.py # Configures the logging for the server. β”‚ β”œβ”€β”€ server.py # The main server file, responsible for initializing FastMCP and registering tools. β”‚ β”œβ”€β”€ logs/ # Directory for storing server logs. β”‚ β”œβ”€β”€ scripts/ # Contains utility scripts for model management. β”‚ β”‚ β”œβ”€β”€ README.md # Documentation for the scripts. β”‚ β”‚ β”œβ”€β”€ __init__.py # Makes `scripts` a Python package. β”‚ β”‚ β”œβ”€β”€ create_model_descriptions.py # Script to generate model descriptions. β”‚ β”‚ β”œβ”€β”€ download_clip.py # Script to download CLIP models. β”‚ β”‚ β”œβ”€β”€ post_install.py # Script to run post-installation tasks. β”‚ β”‚ └── download_models.py # Script to download other models (e.g., YOLO). β”‚ └── tools/ # Contains the implementation of individual MCP tools. β”‚ β”œβ”€β”€ README.md # Documentation for the tools. β”‚ β”œβ”€β”€ __init__.py # Import the central logger β”‚ └── *.py # Implements the tool. └── tests/ # Contains test files for the project. β”œβ”€β”€ test_server.py # Tests for the main server functionality. β”œβ”€β”€ data/ # Contains test data, likely image files used in tests. └── tools/ # Contains tests for individual tools.

개발 μ„€μ •

  1. μ €μž₯μ†Œλ₯Ό λ³΅μ œν•©λ‹ˆλ‹€.

git clone https://github.com/sunriseapps/imagesorcery-mcp.git # Or your fork cd imagesorcery-mcp
  1. (ꢌμž₯) 가상 ν™˜κ²½μ„ λ§Œλ“€κ³  ν™œμ„±ν™”ν•˜μ„Έμš”.

python -m venv venv source venv/bin/activate # For Linux/macOS # venv\Scripts\activate # For Windows
  1. 개발 쒅속성과 ν•¨κ»˜ νŽΈμ§‘ κ°€λŠ₯ν•œ λͺ¨λ“œλ‘œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜μ„Έμš”.

pip install -e ".[dev]"

μ΄λ ‡κ²Œ ν•˜λ©΄ imagesorcery-mcp 와 [project.dependencies] 및 [project.optional-dependencies].dev 의 λͺ¨λ“  쒅속성( build 및 twine 포함)이 μ„€μΉ˜λ©λ‹ˆλ‹€.

κ·œμΉ™

μ΄λŸ¬ν•œ κ·œμΉ™μ€ λͺ¨λ“  μ°Έμ—¬μž, 즉 인간과 AIμ—κ²Œ μ μš©λ©λ‹ˆλ‹€.

  1. ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  README.md νŒŒμΌμ„ μ½μ–΄λ³΄μ„Έμš”. ν”„λ‘œμ νŠΈ ꡬ쑰와 λͺ©μ μ„ μ΄ν•΄ν•˜κ³ , κΈ°μ—¬ 지침을 μˆ™μ§€ν•˜μ„Έμš”. 이 지침이 μž‘μ—…κ³Ό μ–΄λ–€ 관련이 μžˆλŠ”μ§€, 그리고 그에 따라 μ–΄λ–»κ²Œ μˆ˜μ •ν• μ§€ 생각해 λ³΄μ„Έμš”.

  2. pyproject.toml μ½μ–΄λ³΄μ„Έμš”. [tool.ruff] , [tool.ruff.lint] , [project.optional-dependencies] , [project]dependencies μ„Ήμ…˜μ— μ£Όμ˜ν•˜μ„Έμš”. pyproject.toml 에 μ •μ˜λœ μ½”λ“œ μŠ€νƒ€μΌμ„ μ—„κ²©νžˆ μ€€μˆ˜ν•˜μ„Έμš”. pyproject.toml 파일 dependencies에 μ •μ˜λœ μŠ€νƒμ„ λ”°λ₯΄κ³ , μ •λ‹Ήν•œ 이유 없이 μƒˆλ‘œμš΄ 쒅속성을 μΆ”κ°€ν•˜μ§€ λ§ˆμ„Έμš”.

  3. μƒˆ 파일과 κΈ°μ‘΄ νŒŒμΌμ— μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ„Έμš”. μƒˆλ‘œμš΄ 쒅속성이 ν•„μš”ν•œ 경우 pyproject.toml μ—…λ°μ΄νŠΈν•˜κ³  pip install -e . λ˜λŠ” pip install -e ".[dev]" μ‚¬μš©ν•˜μ—¬ μ„€μΉ˜ν•˜μ„Έμš”. pip install 톡해 직접 μ„€μΉ˜ν•˜μ§€ λ§ˆμ„Έμš”. κΈ°μ‘΄ μ†ŒμŠ€ μ½”λ“œ(예: src/imagesorcery_mcp/server.py , src/imagesorcery_mcp/tools/crop.py )μ—μ„œ 예제λ₯Ό ν™•μΈν•˜μ„Έμš”. κΈ°μ‘΄ μ½”λ“œμ˜ μ½”λ“œ μŠ€νƒ€μΌ, λͺ…λͺ… κ·œμΉ™, μž…μΆœλ ₯ 데이터 ν˜•μ‹, μ½”λ“œ ꡬ쑰, μ•„ν‚€ν…μ²˜ 등을 μ€€μˆ˜ν•˜μ„Έμš”.

  4. κ΄€λ ¨ README.md νŒŒμΌμ„ λ³€κ²½ μ‚¬ν•­μœΌλ‘œ μ—…λ°μ΄νŠΈν•˜μ„Έμš”. κΈ°μ‘΄ README.md 파일의 ν˜•μ‹κ³Ό ꡬ쑰λ₯Ό κ·ΈλŒ€λ‘œ μœ μ§€ν•˜μ„Έμš”.

  5. μ½”λ“œμ— λŒ€ν•œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜μ„Έμš”. κΈ°μ‘΄ ν…ŒμŠ€νŠΈμ—μ„œ μ˜ˆμ‹œλ₯Ό ν™•μΈν•˜μ„Έμš”(예: tests/test_server.py , tests/tools/test_crop.py ). κΈ°μ‘΄ ν…ŒμŠ€νŠΈμ˜ μ½”λ“œ μŠ€νƒ€μΌ, λͺ…λͺ… κ·œμΉ™, μž…μΆœλ ₯ 데이터 ν˜•μ‹, μ½”λ“œ ꡬ쑰, μ•„ν‚€ν…μ²˜ 등을 κ·ΈλŒ€λ‘œ λ”°λ₯΄μ„Έμš”.

  6. ν…ŒμŠ€νŠΈμ™€ λ¦°ν„°λ₯Ό μ‹€ν–‰ν•˜μ—¬ λͺ¨λ“  것이 μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•˜μ„Έμš”.

pytest ruff check .

μ‹€νŒ¨ν•  경우 μ½”λ“œμ™€ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜μ •ν•˜μ„Έμš”. λͺ¨λ“  μƒˆ μ½”λ“œλŠ” linter κ·œμΉ™μ„ μ€€μˆ˜ν•˜κ³  λͺ¨λ“  ν…ŒμŠ€νŠΈλ₯Ό 톡과 ν•΄μ•Ό ν•©λ‹ˆλ‹€ .

μ½”λ”© 힌트

  • μ μ ˆν•œ 경우 μœ ν˜• 힌트λ₯Ό μ‚¬μš©ν•˜μ„Έμš”

  • 데이터 검증 및 직렬화λ₯Ό μœ„ν•΄ Pydantic을 μ‚¬μš©ν•˜μ„Έμš”

πŸ“ 질문이 μžˆμœΌμ‹ κ°€μš”?

이 ν”„λ‘œμ νŠΈμ— κ΄€ν•œ 질문, 문제점 λ˜λŠ” μ œμ•ˆ 사항이 μžˆμœΌμ‹œλ©΄ μ–Έμ œλ“ μ§€ λ¬Έμ˜ν•΄ μ£Όμ„Έμš”.

  • ν”„λ‘œμ νŠΈ μž‘μ„±μž: LinkedIn을 ν†΅ν•œ titulus

  • Sunrise Apps CEO: Vlad Karm (LinkedIn)

버그 λ³΄κ³ λ‚˜ κΈ°λŠ₯ μš”μ²­μ„ μœ„ν•΄ μ €μž₯μ†Œμ—μ„œ 이슈λ₯Ό μ—΄ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

πŸ“œ λΌμ΄μ„ΌμŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€μ— 따라 λΌμ΄μ„ μŠ€κ°€ λΆ€μ—¬λ©λ‹ˆλ‹€. 즉, MIT λΌμ΄μ„ μŠ€μ˜ 약관에 따라 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 자유둭게 μ‚¬μš©, μˆ˜μ • 및 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/sunriseapps/imagesorcery-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server