mcpField
N
Noirlab Datalab

Noirlab Datalab

リモート
pipeworx.io科学・教育01 日前に更新
リポジトリ公式サイト

Noirlab Datalab について

Noirlab Datalabは、NOIRLabのサーベイや全天カタログをテーブルとして検索するMCPサーバーです。天文学者やデータ分析者向けに、読み取り専用ADQLクエリ、テーブル探索、天球座標検索を提供します。

主な機能

  1. 01スキーマ、テーブル、列の一覧表示
  2. 02読み取り専用ADQL SELECTの実行
  3. 03天球座標周辺の天体検索
  4. 04サーベイおよび全天カタログの照会

活用シーン

  1. 01利用可能なサーベイ表と列を確認
  2. 02ADQLでカタログの行を取得
  3. 03天球上の位置周辺にある天体を検索

MCP 対応

Pipeworx経由または単独のstdioサーバーとして、カタログ探索、クエリ、コーンサーチのツールをMCPクライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/noirlab-datalab/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/noirlab-datalab

NSF NOIRLab の Astro Data Lab — DECam、Mayall、Blanco のサーベイカタログ(Legacy Surveys/DECaLS、DES、DELVE、DECaPS、SMASH、NSC)に、ミラーリングされた全天カタログ(Gaia DR3、 AllWISE、CatWISE、2MASS、SDSS、DESI)を加えたもので、データベーステーブルとしてクエリできます。約 130 個のスキーマと数百億行のデータを扱えます。

Pipeworx の一部です — AI エージェントを 1683 以上の稼働中のデータソースに接続する MCP ゲートウェイです。

ツール

  • datalab_tables(schema?, table?, limit?) — サーベイデータリリースの一覧、特定リリースのテーブル一覧、または特定テーブルのカラム一覧を取得します。最初に呼び出してください。テーブル名はサーベイごとに異なるため、推測した名前を指定すると空の結果ではなくクエリエラーになります。
  • datalab_query(sql, limit?) — 読み取り専用の ADQL SELECT を実行します。TOP n を指定しない場合は自動的に挿入されるため、単純なクエリで数十億行のテーブルを無制限にスキャンすることはありません。
  • datalab_cone_search(table, ra, dec, radius?, columns?, limit?) — 天球上の位置から指定半径内にある天体を、近い順に、正確な角距離(度)とともに返します。

認証

キー不要 — ただし、IVOA TAP エンドポイント経由に限ります。 最初の注意点をご覧ください。

データソース

  • https://datalab.noirlab.edu/tap/sync — REQUEST=doQuery&LANG=ADQL&FORMAT=csv&QUERY=…。 匿名で利用でき、このパッケージが使用する唯一の接続先です。

注意点

  • /query/query?sql= は、ドキュメントで案内されている入口にもかかわらず、匿名では利用できません。 datalab Python クライアントが使用し、ドキュメントでも最初に案内されていますが、ログインせずにアクセスすると 401 The provided security token is invalid が返されます。また、広く引用されている X-DL-AuthToken: anonymous.0.0.anon_access を指定すると、本文に Error in query(). Try checking that you are logged in. が含まれた HTTP 200 が返ります。失敗を示す応答として、失敗を含む 200 は最悪の形です。そのため、このパッケージでは TAP のみを使用します。2026-09-17 に確認。
  • TAP はすべてのエラーを HTTP 200 として報告します。 構文エラー、未知のテーブル、タイムアウトは、いずれも単一の INFO 要素に QUERY_STATUS="ERROR" を含む VOTable として 200 で返されます。データとして読み込むと、空の結果セットになります。すべての応答で、この要素を確認してから解析します。
  • ADQL の幾何関数は実装されておらず、Q3C も利用できません。 CONTAINS(POINT('ICRS',ra,dec), CIRCLE('ICRS',…)) は解析された後、そのまま PostgreSQL に渡され、function circle(numeric, numeric, numeric) does not exist が返されます。バックエンドが実際に備えている Q3C 関数(q3c_radial_query)は、その一段上にある ADQL パーサーによって拒否されます。そのため、一般的な円錐検索の書き方はいずれも失敗します。datalab_cone_search は、両方の層で利用できる三角関数を使って検索を構成します。まず、スキャン範囲を絞るインデックス可能な赤経・赤緯の矩形(赤緯に応じて赤経の範囲を 1/cos(dec) 倍に広げ、0h をまたぐ場合は折り返します)を使い、次に正確な大円距離で矩形の角を除外し、実際の距離で並べ替えます。
  • 行数制限には LIMIT n ではなく SELECT TOP n を使います。 PostgreSQL ではなく ADQL です。
  • 0 件の結果は、多くの場合、天体が存在しないのではなく観測範囲外であることを示します。 DECam のサーベイは南天と銀河面の一部を対象としているため、北天の天体を ls_dr10 や des_dr2 で検索しても、結果が返らないのは当然です。結果が 0 件の場合は、全天をカバーする gaia_dr3.gaia_source でもう一度確認するよう案内します。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。

{
  "mcpServers": {
    "noirlab-datalab": {
      "url": "https://gateway.pipeworx.io/noirlab-datalab/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/noirlab-datalab/mcp の tools/list は、上の表にあるツールに加えて、共有の Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール一式)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック固有のツールとともに、共有ツールが約 30 個表示されます。接続の initialize 応答に正確な対象範囲が記載されており、その日の状況を確認する際の正式な情報源となります。

これは意図的な仕様であり、偶然の多重化ではありません。メタツールを使えば、このパックでは扱えない質問にも、カタログ全体を横断してルーティングする ask_pipeworx 経由で回答できます。MCP サーバーをもう 1 つ追加する必要はありません。現在、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費が、ルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに 1 回接続してください。

または、Pipeworx のフルゲートウェイに接続して、このパックだけでなく、すべてのパックのツールを直接表示できます。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイと同じ 1683 以上のデータソースに接続します。異なるのは、どのパックのツールが直接表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP 経由で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/datalab_query \
  -H 'Content-Type: application/json' \
  -d '{"sql":"SELECT ra, dec, phot_g_mean_mag FROM gaia_dr3.gaia_source WHERE phot_g_mean_mag < 6","limit":5}'

最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/datalab_query を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も不要です。

{
  "mcpServers": {
    "noirlab-datalab": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-noirlab-datalab"]
    }
  }
}

または、直接実行して起動を確認できます。

npx -y @pipeworx/mcp-noirlab-datalab

stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に応答します。対象はこのパックのツールのみで、上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx を使用する

ツールを直接呼び出す代わりに、自然な英語で質問できます。上記のパックエンドポイントとフルゲートウェイのどちらでも利用できます。

ask_pipeworx({ question: "your question about Noirlab Datalab data" })

ゲートウェイが適切なツールを選び、引数を自動的に設定します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

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

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