nabchan-mcp-server

by backpaper0

2 stars
80 downloads
Not rated
GitHub

Description

# nabchan-mcp-server > [!WARNING] > これは実験的なプロジェクトであり、改善の余地が大いにあります。 ## 概要 [Nablarchの解説書](https://nablarch.github.io/docs/LATEST/doc/)をもとにしてNablarchの情報を返すMCPサーバーです。 ## Getting started Dockerを使って簡単に試せます。 ```mermaid graph LR a[VSCode] b[nabchan-mcp-server<br>(Dockerコンテナ)] a…

About

# nabchan-mcp-server > [!WARNING] > これは実験的なプロジェクトであり、改善の余地が大いにあります。 ## 概要 [Nablarchの解説書](https://nablarch.github.io/docs/LATEST/doc/)をもとにしてNablarchの情報を返すMCPサーバーです。 ## Getting started Dockerを使って簡単に試せます。 ```mermaid graph LR a[VSCode] b[nabchan-mcp-server<br>(Dockerコンテナ)] a -->|標準入出力で通信| b ``` VSCodeへ次の設定を追加してください。…

Details

Author
backpaper0
GitHub stars
2
Downloads
80
Categories
Other

- read_document – Converts a Nablarch documentation URL to markdown.
- search_document – Searches the documentation and returns title, URL, and summary.
- Index built from Nablarch HTML docs using morphological analysis.
- Runs locally with Python and DuckDB.
- Supports stdio and SSE transport types.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name nabchan-mcp-server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

You can run it using Docker (with stdio transport) or via ToolHive. The README provides VSCode configuration examples for both stdio and SSE transports. For development, set up Python 3.11, uv, Git, and Docker.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "nabchan-mcp-server": {
            "nabchan-mcp-server": {
                "command": "uv",
                "args": [
                    "run",
                    "-m",
                    "tools.build_index"
                ]
            }
        }
    }
}

McpServers

{
    "nabchan-mcp-server": {
        "command": "uv",
        "args": [
            "run",
            "-m",
            "tools.build_index"
        ]
    }
}

nabchan-mcp-server

> [!WARNING]
> これは実験的なプロジェクトであり、改善の余地が大いにあります。

概要

Nablarchの解説書をもとにしてNablarchの情報を返すMCPサーバーです。

Getting started

Dockerを使って簡単に試せます。

graph LR
  a[VSCode]
  b[nabchan-mcp-server<br>(Dockerコンテナ)]
  a -->|標準入出力で通信| b

VSCodeへ次の設定を追加してください。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--network",
          "none",
          "-e",
          "TRANSPORT=stdio",
          "ghcr.io/backpaper0/nabchan-mcp-server",
        ]
      }
    }
  }
}

GitHub Copilot ChatをAgentモードにしてNablarchに関する質問をしてみてください。

ToolHive経由で実行する

ToolHive経由で実行する場合は次のコマンドを実行してください。

thv run --name nabchan-mcp-server ghcr.io/backpaper0/nabchan-mcp-server -- --transport=stdio

アーキテクチャ

ローカルのPythonだけで動作するような構成を取っています。

DuckDBの全文検索拡張(Full-Text Search Extension)とLinderaという形態素解析ライブラリを使ってインデックスを構築しています。
解説書のHTMLから抽出したテキストを形態素解析したものが全文検索の対象フィールドとなります。
それ以外にもタイトル、概要、内容をmarkdown形式に変換したもの、をもっており、それらはMCPサーバーが提供するAPIで利用されます。

graph TD
   h[Nablarchの解説書<br>(HTMLファイル)]
   c(テキスト)
   d(概要)
   t(タイトル)
   m(markdown)
   i[DuckDB]

h -->|BeautifulSoupで<br>テキスト抽出| c
c -->|Linderaで形態素解析| i
c -->|LLMで要約| d
d --> i
h -->|BeautifulSoupで<br>タイトル抽出|t
t --> i
h -->|html2textで<br>markdown化| m
m --> i

MCPサーバーが提供しているAPIは次の通りです。

- read_document
- URLが示すNablarchのドキュメントをmarkdown形式へ変換したものを返します。
- search_document
- Nablarchのドキュメントを検索します。返される情報は次の通り
- タイトル
- URL
- 概要

nabchan-mcp-server開発者向けの情報

開発に必要な環境

- Python 3.11
- uv
- Git
- Docker

インデックスの構築

uv run -m tools.build_index

> [!NOTE]
> サブモジュールの中身を取得していない場合、git submodule initgit submodule updateを実行してください。

検索を試す

uv run -m tools.search_document -q "Nablarch"

開発時のVSCode設定例

/path/to/nabchan-mcp-serverは実際のパスに置き換えてください。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "command": "uv",
        "args": [
          "--directory",
          "/path/to/nabchan-mcp-server",
          "run",
          "-m",
          "nabchan_mcp_server.main",
        ]
      }
    }
  }
}

トランスポートタイプにSSEを使う場合はこちら。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "type": "sse",
        "url": "http://localhost:8000/sse"
      }
    }
  }
}

SSEを使う場合は次のコマンドであらかじめサーバーを起動しておく必要があります。

uv run -m nabchan_mcp_server.main --transport sse --host localhost
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.