nabchan-mcp-server
If you are the rightful owner of nabchan-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
nabchan-mcp-server is an experimental project that provides an MCP server for returning information based on Nablarch documentation.
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
- 概要
- Nablarchのドキュメントを検索します。返される情報は次の通り
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