mcpField
A
AgentDank:

AgentDank:

ローカル
github.com/AgentDankヘルスケア327 週間前に更新

AgentDank: について

AgentDankのdank-mcpは、大麻データセットを検索するMCPサーバーで、LLMからローカルのDuckDBデータを照会する用途に向いています。現在は改修中で、`us/ct`データセットと読み取り専用SQLクエリを中心にしています。

主な機能

  1. 01`query`ツールによるSQL実行
  2. 02DuckDBデータファイルの利用
  3. 03データセットスナップショットの取得とキャッシュ
  4. 04読み取り専用でのデータアクセス
  5. 05外部アクセスの無効化

活用シーン

  1. 01`us/ct`大麻データセットの検索
  2. 02DuckDBファイルに対するSQL実行
  3. 03LLM経由でのローカルデータ取得

MCP 対応

MCP サーバーはSQLを受け取りCSVを返す`query`ツールを登録します。読み取り専用のDuckDBクエリをMCPクライアントに提供し、外部アクセスを無効にします。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

AgentDank:   dank-mcp

dank-mcp は、カンナビスのデータセットをクエリするための Model Context Protocol(MCP)サーバーです。AgentDank が教育および合法的な目的で提供しています。

メモ

ステータス:リファクタリング中です。 dank-mcp は、汎用的な宣言型データセットバインディングアーキテクチャに向けて再構築中です(設計に関するメモを参照)。--fetch <id> を使ってデータセットをブートストラップできます。これにより、dank-data からビルド済みのスナップショットがダウンロードされます。現時点で利用できるデータセットは us/ct のみです。


カンナビスのデータセットのスナップショットは、AgentDank dank-data リポジトリで管理されています。--db を使えば、任意の DuckDB ファイルを dank-mcp に指定できます。

インストール

ビルド済みバイナリや Homebrew パッケージを提供したいと考えていますが、現在問題が発生しています。そのため、go install またはソースからのビルドによるインストールを推奨します。

$ go install github.com/AgentDank/dank-mcp@latest

インストール先は $GOPATH/bin ディレクトリです。多くの場合、~/go/bin になります。

LLM での使用

この dank-mcp MCP サーバーを使用するには、ホストプログラムでこのサーバーを使うよう設定する必要があります。ここでは、Claude Desktop を例に説明します。システム上の dank-mcp プログラムを探す必要があります。以下の例は、go install でインストールした dank-mcp の場所を示しています。

以下の設定 JSON(リポジトリ内の mcp-config.json にもあります)で設定できます。

{
    "mcpServers": {
      "dank": {
        "command": "~/go/bin/dank-mcp",
        "args": [
          "--root", "~"
        ]
      }
    }
  }
Claude Desktop

Claude Desktop では、公式の設定チュートリアルに従い、上記の設定に置き換えてください。設定すると、Claude に質問できるようになり、Claude は dank-mcp サーバーを使用します。

Ollama と mcphost

現在、うまく動作させるのに問題が発生していますが、興味のある方のために手順を残しておきます。

ローカルで推論する場合、Ollama をサポートする MCP ホストがあります。「Tools」をサポートする Ollama LLM ならどれでも使用できます。重い処理を担ってくれた mcp-go ライブラリの開発者が作成した mcphost を試しました。

mcp-config.json に保存した上記の設定を使って、インストールして実行する方法は次のとおりです。

$ go install github.com/mark3labs/mcphost@latest
$ ollama pull llama3.3
$ mcphost -m ollama:llama3.3 --config mcp-config.json
...chat away...

データの読み込み

dank-mcp は、AgentDank dank-data リポジトリからビルド済みの DuckDB スナップショットをダウンロードできます。

$ dank-mcp --list                     # show available datasets
$ dank-mcp --fetch us/ct              # download and serve
$ dank-mcp --fetch us/ct --fetch-only # download and exit
$ dank-mcp --fetch us/ct --force      # force re-download

ダウンロードしたファイルは、--root の下(またはカレントディレクトリ)の .dank/cache/<id>/dank-data.duckdb にキャッシュされます。キャッシュは 7 日間再利用され、その後に新しいファイルがダウンロードされます。これを無視するには --force を使ってください。

スナップショットの SHA-256 はインストール前にカタログと照合され、ローカルファイルは rename によってアトミックに置き換えられます。そのため、破損したファイルが見えるタイミングはありません。

コマンドラインでの使用

コマンドラインのヘルプは次のとおりです。

usage: ./bin/dank-mcp [opts]

      --db string         DuckDB data file to use, use ':memory:' for in-memory. Default is '.dank/dank-mcp.duckdb' under --root
      --fetch string      Dataset id to download from dank-data (e.g., us/ct)
      --fetch-only        Download only; do not start the MCP server
      --force             Force re-download even if cache is fresh (requires --fetch)
  -h, --help              Show help
      --list              List datasets from the dank-data catalog and exit
  -l, --log-file string   Log file destination (or MCP_LOG_FILE envvar). Default is stderr
  -j, --log-json          Log in JSON (default is plaintext)
      --root string       Set root location of '.dank' dir (Default: current dir)
      --sse               Use SSE Transport (default is STDIO transport)
      --sse-host string   host:port to listen to SSE connections
  -v, --verbose           Verbose logging

現在、サーバーには単一の MCP ツール query が登録されています。このツールは sql 文字列引数を受け取り、CSV を返します。DuckDB は読み取り専用で開かれ、さらに SET enable_external_access=false によって制限されるため、ローカルデータに対する純粋な SQL のみ実行できます。

ビルド

ビルドには task を使用します。

$ task
task: [build] go build -o bin/dank-mcp

設計に関するメモ

dank-mcp は、以下の少数のアイデアを中心に再構築されています。

  1. ロックダウンされた読み取り専用 DuckDB — サーバーは access_mode=read_only を指定して DuckDB を開き、SET enable_external_access=false を適用するため、汎用 SQL ツールを安全に公開できます。
  2. 汎用 query MCP ツール — データセットごとに個別のツールを作成するのではなく、dank-mcp は指定した任意の DuckDB に対して実行する単一の query(sql) ツールを公開します。
  3. 宣言型のデータセットバインディング(開発中) — pkg/dank では、Registrar インターフェースと、JSON タグを付けられる Binding/ResourceQuery/ToolQuery 構造体を定義しています。新しいデータセットは、専用の Go コードではなく、設定駆動のバインディングとして追加できることを目指しています。

以前の構成では、コネチカット州の大麻ブランドのデータセットがバイナリに直接組み込まれていました。このコードは削除されており、データセットは上記のバインディング機構を通じて再導入される予定です。

DuckDB ファイルへの SQL アクセスだけが必要な場合は、MotherDuck の mcp-server-motherduck が、より汎用的な代替手段です。dank-mcp の目標は、その上に大麻に特化したプロンプト、リソース、ツールをまとめることです。


貢献と行動規範

プルリクエストや課題の投稿を歓迎します。あるいは、フォークしてください。お好きなようにどうぞ。

いずれの場合も、行動規範を守ってください。怪しげなのは構いませんが、嫌な人にはならないでください。

クレジットとライセンス

Copyright (c) 2025 Neomantra Corp. AgentDank のために Evan Wies が執筆しました。

MIT License の下で公開されています。詳しくは LICENSE.txt をご覧ください。


AgentDank のチームが :herb: と :fire: を込めて作成しました。

コメント

MCP は初めてですか?

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

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