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
# ๐ 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์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ๋ง์๊ป ํ์ฉํ์ธ์!** ๐