mcpField
N
nabchan-mcp-server

nabchan-mcp-server

Local
github.com/backpaper0Developer Tools2Updated 77w ago

About nabchan-mcp-server

nabchan-mcp-server is an experimental MCP server that answers questions using Nablarch documentation. It indexes the documentation locally and offers search results and Markdown document content.

Key features

  1. 01Search Nablarch documentation
  2. 02Read documents as Markdown
  3. 03Build a local full-text index
  4. 04Use DuckDB and Lindera for indexing

Use cases

  1. 01Find relevant Nablarch documentation
  2. 02Read a documentation page in Markdown
  3. 03Answer Nablarch questions in an agent chat

MCP support

Exposes `search_document` for finding documentation and `read_document` for returning a URL's document as Markdown to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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 initとgit 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.