Skip to main content
Glama
README.md
# Magma MCP Server

Magma 수학 컴퓨팅 시스템을 위한 MCP (Model Context Protocol) 서버입니다. 
Magma Handbook의 내용을 RAG(Retrieval Augmented Generation)로 검색하여 관련 정보와 코드를 제공합니다.

## 🚀 기능

- **개념 검색**: Magma Handbook에서 수학적 개념과 예제 검색
- **코드 생성**: 설명에 따른 Magma 코드 자동 생성 (RAG 컨텍스트 포함)
- **RAG 시스템**: 벡터 데이터베이스를 통한 의미론적 검색

## 📋 필요 환경

- **Node.js** 18+ 
- **Python** 3.8+
- **TypeScript** (개발용)

## 🛠 설치 방법

### 1. 저장소 클론
```bash
git clone <repository-url>
cd magma-mcp-simple
```

### 2. Node.js 의존성 설치
```bash
npm install
```

### 3. Python 의존성 설치
```bash
pip install -r requirements.txt
```

### 4. TypeScript 컴파일
```bash
npm run build
```

## ⚙️ MCP 클라이언트 설정

### Cursor 설정
`~/.cursor/mcp.json` 파일에 추가:

**Windows 예시:**
```json
{
  "mcpServers": {
    "magma-helper": {
      "command": "node",
      "args": ["build/index.js"],
      "cwd": "C:\\Users\\YourName\\Desktop\\magma-mcp-simple"
    }
  }
}
```

**macOS/Linux 예시:**
```json
{
  "mcpServers": {
    "magma-helper": {
      "command": "node",
      "args": ["build/index.js"],
      "cwd": "/Users/YourName/Desktop/magma-mcp-simple"
    }
  }
}
```

### Claude Desktop 설정  
`claude_desktop_config.json` 파일에 추가:

**Windows 예시:**
```json
{
  "mcpServers": {
    "magma-helper": {
      "command": "node", 
      "args": ["C:\\Users\\YourName\\Desktop\\magma-mcp-simple\\build\\index.js"]
    }
  }
}
```

**macOS/Linux 예시:**
```json
{
  "mcpServers": {
    "magma-helper": {
      "command": "node", 
      "args": ["/Users/YourName/Desktop/magma-mcp-simple/build/index.js"]
    }
  }
}
```

## 🎯 사용법

MCP 클라이언트(Cursor, Claude Desktop)에서 다음 도구들을 사용할 수 있습니다:

### 1. Magma 개념 검색
```
도구: search_magma_concepts
입력: { "query": "finite field" }
```

### 2. Magma 코드 생성
```
도구: generate_magma_code  
입력: { "description": "Create finite fields and perform basic operations" }
```

## 📁 프로젝트 구조

```
magma-mcp-simple/
├── src/
│   ├── index.ts           # MCP 서버 메인
│   └── rag-system.ts      # RAG 시스템 (사용하지 않음)
├── vectordb/              # 벡터 데이터베이스
├── search_vectordb.py     # Python 검색 스크립트
├── requirements.txt       # Python 의존성
├── package.json          # Node.js 의존성
└── README.md             # 이 파일
```

## 🔧 개발

### 개발 모드 실행
```bash
npm run dev
```

### 수동 테스트
```bash
node build/index.js
```

## 📝 라이선스

MIT License

## 🤝 기여

이슈나 PR을 통해 기여해주세요!

## ⚠️ 주요 설정사항

### 경로 설정
- **반드시 절대 경로를 사용하세요!** 
- `src/index.ts` 파일 내의 `workingDir` 변수를 본인 환경에 맞게 수정:
  ```typescript
  const workingDir = 'C:\\Users\\YourName\\Desktop\\magma-mcp-simple'; // Windows
  const workingDir = '/Users/YourName/Desktop/magma-mcp-simple';      // macOS/Linux
  ```
- 수정 후 반드시 `npm run build` 실행

### 필수 요구사항
- `vectordb/` 폴더는 필수입니다 (Magma Handbook 벡터화된 데이터)
- Python과 Node.js 환경이 모두 설치되어 있어야 합니다
- MCP 클라이언트에서 절대 경로 설정이 중요합니다

### 트러블슈팅
- 경로 오류 발생시: `src/index.ts`의 `workingDir` 경로 확인
- Python 오류 발생시: `pip install -r requirements.txt` 재실행
- MCP 연결 안됨: 클라이언트 재시작 후 다시 시도