Hi-AI
Hi-AI is a Model Context Protocol-based AI development tool that enhances productivity through natural language interaction and seamless AI collaboration. Key capabilities include:
π£οΈ Natural Language Command Execution: Automatically detects keywords (Korean/English) to execute appropriate tools without explicit commands
π§ Context-Aware Memory Management: Store, retrieve, search, and prioritize long-term memories with automatic context saving and session restoration
π Semantic Code Analysis: Performs deep code analysis using AST for TypeScript, JavaScript, JSX, and TSX projects
π Code Quality Analysis: Evaluates complexity, coupling, and cohesion metrics with real-time improvement suggestions
π§© Cognitive Problem Solving: Break down complex problems into structured steps with detailed step-by-step analyses
π― Prompt Engineering: Transform vague requests into specific prompts and analyze prompt quality
π Planning & Documentation: Generate PRDs, user stories, and development roadmaps
π Browser & Network Tools: Monitor console logs and inspect network requests for web applications
π Time Utilities: Manage time-based queries with specified formats and timezones
π οΈ Modular Architecture: Supports custom tool integration and enterprise-grade scalability
π Security & Privacy: Ensures local execution and session isolation for secure data handling
Provides integration with GitHub for issue reporting and project collaboration.
Available as an npm package for easy installation and integration with Node.js projects.
Enables real browser interactions for web development tasks through Puppeteer, allowing for console log monitoring and network request tracking.
Mentioned as a use case example, suggesting specialized support for React development workflows.
Built with TypeScript to ensure type safety, providing a foundation for the MCP's modular tool architecture.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hi-AIanalyze the complexity of my main.js file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hi-AI
Model Context Protocol κΈ°λ° AI κ°λ° μ΄μμ€ν΄νΈ
TypeScript + Python μ§μ Β· 35κ° μ λ¬Έ λꡬ Β· μ§μ κ·Έλν λ©λͺ¨λ¦¬ Β· μΈμ 컨ν μ€νΈ μλ μ£Όμ
λͺ©μ°¨
Related MCP server: Magic Component Platform
κ°μ
Hi-AIλ Model Context Protocol (MCP) νμ€μ ꡬνν AI κ°λ° μ΄μμ€ν΄νΈμ λλ€. μμ°μ΄ κΈ°λ° ν€μλ μΈμμ ν΅ν΄ 35κ°μ μ λ¬Ένλ λꡬλ₯Ό μ 곡νλ©°, κ°λ°μκ° λ³΅μ‘ν μμ μ μ§κ΄μ μΌλ‘ μνν μ μλλ‘ λμ΅λλ€.
ν΅μ¬ κ°μΉ
μμ°μ΄ κΈ°λ°: νκ΅μ΄/μμ΄ ν€μλλ‘ λꡬλ₯Ό μλμΌλ‘ μ€ν
μ§μ κ·Έλν λ©λͺ¨λ¦¬: λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό κ·Έλνλ‘ κ΅¬μ±νμ¬ μ°κ΄ μ 보 νμ
λ€μ€ μΈμ΄ μ§μ: TypeScript, JavaScript, Python μ½λ λΆμ
μμ‘΄μ± λΆμ: μ½λ κ° μμ‘΄ κ΄κ³ μκ°ν λ° μν μ°Έμ‘° κ°μ§
μν°νλΌμ΄μ¦ νμ§: 100% ν μ€νΈ 컀λ²λ¦¬μ§ λ° μ격ν νμ μμ€ν
μ£Όμ κΈ°λ₯
1. μ§μ κ·Έλν λ©λͺ¨λ¦¬ μμ€ν
λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό κ·Έλνλ‘ κ΅¬μ±νμ¬ μ°κ΄ μ 보λ₯Ό νμνλ 11κ°μ λꡬ:
μΈμ 컨ν μ€νΈ μλ μ£Όμ : μΈμ μμ μ μ΄μ λ©λͺ¨λ¦¬μ μ§μ κ·Έλνλ₯Ό μλμΌλ‘ λ‘λ (v2.1 μ κ·)
κ΄κ³ μ°κ²°: λ©λͺ¨λ¦¬ κ° μλ―Έλ‘ μ κ΄κ³ μ€μ (related_to, depends_on, implements λ±)
κ·Έλν νμ: BFS/DFS μκ³ λ¦¬μ¦μ ν΅ν μ°κ΄ λ©λͺ¨λ¦¬ νμ
λ©ν° μ λ΅ κ²μ: 5κ°μ§ κ²μ μ λ΅ μ§μ (keyword, graph_traversal, temporal, priority, context_aware)
νμλΌμΈ: μκ°μ λ©λͺ¨λ¦¬ νμ€ν 리 μκ°ν
μ£Όμ λꡬ:
get_session_context- π μΈμ μμ μ 컨ν μ€νΈ μλ λ‘λ (v2.1 μ κ·)save_memory- μ₯κΈ° λ©λͺ¨λ¦¬μ μ 보 μ μ₯recall_memory- μ μ₯λ μ 보 κ²μlink_memories- λ©λͺ¨λ¦¬ κ° κ΄κ³ μ°κ²°get_memory_graph- μ§μ κ·Έλν μ‘°νsearch_memories_advanced- λ©ν° μ λ΅ κ²μcreate_memory_timeline- νμλΌμΈ μμ±prioritize_memory- λ©λͺ¨λ¦¬ μ°μ μμ κ΄λ¦¬
2. μλ§¨ν± μ½λ λΆμ
AST κΈ°λ° μ½λ λΆμ λ° νμ λꡬ:
μ¬λ³Ό κ²μ: νλ‘μ νΈ μ 체μμ ν¨μ, ν΄λμ€, λ³μ μμΉ νμ
μ°Έμ‘° μΆμ : νΉμ μ¬λ³Όμ λͺ¨λ μ¬μ©μ² μΆμ
μμ‘΄μ± κ·Έλν: μ½λ κ° μμ‘΄ κ΄κ³ μκ°ν (v2.0 μ κ·)
μν μ°Έμ‘° κ°μ§: μν μμ‘΄μ± μλ νμ§ (v2.0 μ κ·)
λ€μ€ μΈμ΄: TypeScript, JavaScript, Python μ§μ
μ£Όμ λꡬ:
find_symbol- μ¬λ³Ό μ μ κ²μfind_references- μ¬λ³Ό μ°Έμ‘° μ°ΎκΈ°analyze_dependency_graph- μμ‘΄μ± κ·Έλν λΆμ (v2.0 μ κ·)
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- λ¨κ³λ³ λΆμformat_as_plan- κ³ν νμν
6. ν둬ννΈ μμ§λμ΄λ§
ν둬ννΈ νμ§ ν₯μ λ° μ΅μ ν:
μλ κ°ν: λͺ¨νΈν μμ²μ ꡬ체μ μΌλ‘ λ³ν
νμ§ νκ°: λͺ νμ±, ꡬ체μ±, λ§₯λ½μ± μ μν
Gemini μ΅μ ν: Google Gemini API ν둬νν μ λ΅
μ£Όμ λꡬ:
enhance_prompt- ν둬ννΈ κ°νanalyze_prompt- ν둬ννΈ νμ§ λΆμenhance_prompt_gemini- Gemini ν둬νν μ λ΅
7. μΆλ‘ νλ μμν¬
볡μ‘ν λ¬Έμ μ 체κ³μ λΆμ:
9λ¨κ³ μΆλ‘ : λ¬Έμ λΆν΄, κ°μ€ νμ, μν νκ°
λ Όλ¦¬μ κ²μ¦: μμ μ±κ³Ό μ λ°μ± 보μ₯
μ£Όμ λꡬ:
apply_reasoning_framework- 9λ¨κ³ μΆλ‘ νλ μμν¬
8. μ¬μ© λΆμ (v2.0 μ κ·)
λꡬ μ¬μ© ν΅κ³ λ° λΆμ:
λ©λͺ¨λ¦¬ ν΅κ³: μΉ΄ν κ³ λ¦¬λ³ λΆν¬, μκ°λ³ νλ
κ·Έλν λΆμ: μ°κ²° ν΅κ³, ν΄λ¬μ€ν° μ 보
μ£Όμ λꡬ:
get_usage_analytics- μ¬μ© λΆμ μ‘°ν
9. UI ν리뷰 & μκ°
preview_ui_ascii- ASCII UI ν리뷰get_current_time- νμ¬ μκ° μ‘°ν
Hi-GCloud μ°λ
Hi-AIλ hi-gcloud MCPμ ν¨κ» μ¬μ©νλ©΄ κ°λ ₯ν GCP μ΄μ + μ½λ μμ μν¬νλ‘μ°λ₯Ό μ 곡ν©λλ€.
μ°λ λ°©μ
hi-gcloudμμ μλ¬λ₯Ό λ°κ²¬νλ©΄ hi-ai λꡬλ₯Ό μλμΌλ‘ μΆμ²ν©λλ€:
π Cloud Run λ‘κ·Έ: my-api
π΄ 3κ°μ μλ¬κ° λ°κ²¬λμμ΅λλ€.
π‘ hi-ai μ°λ κ°λ₯: μλ¬ λΆμμ΄ νμνλ©΄ analyze_problem λκ΅¬λ‘ μμΈμ λΆμνκ³ ,
κ΄λ ¨ μ½λλ₯Ό μ°Ύμ μμ λ°©μμ μ μν μ μμ΅λλ€.μν¬νλ‘μ° μμ
User: "λ°°ν¬κ° μ€ν¨νμ΄"
[hi-gcloud]
β gcp_run_logsλ‘ μλ¬ λ‘κ·Έ μ‘°ν
β μλ¬ 3건 λ°κ²¬, hi-ai μ°λ ννΈ μ 곡
[hi-ai μλ μ°λ]
β analyze_problemμΌλ‘ μλ¬ μμΈ λΆμ
β find_symbolλ‘ κ΄λ ¨ μ½λ μμΉ νμ
β suggest_improvementsλ‘ μμ λ°©μ μ μ
β save_memoryλ‘ ν΄κ²° λ°©λ² μ μ₯ (μ¬λ° λ°©μ§)μ€μΉ
λ MCPλ₯Ό ν¨κ» μ€μΉνλ©΄ μλμΌλ‘ μ°λλ©λλ€:
{
"mcpServers": {
"hi-ai": {
"command": "npx",
"args": ["-y", "@su-record/hi-ai"]
},
"hi-gcloud": {
"command": "npx",
"args": ["-y", "@polin-go/hi-gcloud"]
}
}
}μ°λ λꡬ λ§€ν
hi-gcloud μν© | hi-ai μΆμ² λꡬ |
μλ¬ λ‘κ·Έ λ°κ²¬ |
|
λ°°ν¬ μ€ν¨ |
|
μ±λ₯ λ¬Έμ |
|
λΉμ© μ¦κ° |
|
v2.1.0 μ λ°μ΄νΈ
μ£Όμ λ³κ²½μ¬ν
Hi-AI v2.1.0μ μΈμ 컨ν μ€νΈ μλ μ£Όμ κΈ°λ₯μ λμ ν λ§μ΄λ 릴리μ€μ λλ€.
μ κ· κΈ°λ₯
κΈ°λ₯ | μ€λͺ |
| μΈμ μμ μ μ΄μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, νμλΌμΈμ ν λ²μ μ‘°ν |
| ν΄λΌμ΄μΈνΈκ° 리μμ€λ₯Ό μ½μ λ μλμΌλ‘ 컨ν μ€νΈ μ 곡 |
λꡬ description κ°μ | LLMμ΄ μΈμ μμ μ μλμΌλ‘ 컨ν μ€νΈλ₯Ό νμ νλλ‘ μ λ |
λ³κ²½ μμ½
νλͺ© | v2.0.0 | v2.1.0 | λ³ν |
λꡬ κ°μ | 34κ° | 35κ° | +1κ° |
리μμ€ κ°μ | 3κ° | 4κ° | +1κ° |
μΈμ 컨ν μ€νΈ | μλ | μλ κΆμ₯ | κ°μ |
v2.0.0 μ λ°μ΄νΈ
μ£Όμ λ³κ²½μ¬ν
Hi-AI v2.0.0μ μ§μ κ·Έλν κΈ°λ° λ©λͺ¨λ¦¬ μμ€ν κ³Ό κ³ κΈ μ½λ λΆμ κΈ°λ₯μ λμ ν λ©μ΄μ 릴리μ€μ λλ€.
μ κ· κΈ°λ₯ (6κ° λꡬ)
λꡬ | μ€λͺ |
| λ©λͺ¨λ¦¬ κ° κ΄κ³ μ°κ²° (μ§μ κ·Έλν) |
| μ§μ κ·Έλν μ‘°ν/μκ°ν (Mermaid λ€μ΄μ΄κ·Έλ¨ μ§μ) |
| 5κ°μ§ μ λ΅μ λ©ν° κ²μ |
| μκ°μ λ©λͺ¨λ¦¬ νμλΌμΈ |
| μ½λ μμ‘΄μ± λΆμ λ° μν μ°Έμ‘° κ°μ§ |
| μ¬μ© ν΅κ³/λΆμ |
μν€ν μ² κ°μ
index.ts: 37κ° switch case β λμ λμ€ν¨μΉ ν¨ν΄
MemoryManager: μ§μ κ·Έλν κΈ°λ₯ μΆκ° (395μ€ β 823μ€)
μ½λ μ΅μ ν: λΆνμν μμ‘΄μ± μ κ±° (puppeteer-core)
μ€μΉ
μμ€ν μꡬμ¬ν
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-aiSmithery νλ«νΌ
# μν΄λ¦ μ€μΉ
https://smithery.ai/server/@su-record/hi-aiMCP ν΄λΌμ΄μΈνΈ μ€μ
Claude Desktop λλ λ€λ₯Έ MCP ν΄λΌμ΄μΈνΈμ μ€μ νμΌμ μΆκ°:
{
"mcpServers": {
"hi-ai": {
"command": "hi-ai",
"args": [],
"env": {}
}
}
}λꡬ μΉ΄νλ‘κ·Έ
μ 체 λꡬ λͺ©λ‘ (35κ°)
μΉ΄ν κ³ λ¦¬ | λꡬ μ | λꡬ λͺ©λ‘ |
λ©λͺ¨λ¦¬ - κΈ°λ³Έ | 6 | save_memory, recall_memory, list_memories, delete_memory, update_memory, prioritize_memory |
λ©λͺ¨λ¦¬ - κ·Έλν | 4 | link_memories, get_memory_graph, search_memories_advanced, create_memory_timeline |
λ©λͺ¨λ¦¬ - μΈμ | 1 | get_session_context π |
μ½λ λΆμ | 3 | find_symbol, find_references, analyze_dependency_graph |
μ¬κ³ | 4 | create_thinking_chain, analyze_problem, step_by_step_analysis, 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 |
ν둬ννΈ | 3 | enhance_prompt, analyze_prompt, enhance_prompt_gemini |
μΆλ‘ | 1 | apply_reasoning_framework |
λΆμ | 1 | get_usage_analytics |
UI | 1 | preview_ui_ascii |
μκ° | 1 | get_current_time |
ν€μλ λ§€ν μμ
λ©λͺ¨λ¦¬ λꡬ
λꡬ | νκ΅μ΄ | μμ΄ |
save_memory | κΈ°μ΅ν΄, μ μ₯ν΄ | remember, save this |
recall_memory | λ μ¬λ €, κΈ°μ΅λ | recall, remind me |
get_session_context | μΈμ μμ, 컨ν μ€νΈ | session start, context |
link_memories | μ°κ²°ν΄, κ΄κ³ | link, connect |
get_memory_graph | κ·Έλν, κ΄κ³λ | graph, relations |
search_memories_advanced | κ³ κΈ κ²μ, μ°Ύμ | advanced search, find |
μ½λ λΆμ λꡬ
λꡬ | νκ΅μ΄ | μμ΄ |
find_symbol | ν¨μ μ°Ύμ, ν΄λμ€ μ΄λ | find function, where is |
analyze_dependency_graph | μμ‘΄μ±, κ΄κ³ | dependency, relations |
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 v2.1.0]
end
subgraph "Core Libraries"
C1[MemoryManager + Graph]
C2[ContextCompressor]
C3[ProjectCache]
C4[PythonParser]
end
subgraph "Tool Categories"
D1[Memory Basic x6]
D2[Memory Graph x4]
D2b[Memory Session x1]
D3[Code Analysis x3]
D4[Thinking Tools x4]
D5[Quality Tools x6]
D6[Planning Tools x4]
D7[Prompt Tools x3]
D8[Reasoning x1]
D9[Analytics x1]
D10[UI/Time x2]
end
subgraph "Data Layer"
E1[(SQLite Database)]
E2[Project Files]
end
A <--> B
B --> C1 & C2 & C3 & C4
B --> D1 & D2 & D2b & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10
C1 --> E1
C3 --> E2
C4 --> E2
D1 --> C1 & C2
D2 --> C1
D3 --> C3 & C4
D5 --> C4
D9 --> C1ν΅μ¬ μ»΄ν¬λνΈ
MemoryManager (v2.0 νμ₯)
μν : μꡬ λ©λͺ¨λ¦¬ μ μ₯μ λ° μ§μ κ·Έλν κ΄λ¦¬
κΈ°μ : SQLite, better-sqlite3
κΈ°λ₯: CRUD, κ²μ, μ°μ μμ, κ·Έλν κ΄κ³, BFS/DFS νμ
μ΅μ ν: WAL λͺ¨λ, μΈλ±μ±, Prepared Statements
ContextCompressor
μν : 컨ν μ€νΈ μμΆ κ΄λ¦¬
μκ³ λ¦¬μ¦: μ°μ μμ κΈ°λ° μμΆ
κΈ°λ₯: μ€μλμ λ°λ₯Έ μ νμ 보쑴
ProjectCache
μν : ts-morph νλ‘μ νΈ μΊμ±
μ λ΅: LRU μκ³ λ¦¬μ¦
κΈ°λ₯: λ°λ³΅ λΆμ μ±λ₯ ν₯μ
μ ν: 100MB/νλ‘μ νΈ, 200MB μ 체
PythonParser
μν : Python μ½λ AST λΆμ
λ°©λ²: subprocess μ€ν
κΈ°λ₯: μ¬λ³Ό μΆμΆ, 볡μ‘λ κ³μ°
μμ : νμμμ, μλ μ 리
λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ (v2.0)
-- memories ν
μ΄λΈ
CREATE TABLE memories (
key TEXT PRIMARY KEY,
value TEXT NOT NULL,
category TEXT NOT NULL DEFAULT 'general',
timestamp TEXT NOT NULL,
lastAccessed TEXT NOT NULL,
priority INTEGER DEFAULT 0
);
-- memory_relations ν
μ΄λΈ (v2.0 μ κ·)
CREATE TABLE memory_relations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sourceKey TEXT NOT NULL,
targetKey TEXT NOT NULL,
relationType TEXT NOT NULL,
strength REAL DEFAULT 1.0,
metadata TEXT,
timestamp TEXT NOT NULL,
UNIQUE(sourceKey, targetKey, relationType)
);μ±λ₯
μ£Όμ μ΅μ ν
νλ‘μ νΈ μΊμ±
LRU μΊμλ₯Ό ν΅ν λ°λ³΅ λΆμ μ±λ₯ ν₯μ
5λΆ TTLλ‘ μ΅μ μν μ μ§
λ©λͺ¨λ¦¬ μ νμ ν΅ν 리μμ€ κ΄λ¦¬
λ©λͺ¨λ¦¬ μμ
SQLite νΈλμμ μΌλ‘ λ°°μΉ μμ μ΅μ ν
μκ° λ³΅μ‘λ κ°μ : O(nΒ²) β O(n)
μΈλ±μ±μ ν΅ν λΉ λ₯Έ μ‘°ν
κ·Έλν νμ (v2.0)
BFS/DFS μκ³ λ¦¬μ¦μΌλ‘ ν¨μ¨μ νμ
Union-Findλ‘ ν΄λ¬μ€ν° κ°μ§
κ²½λ‘ μ°ΎκΈ° μ΅μ ν
κ°λ° κ°μ΄λ
νκ²½ μ€μ
# 리ν¬μ§ν 리 ν΄λ‘
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 νμ
μ λꡬ μΆκ°
src/tools/category/λλ ν 리μ νμΌ μμ±ToolDefinitionμΈν°νμ΄μ€ ꡬνsrc/index.tsμtoolHandlersμ λ±λ‘tests/unit/λλ ν 리μ ν μ€νΈ μμ±README μ λ°μ΄νΈ
κΈ°μ¬μ
νΉλ³ κ°μ¬
Smithery - MCP μλ² λ°°ν¬ λ° μν΄λ¦ μ€μΉ νλ«νΌ μ 곡
λΌμ΄μ μ€
MIT License - μμ λ‘κ² μ¬μ©, μμ , λ°°ν¬ κ°λ₯
μΈμ©
μ΄ νλ‘μ νΈλ₯Ό μ°κ΅¬λ μμ μ μ©λλ‘ μ¬μ©νμ€ κ²½μ°:
@software{hi-ai2025,
author = {Su},
title = {Hi-AI: Knowledge Graph-Based MCP Server for AI-Assisted Development},
year = {2025},
version = {2.1.0},
url = {https://github.com/su-record/hi-ai}
}Star History
Hi-AI v2.1.0
μ§μ κ·Έλν λ©λͺ¨λ¦¬ Β· μΈμ 컨ν μ€νΈ μλ μ£Όμ Β· μμ‘΄μ± λΆμ Β· 35κ° μ λ¬Έ λꡬ
Made with β€οΈ by Su
π Homepage Β· π Documentation Β· π Issues Β· π¬ Discussions
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/su-record/hi-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server