nabchan-mcp-server について
nabchan-mcp-serverは、Nablarchの解説書をもとに情報を返す実験的なMCPサーバーです。ローカルで文書をインデックス化し、検索結果とMarkdown形式の文書を提供します。
主な機能
- 01Nablarch文書の検索
- 02文書のMarkdown形式での取得
- 03ローカル全文インデックスの構築
- 04DuckDBとLinderaによるインデックス作成
活用シーン
- 01関連するNablarch文書の検索
- 02文書ページのMarkdown形式での閲覧
- 03エージェントチャットでのNablarchに関する質問への回答
MCP 対応
`search_document`で文書を検索し、`read_document`でURLが示す文書をMarkdown形式でMCPクライアントに返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの README よりnabchan-mcp-server
警告
これは実験的なプロジェクトであり、改善の余地が大いにあります。
概要
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
- 概要
- Nablarchのドキュメントを検索します。返される情報は次の通り
nabchan-mcp-server開発者向けの情報
開発に必要な環境
- Python 3.11
- uv
- Git
- Docker
インデックスの構築
uv run -m tools.build_index
メモ
サブモジュールの中身を取得していない場合、
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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。