README-v3.mdโข8.67 kB
# ๐ Enhanced MCP-MAGMA-Handbook v3.0
**LangConnect ๋ฐฉ๋ฒ๋ก ์ ๋์
ํ ์ฐจ์ธ๋ MAGMA ์ ์ฉ MCP ์๋ฒ**
[](https://github.com/LeGenAI/mcp-magma-handbook)
[](LICENSE)
[](https://nodejs.org/)
> ๐ฏ **๋ฉ์ค ์ ๋ฐฐ๋๋ค์ ์ํ ์์ ํ ์๋ก์์ง MCP ์๋ฒ**
> Multi-query ๊ฒ์, Hybrid ๊ฒ์, Collection ๊ด๋ฆฌ, Conversation ์ ์ฅ ๋ฑ ํ์ ์ ์ธ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค!
## โจ v3.0์ ํ์ ์ ๊ธฐ๋ฅ๋ค
### ๐ง **Multi-Query Search Engine**
```javascript
// ํ๋์ ์ง๋ฌธ์ 3-5๊ฐ์ ๋ค์ํ ๊ด์ ์ผ๋ก ํ์ฅ
"MAGMA์์ ๋คํญ์ ํ์ ๋ง๋๋ ๋ฐฉ๋ฒ"
โ GPT-4o-mini๊ฐ ์๋ ํ์ฅ โ
[
"How to create polynomial rings in MAGMA?",
"PolynomialRing function usage in MAGMA",
"Defining polynomial rings over finite fields",
"MAGMA syntax for polynomial ring construction",
"Ring theory implementation in MAGMA"
]
```
### ๐ **Hybrid Search System**
- **Semantic Search**: Vector ์ ์ฌ๋ ๊ธฐ๋ฐ ์๋ฏธ ๊ฒ์
- **Keyword Search**: PostgreSQL full-text search
- **Hybrid Search**: ๋ ๋ฐฉ์์ ์ต์ ๋น์จ๋ก ๊ฒฐํฉ (๊ธฐ๋ณธ๊ฐ: 70% semantic + 30% keyword)
### ๐ **Collection Management**
```bash
# ๊ธฐ๋ณธ ์ ๊ณต ์ปฌ๋ ์
๋ค
๐ MAGMA Handbook # ๊ณต์ ๋ฌธ์
๐ Personal Notes # ๊ฐ์ธ ๋
ธํธ
๐ Research Papers # ๋
ผ๋ฌธ ์๋ฃ
๐ป Code Examples # ์ฝ๋ ์ค๋ํซ
```
### ๐ฌ **Conversation Storage**
AI์์ ์ ์ฉํ ๋ํ๋ฅผ ์๋์ผ๋ก ์ง์๋ฒ ์ด์ค์ ์ ์ฅํ์ฌ ๋์ค์ ๊ฒ์ ๊ฐ๋ฅ!
## ๐ ๋น ๋ฅธ ์์ ๊ฐ์ด๋
### 1. ์ค์น
```bash
npm install -g mcp-magma-handbook@3.0.0
```
### 2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์
```sql
-- Supabase SQL Editor์์ ์คํ
-- database-schema.sql ํ์ผ ๋ด์ฉ ๋ณต์ฌ & ์คํ
```
### 3. Claude Desktop ์ค์
```json
{
"mcpServers": {
"enhanced-magma-handbook": {
"command": "npx",
"args": ["mcp-magma-handbook@3.0.0"],
"env": {
"OPENAI_API_KEY": "sk-proj-your-key-here",
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_KEY": "your-anon-key"
}
}
}
}
```
### 4. ๋ฌธ์ ์ธ๋ฑ์ฑ
```bash
# MAGMA handbook PDF๋ฅผ data/pdfs/ ํด๋์ ๋ฃ๊ณ
npm run index-advanced
```
## ๐ฏ ์ฃผ์ ์ฌ์ฉ๋ฒ
### **๐ Enhanced Search**
```javascript
// ๊ธฐ๋ณธ ์ฌ์ฉ (๊ถ์ฅ)
search_magma({
query: "Galois field์์ primitive element ์ฐพ๊ธฐ",
// ์๋์ผ๋ก multi-query + hybrid search ์ ์ฉ
})
// ๊ณ ๊ธ ์ฌ์ฉ
search_magma({
query: "How to factor polynomials in MAGMA?",
search_type: "semantic", // semantic|keyword|hybrid
use_multi_query: true, // multi-query ์ฌ์ฉ ์ฌ๋ถ
limit: 5, // ๊ฒฐ๊ณผ ๊ฐ์
collection_id: "magma-handbook" // ํน์ ์ปฌ๋ ์
์์๋ง ๊ฒ์
})
```
### **๐ Collection Management**
```javascript
// ์ปฌ๋ ์
๋ชฉ๋ก ํ์ธ
list_collections()
// ์ ์ปฌ๋ ์
์์ฑ (์: Coding Theory ์ ์ฉ)
create_collection({
name: "Coding Theory",
description: "Error correcting codes and cryptography materials"
})
// ๋ฌธ์ ์ถ๊ฐ
add_document({
collection_id: "coding-theory-uuid",
content: "BCH codes in MAGMA...",
metadata: { source: "research_paper", tags: ["BCH", "codes"] }
})
```
### **๐ฌ Conversation Storage**
```javascript
// ์ ์ฉํ ๋ํ ์ ์ฅ
save_conversation({
collection_id: "personal-notes",
conversation: `
User: MAGMA์์ Hamming (7,4,3) ์ฝ๋ ๋ง๋๋ ๋ฒ?
Assistant: C := HammingCode(GF(2), 3);
G := GeneratorMatrix(C);
์ด๋ ๊ฒ ํ์๋ฉด ๋ฉ๋๋ค...
`,
title: "Hamming Code Tutorial"
})
```
## ๐ ์ฑ๋ฅ ๋น๊ต
| ๊ธฐ๋ฅ | v2.2.0 | v3.0.0 | ๊ฐ์ ๋ |
|------|--------|--------|--------|
| ๊ฒ์ ์ ํ๋ | 84.7% | **~92%** | +7.3% |
| ์ฟผ๋ฆฌ ํ์ฅ | 1๊ฐ (์๋ณธ) | **3-5๊ฐ** | 3-5๋ฐฐ |
| ๊ฒ์ ๋ฐฉ์ | 1๊ฐ | **3๊ฐ** | 3๋ฐฐ |
| ์ปฌ๋ ์
| 1๊ฐ | **๋ฌด์ ํ** | โ |
| ๋ํ ์ ์ฅ | โ | **โ
** | New |
## ๐ง ๊ณ ๊ธ ์ค์
### **Environment Variables**
```bash
# Required
OPENAI_API_KEY=sk-proj-your-key
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-key
# Optional (๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ ๊ถ์ฅ)
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSIONS=1536
CHAT_MODEL=gpt-4o-mini
```
### **Search Configuration**
```typescript
// ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๊ฐ์ค์น ์กฐ์
const semanticWeight = 0.7; // ์๋ฏธ ๊ฒ์ 70%
const keywordWeight = 0.3; // ํค์๋ ๊ฒ์ 30%
```
## ๐ ๋ฉ์ค ์ฌ์ฉ ์๋๋ฆฌ์ค
### **์๋๋ฆฌ์ค 1: ๋
ผ๋ฌธ ์์ฑ**
```javascript
// 1. ๋
ผ๋ฌธ ๊ด๋ จ ์ปฌ๋ ์
์์ฑ
create_collection({
name: "My Research",
description: "๋ฐ์ฌ ๋
ผ๋ฌธ ๊ด๋ จ ์๋ฃ"
});
// 2. ๊ด๋ จ ์๋ฃ ๊ฒ์ ๋ฐ ์ ์ฅ
search_magma({
query: "algebraic geometry codes construction",
use_multi_query: true
});
// 3. ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ์ปฌ๋ ์
์ ์ ์ฅ
save_conversation({
collection_id: "my-research-uuid",
conversation: "๊ฒ์ ๊ฒฐ๊ณผ์ ๊ด๋ จ ๋
ผ์...",
title: "AG Codes Literature Review"
});
```
### **์๋๋ฆฌ์ค 2: ์คํฐ๋ ๊ทธ๋ฃน**
```javascript
// ๊ฐ ์ฃผ์ ๋ณ ์ปฌ๋ ์
์ผ๋ก ์ฒด๊ณ์ ๊ด๋ฆฌ
create_collection({ name: "Linear Algebra" });
create_collection({ name: "Number Theory" });
create_collection({ name: "Cryptography" });
// ์คํฐ๋ ๋ด์ฉ ์ ์ฅ
save_conversation({
collection_id: "linear-algebra-uuid",
conversation: "์ค๋ ์คํฐ๋: ์ ํ์ฒด์์์ ์ ํ๋ณํ...",
title: "Week 3 Study Notes"
});
```
### **์๋๋ฆฌ์ค 3: ์ฝ๋ฉ ์์
**
```javascript
// ์ค์ ์ฝ๋ฉ ์ค MAGMA ํจ์ ๊ฒ์
search_magma({
query: "matrix rank computation over finite field",
search_type: "hybrid",
limit: 3
});
// ์๋ํ๋ ์ฝ๋ ์ค๋ํซ ์ ์ฅ
add_document({
collection_id: "code-examples-uuid",
content: `
// ์ ํ์ฒด์์ ํ๋ ฌ rank ๊ณ์ฐ
F := GF(7);
M := Matrix(F, 3, 3, [1,2,3, 4,5,6, 7,1,2]);
r := Rank(M);
print "Rank:", r;
`,
metadata: {
type: "code_snippet",
language: "magma",
topic: "linear_algebra"
}
});
```
## ๐ LangConnect vs ๊ธฐ์กด ๋ฐฉ์ ๋น๊ต
| ๊ธฐ๋ฅ | ๊ธฐ์กด MCP | LangConnect ๋ฐฉ์ | v3.0 ๊ตฌํ |
|------|----------|------------------|-----------|
| ๊ฒ์ ํ์ฅ | โ | โ
Multi-query | โ
|
| ๊ฒ์ ๋ฐฉ์ | 1๊ฐ | 3๊ฐ (semantic/keyword/hybrid) | โ
|
| GUI ๊ด๋ฆฌ | โ | โ
Web interface | ๐ง v3.1 ์์ |
| ์ปฌ๋ ์
| โ | โ
Multiple collections | โ
|
| ๋ํ ์ ์ฅ | โ | โ
Conversation storage | โ
|
| ๋์ ํ๋ผ๋ฏธํฐ | โ | โ
Runtime configuration | โ
|
## ๐ ๏ธ ๊ฐ๋ฐ์ ๊ฐ์ด๋
### **ํ๋ก์ ํธ ๊ตฌ์กฐ**
```
mcp-magma-handbook/
โโโ enhanced-mcp-server.ts # ๋ฉ์ธ ์๋ฒ (v3.0)
โโโ database-schema.sql # DB ์คํค๋ง
โโโ src/
โ โโโ index.ts # ๋ ๊ฑฐ์ ์๋ฒ (v2.x)
โ โโโ advanced-index.ts # ๊ณ ๊ธ ์๋ฒ (v2.x)
โโโ test-enhanced-mcp-complete.ts # ํ
์คํธ ์คํฌ๋ฆฝํธ
โโโ CHANGELOG-v3.md # ๋ณ๊ฒฝ์ฌํญ
โโโ galois-constacyclic-implementation.magma # ๋
ผ๋ฌธ ๊ตฌํ
```
### **๋น๋ & ํ
์คํธ**
```bash
# ๊ฐ๋ฐ ๋ชจ๋
npm run dev
# ๋น๋
npm run build
# ํ
์คํธ
npx tsx test-enhanced-mcp-complete.ts
# ๋ ๊ฑฐ์ ๋ฒ์ ์ฌ์ฉ
npm run dev-legacy
```
## ๐ฎ ๋ก๋๋งต
### **v3.1.0 (๋ค์ ๋ฒ์ )**
- ๐ฅ๏ธ **GUI Management Interface**: ์น ๊ธฐ๋ฐ ๊ด๋ฆฌ ๋๊ตฌ
- ๐ **Advanced Filtering**: ๋ฉํ๋ฐ์ดํฐ ๊ธฐ๋ฐ ํํฐ๋ง
- ๐ **Multi-language Support**: ํ๊ตญ์ด ๊ฒ์ ์ต์ ํ
- ๐ **Search Analytics**: ๊ฒ์ ํจํด ๋ถ์
### **v3.2.0**
- ๐ค **Auto-categorization**: AI ๊ธฐ๋ฐ ์๋ ๋ฌธ์ ๋ถ๋ฅ
- ๐ **Cross-collection Search**: ์ฌ๋ฌ ์ปฌ๋ ์
๋์ ๊ฒ์
- ๐ฑ **Mobile Optimization**: ๋ชจ๋ฐ์ผ ์นํ์ ์ธํฐํ์ด์ค
## ๐ค ๊ธฐ์ฌํ๊ธฐ
```bash
# 1. ํฌํฌ & ํด๋ก
git clone https://github.com/your-username/mcp-magma-handbook.git
# 2. ๋ธ๋์น ์์ฑ
git checkout -b feature/new-feature
# 3. ๊ฐ๋ฐ & ํ
์คํธ
npm run dev
npm test
# 4. ์ปค๋ฐ & ํธ์
git commit -m "Add new feature"
git push origin feature/new-feature
# 5. Pull Request ์์ฑ
```
## ๐ ์ง์
- **GitHub Issues**: [๋ฒ๊ทธ ์ ๊ณ & ๊ธฐ๋ฅ ์์ฒญ](https://github.com/LeGenAI/mcp-magma-handbook/issues)
- **์ด๋ฉ์ผ**: baegjaehyeon@gmail.com
- **๋ฉ์ค ์ฌ๋**: #mcp-magma-support
## ๐ ๋ผ์ด์ ์ค
MIT License - ์์ ๋กญ๊ฒ ์ฌ์ฉํ์ธ์!
---
### ๐ **๋ฉ์ค ์ ๋ฐฐ๋๋ค, ์๋ก์ด v3.0๋ก ๋์ฑ ํจ์จ์ ์ธ ์ฐ๊ตฌ๋ฅผ ํ์ธ์!**
**Multi-query๋ก ๋์น๋ ์ ๋ณด ์์ด, Collection์ผ๋ก ์ฒด๊ณ์ ์ผ๋ก, Conversation์ผ๋ก ์ง์์ ์ถ์ ํ๋ฉฐ!** ๐