Skip to main content
Glama
by LeGenAI
SETUP-GUIDE-v3.mdβ€’8.81 kB
# πŸš€ Enhanced MCP-MAGMA-Handbook v3.0 μ„€μ • κ°€μ΄λ“œ **LangConnect 방법둠 기반 μ°¨μ„ΈλŒ€ MAGMA MCP μ„œλ²„ μ™„λ²½ 섀정법** ## 🎯 μ„€μ • κ°œμš” v3.0은 κΈ°μ‘΄ v2.x와 μ™„μ „νžˆ λ‹€λ₯Έ μ•„ν‚€ν…μ²˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€: - **Multi-query 검색 μ—”μ§„** (GPT-4o-mini ν™œμš©) - **Hybrid 검색 μ‹œμŠ€ν…œ** (Vector + Keyword) - **Collection 관리** (μ£Όμ œλ³„ λΆ„λ₯˜) - **Conversation μ €μž₯** (λŒ€ν™” λ‚΄μš© 좕적) ## πŸ“‹ 사전 쀀비사항 ### 1. **μ‹œμŠ€ν…œ μš”κ΅¬μ‚¬ν•­** - Node.js β‰₯ 18.0.0 - npm λ˜λŠ” yarn - Supabase 계정 - OpenAI API ν‚€ ### 2. **ν•„μˆ˜ 계정 μ„€μ •** #### **Supabase μ„€μ •** 1. [supabase.com](https://supabase.com) 접속 2. μƒˆ ν”„λ‘œμ νŠΈ 생성 3. **Project URL**κ³Ό **anon public key** 기둝 4. SQL Editorμ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ μ„€μ • (μ•„λž˜ μ°Έμ‘°) #### **OpenAI API ν‚€** 1. [platform.openai.com](https://platform.openai.com) 접속 2. API Keys μ„Ήμ…˜μ—μ„œ μƒˆ ν‚€ 생성 3. `sk-proj-...` ν˜•νƒœμ˜ ν‚€ μ €μž₯ ## πŸ—„οΈ λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ • ### **Step 1: Supabase Extensions ν™œμ„±ν™”** Supabase λŒ€μ‹œλ³΄λ“œ β†’ SQL Editor β†’ μƒˆ 쿼리: ```sql -- ν•„μˆ˜ ν™•μž₯ κΈ°λŠ₯ ν™œμ„±ν™” CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pg_trgm; ``` ### **Step 2: μŠ€ν‚€λ§ˆ 생성** ν”„λ‘œμ νŠΈμ˜ `database-schema.sql` 파일 λ‚΄μš©μ„ Supabase SQL Editor에 λ³΅μ‚¬ν•˜μ—¬ μ‹€ν–‰: ```bash # λ‘œμ»¬μ—μ„œ 파일 확인 cat database-schema.sql ``` ### **Step 3: μŠ€ν‚€λ§ˆ 검증** ```sql -- ν…Œμ΄λΈ” 생성 확인 SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name IN ('collections', 'documents'); -- ν•¨μˆ˜ 생성 확인 SELECT routine_name FROM information_schema.routines WHERE routine_schema = 'public' AND routine_name IN ('match_documents', 'hybrid_search'); ``` ## πŸ“¦ νŒ¨ν‚€μ§€ μ„€μΉ˜ 및 μ„€μ • ### **Method 1: Global μ„€μΉ˜ (ꢌμž₯)** ```bash # μ „μ—­ μ„€μΉ˜ npm install -g mcp-magma-handbook@3.0.0 # μ„€μΉ˜ 확인 mcp-magma-handbook --version ``` ### **Method 2: ν”„λ‘œμ νŠΈ 클둠** ```bash # μ €μž₯μ†Œ 클둠 git clone https://github.com/LeGenAI/mcp-magma-handbook.git cd mcp-magma-handbook # μ˜μ‘΄μ„± μ„€μΉ˜ npm install # λΉŒλ“œ npm run build ``` ## πŸ”§ ν™˜κ²½ λ³€μˆ˜ μ„€μ • ### **Option 1: .env 파일 생성** ```bash # ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— .env 파일 생성 cat > .env << EOF # Required OPENAI_API_KEY=sk-proj-your-actual-key-here SUPABASE_URL=https://your-project-id.supabase.co SUPABASE_KEY=your-anon-public-key-here # Optional (κΈ°λ³Έκ°’ μ‚¬μš© ꢌμž₯) EMBEDDING_MODEL=text-embedding-3-small EMBEDDING_DIMENSIONS=1536 CHAT_MODEL=gpt-4o-mini EOF ``` ### **Option 2: Claude Desktop μ„€μ •μ—μ„œ 직접** ν™˜κ²½ λ³€μˆ˜λ₯Ό Claude Desktop μ„€μ •μ—μ„œ 직접 μ§€μ • (μ•„λž˜ μ°Έμ‘°) ## πŸ–₯️ Claude Desktop 톡합 ### **Step 1: Claude Desktop MCP μ„€μ •** **macOS 경둜**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows 경둜**: `%APPDATA%/Claude/claude_desktop_config.json` ```json { "mcpServers": { "enhanced-magma-handbook": { "command": "npx", "args": ["mcp-magma-handbook@3.0.0"], "env": { "OPENAI_API_KEY": "sk-proj-your-actual-key-here", "SUPABASE_URL": "https://your-project-id.supabase.co", "SUPABASE_KEY": "your-anon-public-key-here" } } } } ``` ### **Step 2: Claude Desktop μž¬μ‹œμž‘** - Claude Desktop μ™„μ „ μ’…λ£Œ - λ‹€μ‹œ μ‹€ν–‰ - μƒˆ λŒ€ν™”μ—μ„œ MCP 도ꡬ 확인 ## πŸ“š λ¬Έμ„œ 인덱싱 ### **MAGMA Handbook μ€€λΉ„** 1. MAGMA 곡식 λ¬Έμ„œ PDF λ‹€μš΄λ‘œλ“œ 2. `data/pdfs/` 폴더에 μ €μž₯ 3. 파일λͺ…: `Handbook.pdf` (ꢌμž₯) ### **인덱싱 μ‹€ν–‰** ```bash # κ³ κΈ‰ μΈλ±μ„œ μ‚¬μš© (ꢌμž₯) npm run index-advanced # κΈ°λ³Έ μΈλ±μ„œ μ‚¬μš© npm run index # 인덱싱 μ§„ν–‰ 상황 λͺ¨λ‹ˆν„°λ§ tail -f indexing.log ``` ### **인덱싱 검증** ```sql -- Supabaseμ—μ„œ λ¬Έμ„œ 수 확인 SELECT c.name, COUNT(d.id) as document_count, AVG(LENGTH(d.content)) as avg_content_length FROM collections c LEFT JOIN documents d ON c.id = d.collection_id GROUP BY c.id, c.name; ``` ## πŸ§ͺ μ„€μ • ν…ŒμŠ€νŠΈ ### **Step 1: μ„œλ²„ 단독 ν…ŒμŠ€νŠΈ** ```bash # 개발 λͺ¨λ“œλ‘œ μ„œλ²„ μ‹€ν–‰ npm run dev # λ‹€λ₯Έ ν„°λ―Έλ„μ—μ„œ ν…ŒμŠ€νŠΈ μ‹€ν–‰ npx tsx test-enhanced-mcp-complete.ts ``` ### **Step 2: Claude Desktop ν…ŒμŠ€νŠΈ** Claude Desktopμ—μ„œ λ‹€μŒ λͺ…령어듀을 ν…ŒμŠ€νŠΈ: ``` 1. 도ꡬ λͺ©λ‘ 확인 μ‚¬μš© κ°€λŠ₯ν•œ MCP 도ꡬλ₯Ό λ³΄μ—¬μ£Όμ„Έμš”. 2. μƒνƒœ 확인 get_health_status 도ꡬλ₯Ό μ‚¬μš©ν•΄μ„œ μ„œλ²„ μƒνƒœλ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”. 3. μ»¬λ ‰μ…˜ 쑰회 list_collections λ„κ΅¬λ‘œ μ‚¬μš© κ°€λŠ₯ν•œ μ»¬λ ‰μ…˜μ„ λ³΄μ—¬μ£Όμ„Έμš”. 4. 검색 ν…ŒμŠ€νŠΈ search_magma 도ꡬλ₯Ό μ‚¬μš©ν•΄μ„œ "polynomial ring" 을 κ²€μƒ‰ν•΄μ£Όμ„Έμš”. ``` ## πŸ”§ κ³ κΈ‰ μ„€μ • ### **Multi-Query μ„€μ • μ΅œμ ν™”** ```typescript // enhanced-mcp-server.tsμ—μ„œ μˆ˜μ • κ°€λŠ₯ const multiQueryConfig = { maxQueries: 5, // μ΅œλŒ€ 쿼리 수 temperature: 0, // GPT μ°½μ˜μ„± (0 = 정확도 μš°μ„ ) fallbackEnabled: true // multi-query μ‹€νŒ¨ μ‹œ 단일 쿼리둜 μ „ν™˜ }; ``` ### **Hybrid Search κ°€μ€‘μΉ˜ μ‘°μ •** ```typescript // 검색 방식별 κ°€μ€‘μΉ˜ (합계 = 1.0) const searchWeights = { semantic: 0.7, // 의미 검색 70% keyword: 0.3 // ν‚€μ›Œλ“œ 검색 30% }; ``` ### **Performance Tuning** ```sql -- Supabaseμ—μ„œ 인덱슀 μ΅œμ ν™” REINDEX INDEX idx_documents_embedding; VACUUM ANALYZE documents; -- 벑터 검색 μ΅œμ ν™” (lists κ°’ μ‘°μ •) DROP INDEX IF EXISTS idx_documents_embedding; CREATE INDEX idx_documents_embedding ON documents USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100); -- λ¬Έμ„œ μˆ˜μ— 따라 μ‘°μ • ``` ## 🚨 문제 ν•΄κ²° ### **일반적인 λ¬Έμ œλ“€** #### **1. OpenAI API ν‚€ 였λ₯˜** ``` Error: The OPENAI_API_KEY environment variable is missing ``` **ν•΄κ²°**: - API ν‚€ ν˜•μ‹ 확인 (`sk-proj-` μ‹œμž‘) - ν™˜κ²½ λ³€μˆ˜ μ„€μ • μž¬ν™•μΈ - Claude Desktop μž¬μ‹œμž‘ #### **2. Supabase μ—°κ²° 였λ₯˜** ``` Error: Invalid Supabase URL or Key ``` **ν•΄κ²°**: - Project URL ν˜•μ‹: `https://project-id.supabase.co` - anon public key μ‚¬μš© (service_role μ•„λ‹˜) - Supabase ν”„λ‘œμ νŠΈ ν™œμ„±ν™” μƒνƒœ 확인 #### **3. Vector 검색 μ‹€νŒ¨** ``` Error: relation "documents" does not exist ``` **ν•΄κ²°**: - `database-schema.sql` μž¬μ‹€ν–‰ - Extensions μ„€μΉ˜ 확인 - ν…Œμ΄λΈ” κΆŒν•œ 확인 #### **4. Multi-query μ‹€νŒ¨** ``` Error: Failed to generate queries ``` **ν•΄κ²°**: - OpenAI API ν¬λ ˆλ”§ 확인 - λ„€νŠΈμ›Œν¬ μ—°κ²° 확인 - Fallback λͺ¨λ“œλ‘œ μžλ™ μ „ν™˜λ¨ ### **디버깅 도ꡬ** #### **둜그 레벨 μ„€μ •** ```bash # 상세 둜그 ν™œμ„±ν™” DEBUG=* npm run dev ``` #### **λ°μ΄ν„°λ² μ΄μŠ€ μƒνƒœ 확인** ```sql -- μ»¬λ ‰μ…˜ 톡계 SELECT * FROM collection_stats; -- 졜근 검색 μ„±λŠ₯ EXPLAIN ANALYZE SELECT * FROM match_documents( array_to_vector(array_fill(0, array[1536])), 5 ); ``` ## πŸ“Š μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§ ### **검색 μ„±λŠ₯ 벀치마크** ```bash # ν’ˆμ§ˆ 벀치마크 μ‹€ν–‰ npm run test-quality # κ²°κ³Ό μ˜ˆμ‹œ: # Average Relevance Score: 92.3% # Multi-query Improvement: +7.8% # Hybrid Search Accuracy: 94.1% ``` ### **μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ λͺ¨λ‹ˆν„°λ§** ```bash # λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ ps aux | grep node # λ„€νŠΈμ›Œν¬ μ‚¬μš©λŸ‰ netstat -i # λ””μŠ€ν¬ I/O iostat -x 1 ``` ## πŸ”„ μ—…κ·Έλ ˆμ΄λ“œ κ°€μ΄λ“œ ### **v2.x β†’ v3.0 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜** #### **1. λ°±μ—… 생성** ```sql -- κΈ°μ‘΄ documents ν…Œμ΄λΈ” λ°±μ—… CREATE TABLE documents_backup AS SELECT * FROM documents; ``` #### **2. μŠ€ν‚€λ§ˆ μ—…κ·Έλ ˆμ΄λ“œ** ```bash # μƒˆ μŠ€ν‚€λ§ˆ 적용 psql -f database-schema.sql ``` #### **3. μ„€μ • 파일 μ—…λ°μ΄νŠΈ** ```bash # κΈ°μ‘΄ μ„€μ • λ°±μ—… cp ~/.config/claude/claude_desktop_config.json claude_config_backup.json # μƒˆ μ„€μ • 적용 # (μœ„μ˜ Claude Desktop μ„€μ • μ°Έμ‘°) ``` #### **4. ν˜Έν™˜μ„± 확인** ```bash # ν…ŒμŠ€νŠΈ μ‹€ν–‰μœΌλ‘œ λͺ¨λ“  κΈ°λŠ₯ 검증 npm run test-quality ``` ## βœ… μ„€μ • μ™„λ£Œ 체크리슀트 - [ ] Node.js β‰₯ 18.0.0 μ„€μΉ˜λ¨ - [ ] Supabase ν”„λ‘œμ νŠΈ 생성 및 섀정됨 - [ ] OpenAI API ν‚€ λ°œκΈ‰λ¨ - [ ] `database-schema.sql` 싀행됨 - [ ] νŒ¨ν‚€μ§€ μ„€μΉ˜λ¨ (`npm install -g mcp-magma-handbook@3.0.0`) - [ ] ν™˜κ²½ λ³€μˆ˜ 섀정됨 - [ ] Claude Desktop μ„€μ • μ—…λ°μ΄νŠΈλ¨ - [ ] MAGMA λ¬Έμ„œ 인덱싱 μ™„λ£Œλ¨ - [ ] ν…ŒμŠ€νŠΈ 톡과됨 - [ ] κΈ°λ³Έ 검색 λ™μž‘ 확인됨 ## πŸ“ž μΆ”κ°€ 지원 μ„€μ • 쀑 λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄: 1. **GitHub Issues**: [문제 μ‹ κ³ ](https://github.com/LeGenAI/mcp-magma-handbook/issues) 2. **이메일**: baegjaehyeon@gmail.com 3. **λ¬Έμ„œ**: [상세 κ°€μ΄λ“œ](https://github.com/LeGenAI/mcp-magma-handbook/blob/main/README-v3.md) --- **πŸŽ‰ μ„€μ • μ™„λ£Œ! 이제 Enhanced MCP v3.0의 κ°•λ ₯ν•œ κΈ°λŠ₯듀을 마음껏 ν™œμš©ν•˜μ„Έμš”!** πŸš€

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/LeGenAI/mcp-magma-handbook'

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