Manalink MCP Server

Una implementación de servidor MCP para Manalink que permite a los asistentes de IA usar funciones como búsqueda de profesores.

Documentación

Servidor MCP de Manalink

Esta es la implementación del servidor Model Context Protocol (MCP) de Manalink. Permite que los asistentes de IA utilicen funciones como la búsqueda de profesores.

Funciones

Este servidor MCP proporciona las siguientes herramientas:

  1. Obtener maestro de materias: Obtiene el maestro de nombres de materias e IDs de materias
  2. Obtener maestro de características: Obtiene el maestro de características de cursos (obtenido dinámicamente desde la API)
  3. Obtener maestro de grados: Obtiene el maestro de nombres de grados e IDs
  4. Búsqueda de profesores (especificación detallada): Busca profesores con parámetros detallados como ID de materia, ID de grado, etc.

Requisitos previos

  • Node.js 18+
  • npm o yarn

Instalación

# リポジトリのクローン
git clone [リポジトリURL]
cd manalink-mcp

# 依存関係のインストール
npm install

Uso

Modo de desarrollo

npm run dev

Modo de producción

npm run build
npm start

Integración con Claude for Desktop

Para usarlo con Claude for Desktop, agregue la configuración al archivo claude_desktop_config.json.

  1. Abra el archivo de configuración de Claude for Desktop
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Agregue la siguiente configuración
{
    "mcpServers": {
        "manalink": {
            "command": "node",
            "args": [
                "/絶対パス/manalink-mcp/dist/index.js"
            ]
        }
    }
}
  1. Reinicie Claude for Desktop

Herramientas MCP

1. Obtener maestro de materias

// ツール名: get_subject_master
// パラメータ: なし

2. Obtener maestro de características

// ツール名: get_course_features
// パラメータ: なし

3. Obtener maestro de grados

// ツール名: get_grade_master
// パラメータ: なし

4. Búsqueda de profesores (especificación detallada)

// ツール名: 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]

Método de verificación

Puede verificar utilizando MCP Inspector.

  1. Ejecute la compilación y luego ejecute el inspector
npm run build
npx @modelcontextprotocol/inspector node dist/index.js

Licencia

MIT

Función de conversión de HTML a Markdown

Se implementa una función para convertir el contenido HTML obtenido de Manalink a formato Markdown.

Método de instalación

npm install node-html-markdown

Método de uso

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);

Resultado de la conversión

A partir del HTML anterior se genera el siguiente Markdown:

# マナリンク

オンライン家庭教師プラットフォーム

* [サービスについて](/about)
* [先生を探す](/teachers)

Conversión a Markdown de resultados de búsqueda de profesores

En la API de búsqueda de profesores, los resultados se pueden obtener tanto en formato HTML como en formato 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);