mcpField
D
dict

dict

ローカル
github.com/azerbaijan-mcp科学・教育13 日前に更新

dict について

dict は、アゼルバイジャン語の解説辞典をローカルで参照する MCP サーバーです。意味の検索や印刷順での閲覧に対応し、4 巻の辞典項目と巻、PDF ページ、段の情報を返します。

主な機能

  1. 01見出し語、定義、語源注記の検索
  2. 02項目本文からの検索
  3. 03印刷順で前後の項目を閲覧
  4. 04途中で切れた項目の続きの取得
  5. 05巻、PDF ページ、段の表示

活用シーン

  1. 01アゼルバイジャン語の意味や語源の確認
  2. 02意味の説明から見出し語を検索
  3. 03辞典の見出し語の前後を閲覧
  4. 04長い項目の残りの本文を取得

MCP 対応

ローカル MCP サーバーとして、定義、本文検索、印刷順の閲覧、項目全文の取得ツールをクライアントに公開します。初回利用時に辞典データベースをダウンロードし、ローカルで検索インデックスを作成します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"azerbaijan-mcp-dict": {
"command": "uvx",
"args": [
"azerbaijan-mcp-dict"
]
}
}
}
起動コマンドuvx azerbaijan-mcp-dict

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiazerbaijan-mcp-dict0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

azerbaijan-mcp-dict

アゼルバイジャン語の解説辞典『Azərbaycan dilinin izahlı lüğəti』(全4巻、約45,000項目)を対象とするローカル専用のMCPサーバーです。単語を検索したり、説明文の内容から項目を探したり、各項目の巻・ページ・段を確認しながら、印刷版の掲載順に辞典をたどったりできます。

初回使用時に、サーバーはこのプロジェクトのリリースページから辞典のデータベース(5.6 MB)を一度ダウンロードし、そこから作成した検索インデックスとともにキャッシュフォルダーに保存します。この辞典は著作権で保護された印刷物であり、プロジェクトは利用許諾を得ていません。以下の「データソースと利用条件」をお読みください。独自のデータベースを使用するには、DICT_DBを設定してください。サーバーはお使いのコンピューター上で動作し、ホスト型サービスとして提供されることはありません。

ツール

ツール機能
define(word, max_chars?)見出し語の項目を印刷版の掲載順に返します。語義、語源注記(origin)、巻内の位置、およびbax参照先の見出し語も含まれます。同音異義語は別々の項目として扱われます(ÇAY¹、ÇAY²)。項目はmax_charsで指定した文字数で切り詰められます(デフォルトは3,000文字、最大50,000文字)。見つからない場合は、検索候補の見出し語が表示されます。
search(query, exact?, limit?, offset?)本文に指定したすべての単語を含む項目を返します。クエリと最初に一致する見出し語が先頭になります。語義から単語を探す場合(su qabıなど)に使用します。limitは1~50(デフォルトは10)で、next_offsetを使って次のページに進めます。
browse(word?, entry_id?, before?, after?)見出し語の前後にある項目を、ページをめくるように印刷版の掲載順で返します。beforeとafterは0~50(デフォルトはそれぞれ3、7)です。next_idとprevious_idを使って、どちらの端からも続けて表示できます。
read_entry(entry_id, offset?, max_chars?)文字オフセットを指定して項目を読み込みます。defineやsearchで途中までしか表示されなかった内容を読む場合に使います。数万文字に及ぶ項目もあります。

たとえば、「水を入れる容器を意味する単語は何ですか?」と尋ねる場合は、search("su qabı")を実行し、見つかった見出し語をdefineで調べます。「辞典でkitabの次に何がありますか?」という場合は、browse("kitab")を実行します。

知っておくと便利なこと:

  • 基本形。 辞書に載っているのは見出し語であり、活用形ではありません。kitabları ではなく kitab を調べてください。 define はその後、match: none と suggestions(語幹、その語で始まる見出し語、近い候補)および注記を返します。
  • define で許容されるもの。 印刷どおりの見出し語(AB(B)ASI、ÇAY²、AB-HAVA, ABÜHAVA)、または参照先として示されている番号を付けた見出し語(çay2)を入力できます。ほかのダッシュ、曲がった引用符、不可視文字も許容されます。大文字と小文字については、I と İ は異なる文字であり、アゼルバイジャン語の規則に従って小文字に変換されます。入力どおりの見出し語がない場合は、アクセント記号とハイフンも許容されます。seher では şəhər と səhər が見つかり(match: accent_free)、スペースはハイフンの代わりになります(ata baba)。異形はそれぞれの綴りで見つかります。AB(B)ASI は abası と abbası、AB-HAVA,ABÜHAVA は 2 語として見つかります。アクセント記号のない同じ語より、完全一致する綴りが優先されます(el と əl は別の語です)。
  • bax の参照。 bax X(X を参照)とのみ記された項目には、最大 2 段階まで、X の項目が followed に含まれます。項目内のほかの参照は see に、その参照先の項目とともに一覧表示されます。番号付き語義への参照(bax dərd 3-cü mənada)は見出し語に移動します。語義はその項目の本文で確認してください。
  • 検索。 すべての単語が項目内に含まれている必要があります。OR などの演算子は使えず、使用できる単語は最大 12 個です。アゼルバイジャン語では語尾が付くため、4 文字以上の単語は先頭 5 文字で照合されます(içmək で içir と içən が見つかります)。exact=true は単語全体を照合します。ここでは define と異なり、アクセント記号を正しく指定する必要があります。
  • 出典情報。 各項目には volume、pdf_page、column があります。ページ番号はその巻の PDF 上のページを示し、印刷されたページ番号とは異なる場合があります。
  • テキストは PDF のテキストレイヤーから機械的に抽出されており、誤りが含まれる場合があります。行は結合されます。行末のハイフンは、辞書でハイフン付きの形の方が多く使われている複合語(ata-baba)、反復語(aşkar-aşkar)、語尾付きの数字(1931-ci)、または qeyri- で始まる語を除き、削除されます。ハイフンの位置で改行されている複合語が一度しか現れない場合は、ハイフンが削除されます。PDF の文字間隔が広いイタリック体の b a x は bax として読み取られます。このサーバーではなく、印刷された辞書を引用してください。
  • 語源。 origin は品詞の後に角括弧で記された注記です(ər.、fars.、fr、əsli lat.)。約 11,000 項目に記載されています。
  • 最初の呼び出しではデータベースがダウンロードされ、インデックスが作成されます。数秒かかり、辞書全体では約 10 秒、インデックスのサイズは 30 MB です。どちらもキャッシュフォルダー(Windows では %LOCALAPPDATA%\azerbaijan-mcp\dict、macOS では ~/Library/Caches/azerbaijan-mcp/dict、その他の環境では ~/.cache/azerbaijan-mcp/dict)に保存され、データベースファイルが変更されるまで再利用されます。データベースごとに個別のインデックスファイルが作られるため、複数のデータベースで同じフォルダーを共有できます。指定したデータベースは読み取り専用で開かれ、書き込みは行われません。キャッシュはいつでも削除できます。次回の呼び出し時に、再度取得して作成されます。ファイルを配置する際にプロセスが強制終了され、ファイルが途中までしかコピーされなかった場合も検出され、再取得または再作成されます。
  • 対象外: 活用形(形態論への対応はありません)と、辞書のほかの版および関連辞書。

インストール

MCP クライアントの設定に追加します(uv が必要です)。

{
  "mcpServers": {
    "dict": {
      "command": "uvx",
      "args": ["azerbaijan-mcp-dict"]
    }
  }
}

Claude Code では、claude mcp add dict -- uvx azerbaijan-mcp-dict を実行します。

任意で指定できる設定は3つあり、クライアントの env に設定します。

変数デフォルト意味
DICT_DBなし独自の辞書データベースのパスです。指定すると、公開されているデータベースはダウンロードされません。
DICT_DATA_URLこのリポジトリのリリースページ公開されているデータベースのミラーです。https のみ対応しています(このコンピューターでは http も使用できます)。SHA-256 の検証は引き続き行われます。
DICT_CACHE_DIR上記のキャッシュフォルダーデータベースとインデックスの保存先です。システムが名前の変更を拒否するフォルダーも使用できます。たとえば、Windows で Claude デスクトップアプリが起動するサーバーでは %LOCALAPPDATA% を使用できます(WinError 17)。この場合、ファイルは代わりに所定の場所へコピーされます。

データベース

公開されているデータベースは、リリース dict-data-1 のファイル dict-1.sqlite.gz です。エントリー数は45,353件、サイズは5,657,352バイト、SHA-256 は 44515ffca32d7cefc9f659bbe1ecefa82dc6908f17b5d434daffd1f921162022 です。この値はパッケージに固定されており、異なるファイルは使用されません。python -m azerbaijan_mcp_dict.asset source.sqlite out.sqlite.gz を実行すると、この形式でデータベースをパッケージ化し、固定する値を出力します。

独自のデータベースには entries テーブルが1つ必要です。サーバーは以下の列のみを読み取ります。metadata テーブルは任意です。

CREATE TABLE entries (
    id INTEGER PRIMARY KEY,        -- print order
    volume INTEGER NOT NULL,       -- 1 to 4
    headword TEXT NOT NULL,        -- as printed: ÇAY, AB(B)ASI, AB-HAVA,ABÜHAVA
    homonym_index INTEGER,         -- 1, 2, ... for homonyms, else NULL
    entry_text TEXT NOT NULL,      -- what follows the headword, lines as the PDF breaks them
    start_page INTEGER NOT NULL,   -- PDF page of the volume the entry starts on
    end_page INTEGER NOT NULL,
    start_column INTEGER NOT NULL  -- 1 or 2
);
CREATE TABLE metadata (key TEXT PRIMARY KEY, value TEXT NOT NULL);

使用される metadata キーは database_title(各回答でソース名として表示)と entry_count(テーブルの件数と照合し、途中で切れたファイルを拒否)です。それ以外の列やテーブルは無視されます。公開データベースの作成元となったデータベースには独自の全文検索インデックスがありますが、サーバーでは使用しません。文頭が大文字の İ で始まる単語をすべて見落とすためです(iki で該当する1,656件のエントリーのうち、1,324件しか見つかりません)。PDF からデータベースを再構築するスクリプトは MCP-31 で管理されています。

データソースと利用条件

サーバーが行うリクエストは、キャッシュフォルダーごとに 1 回、github.com からデータベースをダウンロードすることだけです。リポジトリのデータポリシーに記載された確認事項への回答を、2026-11-03 に確認しました。

  • 発行元: 書誌情報によると、この辞書は 2006 年に Şərq-Qərb(バクー)から刊行されています(Ə. Orucov ほか編纂、A. Axundov 編集)。公式のオンライン版は見つかりませんでした。azleks.az では登録が必要な電子版を提供していますが、その利用条件は不明瞭で、非公式のスキャンも出回っています。
  • 利用条件とライセンス: 見つからなかったため、本文はすべての権利が留保されているものとして扱います。プロジェクトのオーナーは 2026-11-03 に、発行元に問い合わせることなく、抽出したデータベースを本リポジトリのリリースアセットとして公開することを決定しました。これは、利用条件を優先するというデータポリシーの規則に反しており、申し立てを受けるリスクがあります。本文が含まれるのはそのリリースアセットだけで、パッケージ、リポジトリ、テストには含まれません。発行元、著者、またはその相続人から異議があった場合、アセットは速やかに削除します。
  • robots.txt、レート制限、キャッシュ: リリースファイルのため該当しません。ダウンロードでは User-Agent azerbaijan-mcp-dict/<version> (+<repository URL>) を送信し、1 回リクエストします。ネットワークエラーまたはサーバーエラーの場合は 1 回再試行し、HTTP 403 と 429 では停止します。100 MB を超えるファイルは拒否し、固定されたものと異なる SHA-256 のファイルは使用しません。ファイルはキャッシュフォルダーに永続的に保存されます。テストは外部ネットワークへのアクセスをブロックして実行します。
  • 帰属表示: すべての回答に source(データベースのタイトル)と、本文が非公式に機械抽出されたものであることを示す attribution が含まれます。すべての項目に、巻、PDF のページ、段が記載されています。
  • 個人データ: ありません。項目には辞書と同様に著者名を含む出版済み文献からの引用がありますが、個人に関する情報が返されたり保存されたりすることはありません。
  • 発行元への連絡: なし(MCP-32)。
  • 決定: 実施。stdio ローカル接続のみとし、データベースはリリースアセットとして公開します(MCP-34)。

tests/ は実際の辞書と同じ形式で架空の辞書を構築します。実際の辞書の内容は、このリポジトリには一行も含まれていません。独自のデータベースを使ってコントラクトテストを実行し、公開済みのデータベースを確認するには:

DICT_DB=/path/to/azerbaycan_lugeti_1-4.sqlite uv run pytest -m live packages/dict

非公式のプロジェクトであり、発行元または辞書を編纂した研究所とは提携しておらず、承認も受けていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。