마나링크 MCP 서버
마나 링크의 Model Context Protocol (MCP) 서버 구현입니다. AI 어시스턴트가 교사 검색과 같은 기능을 사용할 수 있도록 합니다.
기능
이 MCP 서버는 다음 도구를 제공합니다.
- 과목 마스터 취득 : 과목 이름과 과목 ID의 마스터 취득
- 특징 마스터 취득 : 코스 특징의 마스터 취득(API로부터 동적으로 취득)
- 학년 마스터 취득 : 학년 이름과 ID 마스터 취득
- 선생님 검색(상세 지정) : 과목 ID, 학년 ID 등의 상세 파라미터로 선생님을 검색
전제 조건
설치
# リポジトリのクローン
git clone [リポジトリURL]
cd manalink-mcp
# 依存関係のインストール
npm install
사용법
개발 모드
프로덕션 모드
Claude for Desktop과의 협력
Claude for Desktop에서 사용하려면 claude_desktop_config.json
파일에 설정을 추가합니다.
- Claude for Desktop 구성 파일 열기
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- 다음 설정 추가
{
"mcpServers": {
"manalink": {
"command": "node",
"args": [
"/絶対パス/manalink-mcp/dist/index.js"
]
}
}
}
- Claude for Desktop 재부팅
MCP 도구
1. 과목 마스터 취득
// ツール名: get_subject_master
// パラメータ: なし
2. 특징 마스터 취득
// ツール名: get_course_features
// パラメータ: なし
3. 학년 마스터 취득
// ツール名: get_grade_master
// パラメータ: なし
4. 선생님 검색 (상세 지정)
// ツール名: search_teachers_advanced
// パラメータ:
// - subject_ids: 科目IDの配列(オプション)
// - grade_ids: 学年IDの配列(オプション)
// - course_feature_id: 特徴ID(オプション)
// - sort: ソート順(オプション)[pr, certification, rating, lesson_count, latest]
// - desired_teaching_period: 指導期間(オプション)[monthly, once]
검증 방법
MCP Inspector를 사용하여 검증할 수 있습니다.
- 빌드를 실행한 다음 관리자를 실행합니다.
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
라이센스
MIT
HTML에서 Markdown으로 변환 기능
마나링크에서 얻은 HTML 콘텐츠를 마크다운 형식으로 변환하는 기능을 구현합니다.
설치 방법
npm install node-html-markdown
사용방법
import { convertHtmlToMarkdown } from './utils/api';
// HTMLからMarkdownへの変換
const html = `
<div>
<h1>マナリンク</h1>
<p>オンライン家庭教師プラットフォーム</p>
<ul>
<li><a href="/about">サービスについて</a></li>
<li><a href="/teachers">先生を探す</a></li>
</ul>
</div>
`;
const markdown = convertHtmlToMarkdown(html);
console.log(markdown);
변환 결과
위의 HTML에서 다음과 같은 마크다운이 생성됩니다.
# マナリンク
オンライン家庭教師プラットフォーム
* [サービスについて](/about)
* [先生を探す](/teachers)
교사 검색 결과의 마크다운 변환
교사 검색 API를 사용하면 HTML 형식과 Markdown 형식 모두에서 검색 결과를 얻을 수 있습니다.
import { searchTeachers } from './utils/api';
// 数学の中学生を教えられる先生を検索
const result = await searchTeachers({
subject_ids: [2], // 数学
grade_ids: [4], // 中学1年生
sort: 'rating'
});
// HTML形式の検索結果
console.log(result.bodyContent);
// Markdown形式の検索結果
console.log(result.markdown);