πͺ μ΄λ―Έμ§μμ리 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μ±μλλ€."π ννΈ:
π ννΈ:
κ·νμ λꡬλ μλ λμ΄λ μ¬λ¬ λꡬλ₯Ό κ²°ν©νμ¬ κ·νμ λͺ©νλ₯Ό λ¬μ±ν©λλ€.
π οΈ μ¬μ© κ°λ₯ν λꡬ
λꡬ | μ€λͺ | μμ ν둬ννΈ |
| OpenCVμ NumPy μ¬λΌμ΄μ± λ°©μμ μ¬μ©νμ¬ μ΄λ―Έμ§λ₯Ό μλ¦ λλ€. | "λ΄ μ΄λ―Έμ§ 'input.png'λ₯Ό μ’ν (10,10)μμ (200,200)κΉμ§ μλΌμ 'cropped.png'λ‘ μ μ₯ν©λλ€." |
| OpenCVλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§ ν¬κΈ°λ₯Ό μ‘°μ ν©λλ€ | "λ΄ μ΄λ―Έμ§ 'photo.jpg'μ ν¬κΈ°λ₯Ό 800x600ν½μ λ‘ μ‘°μ νκ³ 'resized_photo.jpg'λΌλ μ΄λ¦μΌλ‘ μ μ₯ν©λλ€." |
| imutils.rotate_bound ν¨μλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§λ₯Ό νμ ν©λλ€. | "λ΄ μ΄λ―Έμ§ 'photo.jpg'λ₯Ό 45λ νμ νμ¬ 'rotated_photo.jpg'λΌλ μ΄λ¦μΌλ‘ μ μ₯ν©λλ€." |
| OpenCVλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§μ ν μ€νΈλ₯Ό 그립λλ€. | "λ΄ μ΄λ―Έμ§ 'photo.jpg'μ μμΉ(50,50)μ 'Hello World'λΌλ ν μ€νΈλ₯Ό μΆκ°νκ³ μ€λ₯Έμͺ½ νλ¨μ 'Copyright 2023'μ΄λΌλ ν μ€νΈλ₯Ό μΆκ°ν©λλ€." |
| OpenCVλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§μ μ¬κ°νμ 그립λλ€. | "λ΄ μ΄λ―Έμ§ 'photo.jpg'μμ (50,50)μμ (150,100)κΉμ§ λΉ¨κ°μ μ¬κ°νμ κ·Έλ¦¬κ³ (200,150)μμ (300,250)κΉμ§ μ±μμ§ νλμ μ¬κ°νμ 그립λλ€." |
| μ΄λ―Έμ§ νμΌμ λν λ©νλ°μ΄ν° μ 보λ₯Ό κ°μ Έμ΅λλ€. | "λ΄ μ΄λ―Έμ§ 'photo.jpg'μ λν λ©νλ°μ΄ν° μ 보λ₯Ό κ°μ Έμ΅λλ€." |
| Ultralyticsμ λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§μμ κ°μ²΄λ₯Ό κ°μ§ν©λλ€. | "0.4μ μ λ’° μκ³κ°μΌλ‘ λ΄ μ΄λ―Έμ§ 'photo.jpg'μμ κ°μ²΄λ₯Ό κ°μ§ν©λλ€." |
| ν μ€νΈ μ€λͺ μ κΈ°λ°μΌλ‘ μ΄λ―Έμ§μμ κ°μ²΄λ₯Ό μ°Ύμ΅λλ€. | "μ λ’°λ μκ³κ° 0.4λ‘ λ΄ μ΄λ―Έμ§ 'photo.jpg'μ μλ λͺ¨λ κ°λ₯Ό μ°ΎμΌμΈμ" |
| λͺ¨λΈ λλ ν 리μ μλ μ¬μ© κ°λ₯ν λͺ¨λ λͺ¨λΈμ λμ΄ν©λλ€. | "λͺ¨λΈ λλ ν 리μ μλ μ¬μ© κ°λ₯ν λͺ¨λ λͺ¨λΈμ λμ΄ν©λλ€" |
| EasyOCRμ μ¬μ©νμ¬ μ΄λ―Έμ§μμ κ΄ν λ¬Έμ μΈμ(OCR)μ μνν©λλ€. | "OCRμ μ¬μ©νμ¬ μμ΄ μ΄λ―Έμ§ 'document.jpg'μμ ν μ€νΈλ₯Ό μΆμΆν©λλ€." |
π ννΈ:
π μμνκΈ°
μꡬ μ¬ν
Python 3.10μ΄μClaude.app,Clineλλ λ€λ₯Έ MCP ν΄λΌμ΄μΈνΈ
μ€μΉ

μ§μμ€νΌ1
κ°μ νκ²½μ λ§λ€κ³ νμ±νν©λλ€(κ°λ ₯ν κΆμ₯): λͺ¨λ κ΅¬μ± μμ, νΉν
clipν¨ν€μ§(μ¬ν μ€μΉ μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ μ€μΉλ¨)λ₯Ό μμ μ μΌλ‘ μ€μΉνλ €λ©΄uv venv.python -m venv imagesorcery-mcp source imagesorcery-mcp/bin/activate # For Linux/macOS # source imagesorcery-mcp\Scripts\activate # For Windowsνμ±νλ κ°μ νκ²½μ ν¨ν€μ§λ₯Ό μ€μΉν©λλ€.
pipλλuv pipμ¬μ©ν μ μμ΅λλ€.pip install imagesorcery-mcp # OR, if you prefer using uv for installation into the venv: # uv pip install imagesorcery-mcpμ€μΉ ν μ€ν¬λ¦½νΈ μ€ν: μ΄ λ¨κ³λ λ§€μ° μ€μν©λλ€. νμν λͺ¨λΈμ λ€μ΄λ‘λνκ³ 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 venvuv venvμμ±νκ³ νμ±ννμΈμ.imagesorcery-mcpμ€μΉ :uv pip install imagesorcery-mcp.νμ±
uv venvμclipν¨ν€μ§λ₯Ό μλμΌλ‘ μ€μΉν©λλ€.uv pip install git+https://github.com/ultralytics/CLIP.gitimagesorcery-mcp --post-installμ€ννμΈμ. λͺ¨λΈμ λ€μ΄λ‘λλμ§λ§clipPython ν¨ν€μ§ μ€μΉμ μ€ν¨ν μ μμ΅λλ€. μ€μΉ ν μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄clipμλμΌλ‘ λ μννκ² μ€μΉνλ €λ©΄, μμ 1λ¨κ³μμ μ€λͺ ν λλ‘python -m venvμ¬μ©νμ¬ κ°μ νκ²½μ μμ±νλ κ²μ΄ μ’μ΅λλ€.
uvx imagesorcery-mcp --post-installuvxμ¬μ©νμ¬ μ€μΉ ν μ€ν¬λ¦½νΈλ₯Ό μ§μ μ€ννλ©΄(μ:uvx imagesorcery-mcp --post-install)clipPython ν¨ν€μ§ μ€μΉμ μ€ν¨ν κ°λ₯μ±μ΄ λμ΅λλ€. μ΄λuvxκ° μμ±νλ μμ νκ²½μ μ€ν¬λ¦½νΈμμ μ¬μ©ν μ μλpipμκΈ° λλ¬Έμ λλ€. λͺ¨λΈμ λ€μ΄λ‘λλμ§λ§, μ΄ λͺ λ ΉμΌλ‘λclipν¨ν€μ§κ° μ€μΉλμ§ μμ΅λλ€.uvxμ¬μ©νμ¬ κΈ°λ³Έimagesorcery-mcpμλ²λ₯Ό μ€ννκ³clipκΈ°λ₯μ΄ νμν κ²½μ°,uvxμ°Ύμ μ μλ μ κ·Ό κ°λ₯ν Python νκ²½μclipν¨ν€μ§κ° μ€μΉλμ΄ μλμ§ νμΈνκ±°λ,python -m venvλ‘ μμ±λ μꡬ νκ²½μimagesorcery-mcpλ₯Ό μ€μΉνλ κ²μ κ³ λ €ν΄μΌ ν©λλ€.
βοΈ MCP ν΄λΌμ΄μΈνΈ ꡬμ±
MCP ν΄λΌμ΄μΈνΈμ λ€μ μ€μ μ μΆκ°νμΈμ. μ€μΉ ν imagesorcery-mcp μμ€ν
PATHμ μμΌλ©΄ imagesorcery-mcp λͺ
λ ΉμΌλ‘ μ§μ μ¬μ©ν μ μμ΅λλ€. κ·Έλ μ§ μμ κ²½μ° μ€ν νμΌμ μ 체 κ²½λ‘λ₯Ό μ 곡ν΄μΌ ν©λλ€.
π¦ μΆκ° λͺ¨λΈ
μΌλΆ λꡬμ κ²½μ° models λλ ν 리μμ νΉμ λͺ¨λΈμ μ¬μ©ν μ μμ΄μΌ ν©λλ€.
λͺ¨λΈμ λ€μ΄λ‘λν λ μ€ν¬λ¦½νΈλ μλμΌλ‘ models/model_descriptions.json νμΌμ μ
λ°μ΄νΈν©λλ€.
Ultralytics λͺ¨λΈμ κ²½μ°: μ€λͺ μ
src/imagesorcery_mcp/scripts/create_model_descriptions.pyμ 미리 μ μλμ΄ μμΌλ©° κ° λͺ¨λΈμ λͺ©μ , ν¬κΈ°, νΉμ±μ λν μμΈν μ 보λ₯Ό ν¬ν¨ν©λλ€.Hugging Face λͺ¨λΈμ κ²½μ°: Hugging Face Hubμ λͺ¨λΈ μΉ΄λμμ μ€λͺ μ΄ μλμΌλ‘ μΆμΆλ©λλ€. μ€ν¬λ¦½νΈλ λͺ¨λΈ μμΈμ λͺ¨λΈ μ΄λ¦μ΄λ μ€λͺ μ 첫 μ€μ μ¬μ©νλ €κ³ ν©λλ€.
λͺ¨λΈμ λ€μ΄λ‘λν νμλ models/model_descriptions.json μ μ€λͺ
μ νμΈνκ³ νμν κ²½μ° λͺ¨λΈμ κΈ°λ₯κ³Ό μ¬μ© μ¬λ‘μ λν λ³΄λ€ μ ννκ³ μμΈν μ 보λ₯Ό μ 곡νλλ‘ μ‘°μ νλ κ²μ΄ μ’μ΅λλ€.
π€ κΈ°μ¬νκΈ°
λλ ν 리 ꡬ쑰
μ΄ μ μ₯μλ λ€μκ³Ό κ°μ΄ ꡬμ±λμ΄ μμ΅λλ€.
κ°λ° μ€μ
μ μ₯μλ₯Ό 볡μ ν©λλ€.
(κΆμ₯) κ°μ νκ²½μ λ§λ€κ³ νμ±ννμΈμ.
κ°λ° μ’ μμ±κ³Ό ν¨κ» νΈμ§ κ°λ₯ν λͺ¨λλ‘ ν¨ν€μ§λ₯Ό μ€μΉνμΈμ.
μ΄λ κ² νλ©΄ imagesorcery-mcp μ [project.dependencies] λ° [project.optional-dependencies].dev μ λͺ¨λ μ’
μμ±( build λ° twine ν¬ν¨)μ΄ μ€μΉλ©λλ€.
κ·μΉ
μ΄λ¬ν κ·μΉμ λͺ¨λ μ°Έμ¬μ, μ¦ μΈκ°κ³Ό AIμκ² μ μ©λ©λλ€.
νλ‘μ νΈμ λͺ¨λ
README.mdνμΌμ μ½μ΄λ³΄μΈμ. νλ‘μ νΈ κ΅¬μ‘°μ λͺ©μ μ μ΄ν΄νκ³ , κΈ°μ¬ μ§μΉ¨μ μμ§νμΈμ. μ΄ μ§μΉ¨μ΄ μμ κ³Ό μ΄λ€ κ΄λ ¨μ΄ μλμ§, κ·Έλ¦¬κ³ κ·Έμ λ°λΌ μ΄λ»κ² μμ ν μ§ μκ°ν΄ 보μΈμ.pyproject.tomlμ½μ΄λ³΄μΈμ.[tool.ruff],[tool.ruff.lint],[project.optional-dependencies],[project]dependenciesμΉμ μ μ£ΌμνμΈμ.pyproject.tomlμ μ μλ μ½λ μ€νμΌμ μ격ν μ€μνμΈμ.pyproject.tomlνμΌ dependenciesμ μ μλ μ€νμ λ°λ₯΄κ³ , μ λΉν μ΄μ μμ΄ μλ‘μ΄ μ’ μμ±μ μΆκ°νμ§ λ§μΈμ.μ νμΌκ³Ό κΈ°μ‘΄ νμΌμ μ½λλ₯Ό μμ±νμΈμ. μλ‘μ΄ μ’ μμ±μ΄ νμν κ²½μ°
pyproject.tomlμ λ°μ΄νΈνκ³pip install -e .λλpip install -e ".[dev]"μ¬μ©νμ¬ μ€μΉνμΈμ.pip installν΅ν΄ μ§μ μ€μΉνμ§ λ§μΈμ. κΈ°μ‘΄ μμ€ μ½λ(μ:src/imagesorcery_mcp/server.py,src/imagesorcery_mcp/tools/crop.py)μμ μμ λ₯Ό νμΈνμΈμ. κΈ°μ‘΄ μ½λμ μ½λ μ€νμΌ, λͺ λͺ κ·μΉ, μ μΆλ ₯ λ°μ΄ν° νμ, μ½λ ꡬ쑰, μν€ν μ² λ±μ μ€μνμΈμ.κ΄λ ¨
README.mdνμΌμ λ³κ²½ μ¬νμΌλ‘ μ λ°μ΄νΈνμΈμ. κΈ°μ‘΄README.mdνμΌμ νμκ³Ό ꡬ쑰λ₯Ό κ·Έλλ‘ μ μ§νμΈμ.μ½λμ λν ν μ€νΈλ₯Ό μμ±νμΈμ. κΈ°μ‘΄ ν μ€νΈμμ μμλ₯Ό νμΈνμΈμ(μ:
tests/test_server.py,tests/tools/test_crop.py). κΈ°μ‘΄ ν μ€νΈμ μ½λ μ€νμΌ, λͺ λͺ κ·μΉ, μ μΆλ ₯ λ°μ΄ν° νμ, μ½λ ꡬ쑰, μν€ν μ² λ±μ κ·Έλλ‘ λ°λ₯΄μΈμ.ν μ€νΈμ λ¦°ν°λ₯Ό μ€ννμ¬ λͺ¨λ κ²μ΄ μ λλ‘ μλνλμ§ νμΈνμΈμ.
μ€ν¨ν κ²½μ° μ½λμ ν μ€νΈλ₯Ό μμ νμΈμ. λͺ¨λ μ μ½λλ linter κ·μΉμ μ€μνκ³ λͺ¨λ ν μ€νΈλ₯Ό ν΅κ³Ό ν΄μΌ ν©λλ€ .
μ½λ© ννΈ
μ μ ν κ²½μ° μ ν ννΈλ₯Ό μ¬μ©νμΈμ
λ°μ΄ν° κ²μ¦ λ° μ§λ ¬νλ₯Ό μν΄ Pydanticμ μ¬μ©νμΈμ
π μ§λ¬Έμ΄ μμΌμ κ°μ?
μ΄ νλ‘μ νΈμ κ΄ν μ§λ¬Έ, λ¬Έμ μ λλ μ μ μ¬νμ΄ μμΌμλ©΄ μΈμ λ μ§ λ¬Έμν΄ μ£ΌμΈμ.
λ²κ·Έ λ³΄κ³ λ κΈ°λ₯ μμ²μ μν΄ μ μ₯μμμ μ΄μλ₯Ό μ΄ μλ μμ΅λλ€.
π λΌμ΄μΌμ€
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€μ λ°λΌ λΌμ΄μ μ€κ° λΆμ¬λ©λλ€. μ¦, MIT λΌμ΄μ μ€μ μ½κ΄μ λ°λΌ μννΈμ¨μ΄λ₯Ό μμ λ‘κ² μ¬μ©, μμ λ° λ°°ν¬ν μ μμ΅λλ€.

π ννΈ:
π ννΈ: