Skip to main content
Glama

Hi-AI

smithery badge npm version License: MIT MCP Compatible Tests Coverage

Model Context Protocol ๊ธฐ๋ฐ˜ AI ๊ฐœ๋ฐœ ์–ด์‹œ์Šคํ„ดํŠธ

TypeScript + Python ์ง€์› ยท 38๊ฐœ ์ „๋ฌธ ๋„๊ตฌ ยท ์ง€๋Šฅํ˜• ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ยท ์ฝ”๋“œ ๋ถ„์„

English | ํ•œ๊ตญ์–ด


๋ชฉ์ฐจ


๊ฐœ์š”

Hi-AI๋Š” Model Context Protocol (MCP) ํ‘œ์ค€์„ ๊ตฌํ˜„ํ•œ AI ๊ฐœ๋ฐœ ์–ด์‹œ์Šคํ„ดํŠธ์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์–ด ๊ธฐ๋ฐ˜ ํ‚ค์›Œ๋“œ ์ธ์‹์„ ํ†ตํ•ด 38๊ฐœ์˜ ์ „๋ฌธํ™”๋œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ง๊ด€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐ€์น˜

  • ์ž์—ฐ์–ด ๊ธฐ๋ฐ˜: ํ•œ๊ตญ์–ด/์˜์–ด ํ‚ค์›Œ๋“œ๋กœ ๋„๊ตฌ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰

  • ์ง€๋Šฅํ˜• ๋ฉ”๋ชจ๋ฆฌ: SQLite ๊ธฐ๋ฐ˜ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐ ์••์ถ•

  • ๋‹ค์ค‘ ์–ธ์–ด ์ง€์›: TypeScript, JavaScript, Python ์ฝ”๋“œ ๋ถ„์„

  • ์„ฑ๋Šฅ ์ตœ์ ํ™”: ํ”„๋กœ์ ํŠธ ์บ์‹ฑ ์‹œ์Šคํ…œ

  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ’ˆ์งˆ: 100% ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฐ ์—„๊ฒฉํ•œ ํƒ€์ž… ์‹œ์Šคํ…œ


์ฃผ์š” ๊ธฐ๋Šฅ

1. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

์„ธ์…˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” 10๊ฐœ์˜ ๋„๊ตฌ:

  • ์ง€๋Šฅํ˜• ์ €์žฅ: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ •๋ณด ๋ถ„๋ฅ˜ ๋ฐ ์šฐ์„ ์ˆœ์œ„ ๊ด€๋ฆฌ

  • ์ปจํ…์ŠคํŠธ ์••์ถ•: ์ค‘์š”๋„ ๊ธฐ๋ฐ˜ ์ปจํ…์ŠคํŠธ ์••์ถ• ์‹œ์Šคํ…œ

  • ์„ธ์…˜ ๋ณต์›: ์ด์ „ ์ž‘์—… ์ƒํƒœ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์žฌํ˜„

  • SQLite ๊ธฐ๋ฐ˜: ๋™์‹œ์„ฑ ์ œ์–ด, ์ธ๋ฑ์‹ฑ, ํŠธ๋žœ์žญ์…˜ ์ง€์›

์ฃผ์š” ๋„๊ตฌ:

  • save_memory - ์žฅ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ •๋ณด ์ €์žฅ

  • recall_memory - ์ €์žฅ๋œ ์ •๋ณด ๊ฒ€์ƒ‰

  • auto_save_context - ์ปจํ…์ŠคํŠธ ์ž๋™ ์ €์žฅ

  • restore_session_context - ์„ธ์…˜ ๋ณต์›

  • prioritize_memory - ๋ฉ”๋ชจ๋ฆฌ ์šฐ์„ ์ˆœ์œ„ ๊ด€๋ฆฌ

2. ์‹œ๋งจํ‹ฑ ์ฝ”๋“œ ๋ถ„์„

AST ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ๋ถ„์„ ๋ฐ ํƒ์ƒ‰ ๋„๊ตฌ:

  • ์‹ฌ๋ณผ ๊ฒ€์ƒ‰: ํ”„๋กœ์ ํŠธ ์ „์ฒด์—์„œ ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜ ์œ„์น˜ ํŒŒ์•…

  • ์ฐธ์กฐ ์ถ”์ : ํŠน์ • ์‹ฌ๋ณผ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ฒ˜ ์ถ”์ 

  • ๋‹ค์ค‘ ์–ธ์–ด: TypeScript, JavaScript, Python ์ง€์›

  • ํ”„๋กœ์ ํŠธ ์บ์‹ฑ: LRU ์บ์‹œ๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”

์ฃผ์š” ๋„๊ตฌ:

  • find_symbol - ์‹ฌ๋ณผ ์ •์˜ ๊ฒ€์ƒ‰

  • find_references - ์‹ฌ๋ณผ ์ฐธ์กฐ ์ฐพ๊ธฐ

3. ์ฝ”๋“œ ํ’ˆ์งˆ ๋ถ„์„

ํฌ๊ด„์ ์ธ ์ฝ”๋“œ ๋ฉ”ํŠธ๋ฆญ ๋ฐ ํ’ˆ์งˆ ํ‰๊ฐ€:

  • ๋ณต์žก๋„ ๋ถ„์„: Cyclomatic, Cognitive, Halstead ๋ฉ”ํŠธ๋ฆญ

  • ๊ฒฐํ•ฉ๋„/์‘์ง‘๋„: ๋ชจ๋“ˆ ๊ตฌ์กฐ ๊ฑด์ „์„ฑ ํ‰๊ฐ€

  • ํ’ˆ์งˆ ์ ์ˆ˜: A-F ๋“ฑ๊ธ‰ ์‹œ์Šคํ…œ

  • ๊ฐœ์„  ์ œ์•ˆ: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฆฌํŒฉํ† ๋ง ๋ฐฉ์•ˆ

์ฃผ์š” ๋„๊ตฌ:

  • analyze_complexity - ๋ณต์žก๋„ ๋ฉ”ํŠธ๋ฆญ ๋ถ„์„

  • validate_code_quality - ์ฝ”๋“œ ํ’ˆ์งˆ ํ‰๊ฐ€

  • check_coupling_cohesion - ๊ฒฐํ•ฉ๋„/์‘์ง‘๋„ ๋ถ„์„

  • suggest_improvements - ๊ฐœ์„  ์ œ์•ˆ

  • apply_quality_rules - ํ’ˆ์งˆ ๊ทœ์น™ ์ ์šฉ

  • get_coding_guide - ์ฝ”๋”ฉ ๊ฐ€์ด๋“œ ์กฐํšŒ

4. ํ”„๋กœ์ ํŠธ ๊ณ„ํš ๋„๊ตฌ

์ฒด๊ณ„์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋ฐ ๋กœ๋“œ๋งต ์ƒ์„ฑ:

  • PRD ์ƒ์„ฑ: ์ œํ’ˆ ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ ์ž๋™ ์ƒ์„ฑ

  • ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ: ์ˆ˜์šฉ ์กฐ๊ฑด ํฌํ•จ ์Šคํ† ๋ฆฌ ์ž‘์„ฑ

  • MoSCoW ๋ถ„์„: ์š”๊ตฌ์‚ฌํ•ญ ์šฐ์„ ์ˆœ์œ„ํ™”

  • ๋กœ๋“œ๋งต ์ž‘์„ฑ: ๋‹จ๊ณ„๋ณ„ ๊ฐœ๋ฐœ ์ผ์ • ๊ณ„ํš

์ฃผ์š” ๋„๊ตฌ:

  • generate_prd - ์ œํ’ˆ ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ ์ƒ์„ฑ

  • create_user_stories - ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ ์ž‘์„ฑ

  • analyze_requirements - ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

  • feature_roadmap - ๊ธฐ๋Šฅ ๋กœ๋“œ๋งต ์ƒ์„ฑ

5. ์ˆœ์ฐจ์  ์‚ฌ๊ณ  ๋„๊ตฌ

๊ตฌ์กฐํ™”๋œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์˜์‚ฌ๊ฒฐ์ • ์ง€์›:

  • ๋ฌธ์ œ ๋ถ„ํ•ด: ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ด

  • ์‚ฌ๊ณ  ์ฒด์ธ: ์ˆœ์ฐจ์  ์ถ”๋ก  ๊ณผ์ • ์ƒ์„ฑ

  • ๋‹ค์–‘ํ•œ ๊ด€์ : ๋ถ„์„์ /์ฐฝ์˜์ /์ฒด๊ณ„์ /๋น„ํŒ์  ์‚ฌ๊ณ 

  • ์‹คํ–‰ ๊ณ„ํš: ์ž‘์—…์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ณ„ํš์œผ๋กœ ๋ณ€ํ™˜

์ฃผ์š” ๋„๊ตฌ:

  • create_thinking_chain - ์‚ฌ๊ณ  ์ฒด์ธ ์ƒ์„ฑ

  • analyze_problem - ๋ฌธ์ œ ๋ถ„์„

  • step_by_step_analysis - ๋‹จ๊ณ„๋ณ„ ๋ถ„์„

  • break_down_problem - ๋ฌธ์ œ ๋ถ„ํ•ด

  • think_aloud_process - ์‚ฌ๊ณ  ๊ณผ์ • ํ‘œํ˜„

  • format_as_plan - ๊ณ„ํš ํ˜•์‹ํ™”

6. ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

ํ”„๋กฌํ”„ํŠธ ํ’ˆ์งˆ ํ–ฅ์ƒ ๋ฐ ์ตœ์ ํ™”:

  • ์ž๋™ ๊ฐ•ํ™”: ๋ชจํ˜ธํ•œ ์š”์ฒญ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณ€ํ™˜

  • ํ’ˆ์งˆ ํ‰๊ฐ€: ๋ช…ํ™•์„ฑ, ๊ตฌ์ฒด์„ฑ, ๋งฅ๋ฝ์„ฑ ์ ์ˆ˜ํ™”

  • ๊ตฌ์กฐํ™”: ๋ชฉํ‘œ, ๋ฐฐ๊ฒฝ, ์š”๊ตฌ์‚ฌํ•ญ, ํ’ˆ์งˆ ๊ธฐ์ค€

์ฃผ์š” ๋„๊ตฌ:

  • enhance_prompt - ํ”„๋กฌํ”„ํŠธ ๊ฐ•ํ™”

  • analyze_prompt - ํ”„๋กฌํ”„ํŠธ ํ’ˆ์งˆ ๋ถ„์„

7. ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”

์›น ๊ธฐ๋ฐ˜ ๋””๋ฒ„๊น… ๋ฐ ํ…Œ์ŠคํŒ…:

  • ์ฝ˜์†” ๋ชจ๋‹ˆํ„ฐ๋ง: ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†” ๋กœ๊ทธ ์บก์ฒ˜

  • ๋„คํŠธ์›Œํฌ ๋ถ„์„: HTTP ์š”์ฒญ/์‘๋‹ต ์ถ”์ 

  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ: Chrome, Edge, Brave ์ง€์›

์ฃผ์š” ๋„๊ตฌ:

  • monitor_console_logs - ์ฝ˜์†” ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง

  • inspect_network_requests - ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋ถ„์„

8. UI ํ”„๋ฆฌ๋ทฐ

์ฝ”๋”ฉ ์ „ UI ๋ ˆ์ด์•„์›ƒ ์‹œ๊ฐํ™”:

  • ASCII ์•„ํŠธ: 6๊ฐ€์ง€ ๋ ˆ์ด์•„์›ƒ ํƒ€์ž… ์ง€์›

  • ๋ฐ˜์‘ํ˜• ํ”„๋ฆฌ๋ทฐ: ๋ฐ์Šคํฌํƒ‘/๋ชจ๋ฐ”์ผ ๋ทฐ

  • ์‚ฌ์ „ ์Šน์ธ: ๊ตฌ์กฐ ํ™•์ธ ํ›„ ์ฝ”๋”ฉ ์‹œ์ž‘

์ฃผ์š” ๋„๊ตฌ:

  • preview_ui_ascii - ASCII UI ํ”„๋ฆฌ๋ทฐ

9. ์‹œ๊ฐ„ ์œ ํ‹ธ๋ฆฌํ‹ฐ

๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ์‹œ๊ฐ„ ์กฐํšŒ:

์ฃผ์š” ๋„๊ตฌ:

  • get_current_time - ํ˜„์žฌ ์‹œ๊ฐ„ ์กฐํšŒ (ISO, UTC, ํƒ€์ž„์กด ๋“ฑ)


v1.3.0 ์—…๋ฐ์ดํŠธ

์‹ ๊ทœ ๊ธฐ๋Šฅ

4๊ฐœ์˜ ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

MemoryManager (395์ค„)

  • JSON โ†’ SQLite ์ž๋™ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

  • ์ธ๋ฑ์‹ฑ ๋ฐ ํŠธ๋žœ์žญ์…˜ ์ง€์›

  • ๋ฐฐ์น˜ ์ž‘์—… ์„ฑ๋Šฅ ์ตœ์ ํ™”

ContextCompressor (408์ค„)

  • ์ปจํ…์ŠคํŠธ ์ง€๋Šฅํ˜• ์••์ถ•

  • ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜ ๋ณด์กด (์ฝ”๋“œ > ๋‹ต๋ณ€ > ์งˆ๋ฌธ)

  • ์—”ํ‹ฐํ‹ฐ ์ถ”์ถœ ๋ฐ ํ‚ค์›Œ๋“œ ๊ฐ์ง€

ProjectCache (160์ค„)

  • LRU ์บ์‹ฑ ์‹œ์Šคํ…œ

  • 5๋ถ„ TTL, ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ๊ด€๋ฆฌ

  • ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ ์ตœ์ ํ™”

PythonParser (289์ค„)

  • Python AST ๋ถ„์„ ์ง€์›

  • ์‹ฌ๋ณผ ์ถ”์ถœ ๋ฐ ๋ณต์žก๋„ ๊ณ„์‚ฐ

  • ์ž๋™ ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ

Python ์–ธ์–ด ์ง€์›

  • AST ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ๋ถ„์„

  • ์‹ฌ๋ณผ ๊ฒ€์ƒ‰ ๋ฐ ์ฐธ์กฐ ์ถ”์ 

  • Cyclomatic ๋ณต์žก๋„ ๊ณ„์‚ฐ

  • TypeScript + Python ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ”„๋กœ์ ํŠธ ์ง€์›

ํ…Œ์ŠคํŠธ ์ธํ”„๋ผ

  • 71๊ฐœ ํ…Œ์ŠคํŠธ (100% ํ†ต๊ณผ)

  • 100% ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ปค๋ฒ„๋ฆฌ์ง€

  • Vitest ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

  • ํฌ๋ฆฌํ‹ฐ์ปฌ ํŒจ์Šค ๊ฒ€์ฆ

์„ฑ๋Šฅ ๊ฐœ์„ 

๊ฐœ์„  ํ•ญ๋ชฉ

์„ค๋ช…

์ฝ”๋“œ ๋ถ„์„

ํ”„๋กœ์ ํŠธ ์บ์‹ฑ์„ ํ†ตํ•œ ๋ถ„์„ ์†๋„ ํ–ฅ์ƒ

๋ฉ”๋ชจ๋ฆฌ ์ž‘์—…

SQLite ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฐฐ์น˜ ์ž‘์—… ์ตœ์ ํ™” (O(nยฒ) โ†’ O(n))

์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ

์ง€๋Šฅํ˜• ์••์ถ• ์‹œ์Šคํ…œ ๋„์ž…

์‘๋‹ต ํ˜•์‹

๊ฐ„๊ฒฐํ•œ ์‘๋‹ต ํฌ๋งท์œผ๋กœ ์ „ํ™˜

์ฝ”๋“œ ํ’ˆ์งˆ

  • ํƒ€์ž… ์‹œ์Šคํ…œ ์ค‘์•™ํ™”: 170์ค„ ์ค‘๋ณต ์ œ๊ฑฐ

  • ๋ฉ”๋ชจ๋ฆฌ ๋„๊ตฌ ๋ฆฌํŒฉํ† ๋ง: ์ฝ”๋“œ ๊ฐ„์†Œํ™” (76์ค„ โ†’ 17์ค„)

  • ์‘๋‹ต ํ˜•์‹ ์ตœ์ ํ™”: ์••์ถ•๋œ ์‘๋‹ต ํฌ๋งท

  • ๋ชจ๋“ˆํ™”: ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ ๋ฐ ์žฌ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ


์„ค์น˜

์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js 18.0 ์ด์ƒ

  • TypeScript 5.0 ์ด์ƒ

  • MCP ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ (Claude Desktop, Cursor, Windsurf)

  • Python 3.x (Python ์ฝ”๋“œ ๋ถ„์„ ์‹œ)

์„ค์น˜ ๋ฐฉ๋ฒ•

NPM ํŒจํ‚ค์ง€

# ๊ธ€๋กœ๋ฒŒ ์„ค์น˜ npm install -g @su-record/hi-ai # ๋กœ์ปฌ ์„ค์น˜ npm install @su-record/hi-ai

Smithery ํ”Œ๋žซํผ

# ์›ํด๋ฆญ ์„ค์น˜ https://smithery.ai/server/@su-record/hi-ai

MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •

Claude Desktop ๋˜๋Š” ๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ์˜ ์„ค์ • ํŒŒ์ผ์— ์ถ”๊ฐ€:

{ "mcpServers": { "hi-ai": { "command": "hi-ai", "args": [], "env": {} } } }

๋„๊ตฌ ์นดํƒˆ๋กœ๊ทธ

์ „์ฒด ๋„๊ตฌ ๋ชฉ๋ก (38๊ฐœ)

์นดํ…Œ๊ณ ๋ฆฌ

๋„๊ตฌ ์ˆ˜

๋„๊ตฌ ๋ชฉ๋ก

๋ฉ”๋ชจ๋ฆฌ

10

save_memory, recall_memory, list_memories, search_memories, delete_memory, update_memory, auto_save_context, restore_session_context, prioritize_memory, start_session

์‹œ๋งจํ‹ฑ

2

find_symbol, find_references

์‚ฌ๊ณ 

6

create_thinking_chain, analyze_problem, step_by_step_analysis, break_down_problem, think_aloud_process, format_as_plan

์ฝ”๋“œ ํ’ˆ์งˆ

6

analyze_complexity, validate_code_quality, check_coupling_cohesion, suggest_improvements, apply_quality_rules, get_coding_guide

๊ณ„ํš

4

generate_prd, create_user_stories, analyze_requirements, feature_roadmap

ํ”„๋กฌํ”„ํŠธ

2

enhance_prompt, analyze_prompt

๋ธŒ๋ผ์šฐ์ €

2

monitor_console_logs, inspect_network_requests

UI

1

preview_ui_ascii

์‹œ๊ฐ„

1

get_current_time

ํ‚ค์›Œ๋“œ ๋งคํ•‘ ์˜ˆ์‹œ

๋ฉ”๋ชจ๋ฆฌ ๋„๊ตฌ

๋„๊ตฌ

ํ•œ๊ตญ์–ด

์˜์–ด

save_memory

๊ธฐ์–ตํ•ด, ์ €์žฅํ•ด

remember, save this

recall_memory

๋– ์˜ฌ๋ ค, ๊ธฐ์–ต๋‚˜

recall, remind me

auto_save_context

์ปค๋ฐ‹, ์ €์žฅ

commit, checkpoint

์ฝ”๋“œ ๋ถ„์„ ๋„๊ตฌ

๋„๊ตฌ

ํ•œ๊ตญ์–ด

์˜์–ด

find_symbol

ํ•จ์ˆ˜ ์ฐพ์•„, ํด๋ž˜์Šค ์–ด๋””

find function, where is

analyze_complexity

๋ณต์žก๋„, ๋ณต์žกํ•œ์ง€

complexity, how complex

validate_code_quality

ํ’ˆ์งˆ, ๋ฆฌ๋ทฐ

quality, review


์•„ํ‚คํ…์ฒ˜

์‹œ์Šคํ…œ ๊ตฌ์กฐ

graph TB subgraph "Client Layer" A[Claude Desktop / Cursor / Windsurf] end subgraph "MCP Server" B[Hi-AI v1.3.0] end subgraph "Core Libraries" C1[MemoryManager] C2[ContextCompressor] C3[ProjectCache] C4[PythonParser] end subgraph "Tool Categories" D1[Memory Tools x10] D2[Semantic Tools x2] D3[Thinking Tools x6] D4[Quality Tools x6] D5[Planning Tools x4] D6[Prompt Tools x2] D7[Browser Tools x2] D8[UI Tools x1] D9[Time Tools x1] end subgraph "Data Layer" E1[(SQLite Database)] E2[Project Files] end A <--> B B --> C1 & C2 & C3 & C4 B --> D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 C1 --> E1 C3 --> E2 C4 --> E2 D1 --> C1 & C2 D2 --> C3 & C4 D4 --> C4

ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ

MemoryManager

  • ์—ญํ• : ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ ๊ด€๋ฆฌ

  • ๊ธฐ์ˆ : SQLite, better-sqlite3

  • ๊ธฐ๋Šฅ: CRUD, ๊ฒ€์ƒ‰, ์šฐ์„ ์ˆœ์œ„, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

  • ์ตœ์ ํ™”: WAL ๋ชจ๋“œ, ์ธ๋ฑ์‹ฑ, Prepared Statements

ContextCompressor

  • ์—ญํ• : ์ปจํ…์ŠคํŠธ ์••์ถ• ๊ด€๋ฆฌ

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜ ์••์ถ•

  • ๊ธฐ๋Šฅ: ์ค‘์š”๋„์— ๋”ฐ๋ฅธ ์„ ํƒ์  ๋ณด์กด

ProjectCache

  • ์—ญํ• : ts-morph ํ”„๋กœ์ ํŠธ ์บ์‹ฑ

  • ์ „๋žต: LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๊ธฐ๋Šฅ: ๋ฐ˜๋ณต ๋ถ„์„ ์„ฑ๋Šฅ ํ–ฅ์ƒ

  • ์ œํ•œ: 100MB/ํ”„๋กœ์ ํŠธ, 200MB ์ „์ฒด

PythonParser

  • ์—ญํ• : Python ์ฝ”๋“œ AST ๋ถ„์„

  • ๋ฐฉ๋ฒ•: subprocess ์‹คํ–‰

  • ๊ธฐ๋Šฅ: ์‹ฌ๋ณผ ์ถ”์ถœ, ๋ณต์žก๋„ ๊ณ„์‚ฐ

  • ์•ˆ์ „: ํƒ€์ž„์•„์›ƒ, ์ž๋™ ์ •๋ฆฌ

๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ

์‚ฌ์šฉ์ž ์ž…๋ ฅ (์ž์—ฐ์–ด) โ†“ ํ‚ค์›Œ๋“œ ๋งค์นญ (๋„๊ตฌ ์„ ํƒ) โ†“ ๋„๊ตฌ ์‹คํ–‰ โ†“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ (ํ•„์š”์‹œ) โ†“ ๊ฒฐ๊ณผ ํฌ๋งทํŒ… (์••์ถ•) โ†“ MCP ์‘๋‹ต ๋ฐ˜ํ™˜

์„ฑ๋Šฅ

์ฃผ์š” ์ตœ์ ํ™”

ํ”„๋กœ์ ํŠธ ์บ์‹ฑ

  • LRU ์บ์‹œ๋ฅผ ํ†ตํ•œ ๋ฐ˜๋ณต ๋ถ„์„ ์„ฑ๋Šฅ ํ–ฅ์ƒ

  • 5๋ถ„ TTL๋กœ ์ตœ์‹  ์ƒํƒœ ์œ ์ง€

  • ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ ํ†ตํ•œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ์ž‘์—…

  • SQLite ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฐฐ์น˜ ์ž‘์—… ์ตœ์ ํ™”

  • ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ฐœ์„ : O(nยฒ) โ†’ O(n)

  • ์ธ๋ฑ์‹ฑ์„ ํ†ตํ•œ ๋น ๋ฅธ ์กฐํšŒ

์‘๋‹ต ํ˜•์‹

  • ๊ฐ„๊ฒฐํ•œ ์‘๋‹ต ํฌ๋งท์œผ๋กœ ์ „ํ™˜

  • ํ•ต์‹ฌ ์ •๋ณด ์ค‘์‹ฌ์˜ ์ถœ๋ ฅ

v1.2.0 ์‘๋‹ต ์˜ˆ์‹œ:

{ "action": "save_memory", "key": "test-key", "value": "test-value", "category": "general", "timestamp": "2025-01-16T12:34:56.789Z", "status": "success", "metadata": { ... } }

v1.3.0 ์‘๋‹ต ์˜ˆ์‹œ:

โœ“ Saved: test-key Category: general

๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

ํ™˜๊ฒฝ ์„ค์ •

# ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํด๋ก  git clone https://github.com/su-record/hi-ai.git cd hi-ai # ์˜์กด์„ฑ ์„ค์น˜ npm install # ๋นŒ๋“œ npm run build # ๊ฐœ๋ฐœ ๋ชจ๋“œ npm run dev

ํ…Œ์ŠคํŠธ

# ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰ npm test # Watch ๋ชจ๋“œ npm run test:watch # UI ๋ชจ๋“œ npm run test:ui # ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฆฌํฌํŠธ npm run test:coverage

์ฝ”๋“œ ์Šคํƒ€์ผ

  • TypeScript: strict ๋ชจ๋“œ

  • ํƒ€์ž…: src/types/tool.ts ์‚ฌ์šฉ

  • ํ…Œ์ŠคํŠธ: 100% ์ปค๋ฒ„๋ฆฌ์ง€ ์œ ์ง€

  • ์ปค๋ฐ‹: Conventional Commits ํ˜•์‹

์ƒˆ ๋„๊ตฌ ์ถ”๊ฐ€

  1. src/tools/category/ ๋””๋ ‰ํ† ๋ฆฌ์— ํŒŒ์ผ ์ƒ์„ฑ

  2. ToolDefinition ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„

  3. src/index.ts์— ๋„๊ตฌ ๋“ฑ๋ก

  4. tests/unit/ ๋””๋ ‰ํ† ๋ฆฌ์— ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

  5. README ์—…๋ฐ์ดํŠธ

Pull Request

  1. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ: feature/tool-name

  2. ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋ฐ ํ†ต๊ณผ ํ™•์ธ

  3. ๋นŒ๋“œ ์„ฑ๊ณต ํ™•์ธ

  4. PR ์ƒ์„ฑ ๋ฐ ๋ฆฌ๋ทฐ ์š”์ฒญ


๊ธฐ์—ฌ์ž

ํŠน๋ณ„ ๊ฐ์‚ฌ

  • Smithery - MCP ์„œ๋ฒ„ ๋ฐฐํฌ ๋ฐ ์›ํด๋ฆญ ์„ค์น˜ ํ”Œ๋žซํผ ์ œ๊ณต


๋ผ์ด์„ ์Šค

MIT License - ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ๋ฐฐํฌ ๊ฐ€๋Šฅ


์ธ์šฉ

์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐ๊ตฌ๋‚˜ ์ƒ์—…์  ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜์‹ค ๊ฒฝ์šฐ:

@software{hi-ai2024, author = {Su}, title = {Hi-AI: Natural Language MCP Server for AI-Assisted Development}, year = {2024}, version = {1.3.0}, url = {https://github.com/su-record/hi-ai} }

Star History

Star History Chart

Hi-AI v1.3.0

ํ”„๋กœ์ ํŠธ ์บ์‹ฑ ยท SQLite ๋ฉ”๋ชจ๋ฆฌ ยท Python ์ง€์› ยท 100% ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€

Made with โค๏ธ by Su

๐Ÿ  Homepage ยท ๐Ÿ“š Documentation ยท ๐Ÿ› Issues ยท ๐Ÿ’ฌ Discussions

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
    Last updated -
    4
    1,945
    3,954
    • Linux
    • Apple
  • A
    security
    F
    license
    A
    quality
    AI-driven tool that helps developers create beautiful UI components instantly through natural language descriptions, integrating with popular IDEs like Cursor, Windsurf, and VSCode.
    Last updated -
    3
    2
  • -
    security
    -
    license
    -
    quality
    A framework that helps developers quickly build AI Native IDE products.
    Last updated -
    47
    MIT License
  • -
    security
    F
    license
    -
    quality
    A powerful interface for extending AI capabilities through remote control, calculations, email operations, knowledge search, and more.
    Last updated -
    47

View all related MCP servers

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/su-record/hi-ai'

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