Manalink MCP Server

Uma implementação de servidor MCP para o Manalink que permite que assistentes de IA usem funções como busca de professores.

Documentação

Servidor MCP da Manalink

Esta é a implementação do servidor Model Context Protocol (MCP) da Manalink. Ele permite que assistentes de IA utilizem funcionalidades como busca de professores.

Funcionalidades

Este servidor MCP oferece as seguintes ferramentas:

  1. Obter mestre de disciplinas: Obtém o mestre de nomes de disciplinas e IDs de disciplinas
  2. Obter mestre de características: Obtém o mestre de características de cursos (obtido dinamicamente da API)
  3. Obter mestre de séries: Obtém o mestre de nomes de séries e IDs
  4. Busca de professores (especificação detalhada): Busca professores com parâmetros detalhados como ID da disciplina, ID da série, etc.

Pré-requisitos

  • Node.js 18+
  • npm ou yarn

Instalação

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

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

Como usar

Modo de desenvolvimento

npm run dev

Modo de produção

npm run build
npm start

Integração com Claude for Desktop

Para usar com o Claude for Desktop, adicione a configuração ao arquivo claude_desktop_config.json.

  1. Abra o arquivo de configuração do Claude for Desktop
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Adicione a seguinte configuração
{
    "mcpServers": {
        "manalink": {
            "command": "node",
            "args": [
                "/絶対パス/manalink-mcp/dist/index.js"
            ]
        }
    }
}
  1. Reinicie o Claude for Desktop

Ferramentas MCP

1. Obter mestre de disciplinas

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

2. Obter mestre de características

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

3. Obter mestre de séries

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

4. Busca de professores (especificação detalhada)

// ツール名: 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 validação

Você pode validar usando o MCP Inspector.

  1. Execute o build e depois execute o inspector
npm run build
npx @modelcontextprotocol/inspector node dist/index.js

Licença

MIT

Funcionalidade de conversão de HTML para Markdown

Implementamos uma funcionalidade que converte conteúdo HTML obtido da Manalink para o formato Markdown.

Método de instalação

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 da conversão

A partir do HTML acima, o seguinte Markdown é gerado:

# マナリンク

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

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

Conversão para Markdown dos resultados de busca de professores

Na API de busca de professores, os resultados da busca podem ser obtidos tanto em formato HTML quanto em 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);