✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

pymcp

pymcpλŠ” FastMCPλ₯Ό 기반으둜 ν•œ Python ν”„λ‘œμ νŠΈλ‘œ, MySQL λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•  수 μžˆλŠ” 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 ν”„λ‘œμ νŠΈλŠ” μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„μ˜ 톡신을 μ§€μ›ν•˜λ©°, λ‹€μ–‘ν•œ 도ꡬλ₯Ό 톡해 데이터λ₯Ό μ‘°νšŒν•˜κ³  뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ ꡬ쑰

pymcp/
β”œβ”€β”€ client.py          # ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ
β”œβ”€β”€ main.py            # μ„œλ²„ μ‹€ν–‰ μ½”λ“œ
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ env.py         # 둜컬 ν™˜κ²½ μ„€μ •
β”‚   β”œβ”€β”€ env_dev.py     # 개발 ν™˜κ²½ μ„€μ •
β”‚   β”œβ”€β”€ mcp_instance.py # MCP μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™”
β”‚   β”œβ”€β”€ mysql_tool.py  # MySQL κ΄€λ ¨ 도ꡬ μ •μ˜
β”œβ”€β”€ pyproject.toml     # ν”„λ‘œμ νŠΈ 메타데이터 및 μ˜μ‘΄μ„±
β”œβ”€β”€ requirements.txt   # μ˜μ‘΄μ„± λͺ©λ‘
└── README.md          # ν”„λ‘œμ νŠΈ μ„€λͺ…

μ„€μΉ˜ 및 μ‹€ν–‰

1. μ˜μ‘΄μ„± μ„€μΉ˜

Python 3.13 이상이 ν•„μš”ν•©λ‹ˆλ‹€. μ˜μ‘΄μ„±μ„ μ„€μΉ˜ν•˜λ €λ©΄ μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ„Έμš”:

pip install -r requirements.txt

2. μ„œλ²„ μ‹€ν–‰

μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ main.pyλ₯Ό μ‹€ν–‰ν•˜μ„Έμš”:

python main.py

μ„œλ²„λŠ” 기본적으둜 0.0.0.0:8080μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

3. ν΄λΌμ΄μ–ΈνŠΈ μ‹€ν–‰

ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ client.pyλ₯Ό μ‹€ν–‰ν•˜μ„Έμš”:

python client.py

ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ—¬ MySQL 쿼리λ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜ 도ꡬ λͺ©λ‘μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν™˜κ²½ μ„€μ •

ν™˜κ²½μ— 따라 MySQL 섀정이 λ‹€λ₯΄κ²Œ μ μš©λ©λ‹ˆλ‹€:

  • 둜컬 ν™˜κ²½: src/env.py
  • 개발 ν™˜κ²½: src/env_dev.py

ν™˜κ²½μ€ APP_ENV ν™˜κ²½ λ³€μˆ˜λ₯Ό 톡해 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기본값은 localμž…λ‹ˆλ‹€.

export APP_ENV=dev  # 개발 ν™˜κ²½ μ„€μ •

제곡 도ꡬ

μ„œλ²„μ—μ„œ μ œκ³΅ν•˜λŠ” λ„κ΅¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  1. describe_tools
    μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ λͺ©λ‘κ³Ό μ‚¬μš©λ²•μ„ μ„€λͺ…ν•©λ‹ˆλ‹€.

  2. query_mysql(sql: str)
    μ£Όμ–΄μ§„ SQL 쿼리λ₯Ό μ‹€ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
    μ˜ˆμ‹œ: query_mysql("SELECT * FROM users LIMIT 10;")

μ£Όμš” 파일 μ„€λͺ…

main.py

μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λŠ” μ§„μž…μ μž…λ‹ˆλ‹€. MCP μΈμŠ€ν„΄μŠ€λ₯Ό μ΄ˆκΈ°ν™”ν•˜κ³  도ꡬλ₯Ό λ“±λ‘ν•œ λ’€ μ„œλ²„λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

client.py

μ„œλ²„μ™€ μƒν˜Έμž‘μš©ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œμž…λ‹ˆλ‹€. μ„œλ²„μ— μ—°κ²°ν•˜μ—¬ 도ꡬλ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

src/mysql_tool.py

MySQL κ΄€λ ¨ 도ꡬλ₯Ό μ •μ˜ν•œ νŒŒμΌμž…λ‹ˆλ‹€. query_mysql와 같은 도ꡬλ₯Ό 톡해 SQL 쿼리λ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

src/env.py 및 src/env_dev.py

MySQL μ—°κ²° 섀정을 ν¬ν•¨ν•œ ν™˜κ²½ λ³€μˆ˜ νŒŒμΌμž…λ‹ˆλ‹€. ν™˜κ²½μ— 따라 μ μ ˆν•œ 섀정을 λ‘œλ“œν•©λ‹ˆλ‹€.

Featured Templates

View More

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.