mcpField
S
Starfetch

Starfetch

ローカル
github.com/starfetch-js科学・教育27 週間前に更新

Starfetch について

Starfetch は、TAP 経由で公開天文カタログを検索する MCP サーバーです。Agent がライブスキーマを調べ、有界な ADQL クエリを実行し、再現に必要な詳細を返せるようにします。

主な機能

  1. 015種類の天文サービスプリセット
  2. 02VO レジストリで TAP サービスを検索
  3. 03可用性、テーブル、列の確認
  4. 04有界な同期・非同期 ADQL クエリ
  5. 05クエリ、上限、単位、診断情報の返却
  6. 06プロンプト、リソース、CLI、TypeScript API

活用シーン

  1. 01天球位置周辺のカタログ天体の検索
  2. 02TAP サービスのテーブルと列の調査
  3. 03Agent のカタログクエリの再現
  4. 04非同期 TAP ジョブの送信と追跡

MCP 対応

プリセット一覧、レジストリ検索、TAP メタデータ確認、同期・非同期クエリ用の MCP ツールを公開します。ワークフローの案内や例を含む、取得可能なプロンプトとリソースも提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"starfetch-js-starfetch": {
"command": "npx",
"args": [
"-y",
"@starfetch-js/mcp"
]
}
}
}
起動コマンドnpx -y @starfetch-js/mcp

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

パッケージ
npm@starfetch-js/mcp0.3.0

ツール

12

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Starfetch

Starfetch

CI Coverage MCP Registry Starfetch on Glama skills.sh npm version

Starfetch を使うと、AI エージェントは Model Context Protocol (MCP) を通じて、 公開されている天文学カタログに安全かつ再現可能な方法でアクセスできます。

自然言語で天文学に関する質問をしてください。Starfetch 対応エージェントは、 適切なサービスを選択し、ライブテーブルとカラムを調べ、範囲を限定した ADQL クエリを構築して実行し、使用したサービス、テーブル、クエリ、上限、 単位、前提条件を正確に示したうえで結果を返します。

Starfetch 対応エージェントが Gaia のメタデータを調べ、プレアデス星団付近の固有運動の大きい天体を順位付けし、結果を要約する様子

You: Find the 10 Gaia DR3 sources with the highest proper motion within 0.5
     degrees of the Pleiades center at RA 56.75°, Dec +24.12°. What stands out?

Agent: selects Gaia → inspects metadata → runs bounded ADQL →
       returns catalog rows, exact ADQL, units, and assumptions

代表的な取得結果:

Service: ESA Gaia Archive
Table: gaiadr3.gaia_source
Rows returned: 10
Query limit: TOP 10 / MAXREC 10

Highest returned proper motions:
- Gaia DR3 66780900298410496: 244.48 mas/yr
- Gaia DR3 66524409149512064: 184.50 mas/yr

Exact ADQL:
SELECT TOP 10 source_id, ra, dec, pm, pmra, pmdec, parallax, parallax_error,
  phot_g_mean_mag, bp_rp, ruwe
FROM gaiadr3.gaia_source
WHERE CONTAINS(POINT('ICRS', ra, dec), CIRCLE('ICRS', 56.75, 24.12, 0.5)) = 1
  AND pm IS NOT NULL
ORDER BY pm DESC

Gaia、SIMBAD、VizieR、NASA Exoplanet Archive、IRSA は、組み込みサービスプリセットとして利用できます。エージェントは、URL を使ってほかの公開 TAP サービスを検出し、クエリすることもできます。Starfetch は TAP ネイティブで、ADQL を見える形に保つため、科学的なブラックボックスになることなく、エージェントのワークフローを便利にします。

まずはこちら

エージェントを接続する

ローカル npm サーバーは、Starfetch の安定した公開接続方法です。お使いのコンピューター上で実行され、互換性のある任意の MCP クライアントに登録できます。

ローカル npm サーバー

Starfetch を起動するエージェントクライアントに登録してください。MCP パッケージを単独で実行すると stdio サーバーが起動するだけで、そのサーバーが エージェントに接続されるわけではありません。Starfetch は 公式 MCP Registry からも検出できます。

Codex

Codex CLI、IDE 拡張機能、ChatGPT デスクトップアプリ向けに Starfetch を登録します。

codex mcp add starfetch -- npx -y @starfetch-js/mcp
codex mcp list

これらの Codex 製品では、MCP の設定が共通です。 公式 Codex MCP ドキュメントを参照してください。

Claude Code

ユーザースコープに Starfetch を登録します。

claude mcp add --scope user --transport stdio starfetch -- npx -y @starfetch-js/mcp
claude mcp get starfetch

公式 Claude Code MCP ドキュメントを参照してください。

Cursor

グローバルで使用する場合は ~/.cursor/mcp.json に、1 つのプロジェクトで使用する場合は .cursor/mcp.json に、このサーバーエントリーを追加します。

{
  "mcpServers": {
    "starfetch": {
      "command": "npx",
      "args": ["-y", "@starfetch-js/mcp"]
    }
  }
}

詳しくは、 Cursor の公式 MCP ドキュメントをご覧ください。

ほかの MCP クライアントでも、それぞれのサーバー登録インターフェースを通じて、 同じ stdio コマンドと引数を使用できます。

command: npx
args: -y @starfetch-js/mcp

登録後にクライアントを再起動または再読み込みしてから、通常の天文学に関する質問をしてください。 プロンプトに ADQL を記述したり、Starfetch のツール名を指定したりする必要はありません。Starfetch には Node.js 22 以降が必要です。

リモート MCP

リモート MCP サービスはインターネット上で稼働し、HTTPS 経由で MCP 接続を受け付けます。ユーザーの コンピューターに Starfetch パッケージをインストールしたり、起動したりする必要はありません。対応するクライアントは、本番環境のエンドポイントに接続できます。

https://starfetch-mcp-app-production-wumkqeiqaa-ew.a.run.app/mcp

リモートサービスは公開されており、認証は不要です。利用範囲には上限があり、ベストエフォートで提供されます。 認証情報、非公開のアーカイブ URL、機微な個人データ、または無制限のワークロードを送信しないでください。 ローカルで管理したい場合や、クライアントがリモート Streamable HTTP MCP に対応していない場合は、ローカルの npm サーバーを引き続きデフォルトとして使用してください。

リモートサービスの概要、 プライバシーに関するお知らせ、 サポート、利用規約をご覧ください。

エージェントが行うこと

サービス固有のカタログに関する質問に対して、Starfetch のガイダンスはエージェントに次のことを促します。

  1. 明示的なサービスプリセットまたは公開 TAP URL を選択する;
  2. 適切な場合はサービスの可用性を確認する;
  3. 関連するテーブルと、選択したテーブルの列を調べる;
  4. 発見したスキーマ情報のみを使って ADQL を組み立てる;
  5. ADQL TOP、TAP MAXREC、またはその両方を使って、探索的な処理に上限を設ける;
  6. 有用な範囲で最小のクエリを実行する;
  7. サービス、テーブル、正確な ADQL、実効上限、形式、単位、および関連する前提を返す;
  8. スキーマまたは構文エラーが発生した場合は、推測せずにメタデータの確認に戻る。

エージェントはタイムアウト、可用性の問題、解析エラー、クエリエラーを、科学的な結果が空だったかのように示してはいけません。 正常に実行された結果が 0 行だった場合と、リクエストが失敗した場合は異なります。

Starfetch は、ワークフロー全体を実行するためのツールを提供します。

starfetch_list_presets
starfetch_registry_search
starfetch_tap_availability
starfetch_tap_capabilities
starfetch_tap_tables
starfetch_tap_columns
starfetch_tap_query
starfetch_tap_submit_job
starfetch_tap_job_status
starfetch_tap_job_wait
starfetch_tap_job_fetch
starfetch_tap_job_delete

クエリツールは、結果データと診断情報を分けて返します。再現と確認のため、送信した正確な ADQL と実効行数上限を保持します。 同期クエリと非同期送信では、maxrec が省略された場合に TAP MAXREC=100 を送信します。

リモート HTTP サービスは、非同期送信ごとに不透明な jobCapability を返します。リモートのステータス確認、待機、取得、または削除を呼び出すたびに、その値を変更せずに指定してください。 リモートジョブが存在し、サービスの署名シークレットが変更されていない間は、この権限情報を使用できます。リモートでの削除には破壊的操作のマークが付けられるため、MCP クライアントはユーザーの承認を求めることができます。 stdio MCP サーバーと CLI では従来のジョブ参照動作が維持され、リモート専用のフィールドは公開されません。

Starfetch を選ぶ理由

エージェントがワークフローをブラックボックス化せずに、公開カタログの最新データを必要とする場合、Starfetch は有用な中間レイヤーとなります。

  • テーブル名や列名を推測せず、実際のスキーマを調べます;
  • デフォルトで公開サービスへのクエリに上限を設け、サービスの障害をそのまま伝えます;
  • 再現のために、正確な ADQL、上限、単位、および前提を返します;
  • 複数の TAP サービスで、メタデータを優先する単一のインターフェースを提供します;また、
  • CLI と TypeScript ライブラリを使って、エージェントクライアントの外部でもエージェントのクエリを再現できます。

認証が必要なアーカイブや非公開アーカイブ、大規模なローカル解析、画像データ処理、または権威ある天体物理学的解釈が必要な場合は、アーカイブ独自のインターフェース、PyVO/Astropy、またはローカル解析ツールを使用してください。

隠れた前提に依存しない信頼性

MCP サーバーはファイルシステムスキルをインストールしなくても動作します。Starfetch は、同じ標準ガイダンスを重なり合う次の 3 つのレイヤーで提供します。

レイヤー役割
MCP ツールの説明すべての MCP クライアントが利用できる、メタデータを優先しクエリを制限するための最小限の契約
MCP プロンプトとリソース検索可能なワークフロー、ADQL ガイダンス、サービスに関する注意事項、例
オプションの Starfetch スキルより長いエージェントのやり取りを通じた、豊富な複数ステップの動作

サーバーは、取得可能なプロンプト query_astronomy_catalog、explore_service、run_cone_search、troubleshoot_adql を公開します。標準の Markdown リソースは、starfetch://guides/、starfetch://services/、starfetch://examples/ から利用できます。

プロンプトとリソースのサポート状況は MCP クライアントによって異なります。クライアントがツールのみを公開する場合でも、ツールの説明だけで基本的な安全な操作ができるようになっています。オプションのスキルには、ワークフロー、サービスリファレンス、例のすべてが含まれています。

オプションの Starfetch スキル

エージェントクライアントがファイルシステムスキルに対応しており、複数回のやり取りで最も強力な動作を求める場合は、スキルをインストールしてください。このスキルは推奨されていますが、MCP サーバーの動作に必須ではありません。

skills.sh を通じて、GitHub から標準のスキルを直接インストールします。

npx skills add https://github.com/starfetch-js/starfetch/tree/main/packages/skill/skill/starfetch

パッケージ化されたスキルを確認またはインストールします。

npx -y @starfetch-js/cli skill print
npx -y @starfetch-js/cli skill install --target codex
npx -y @starfetch-js/cli skill install --target claude-code --scope project
npx -y @starfetch-js/cli skill install --target cursor

次のコマンドで、任意の最終スキルディレクトリにインストールします。

npx -y @starfetch-js/cli skill install --path ./starfetch-skill

--dry-run を使うと、ファイル操作を事前に確認できます。デフォルトのインストール先は次のとおりです。

  • Codex ユーザースコープ:~/.codex/skills/starfetch
  • Claude Code ユーザースコープ:~/.claude/skills/starfetch
  • Codex プロジェクトスコープ:.codex/skills/starfetch
  • Claude Code プロジェクトスコープ:.claude/skills/starfetch
  • Cursor プロジェクトスコープ:.cursor/rules/starfetch.mdc

Codex と Claude Code のデフォルトはユーザースコープです。Cursor のルールはプロジェクトファイルであるため、デフォルトはプロジェクトスコープです。

サポート範囲

Starfetch は、一般公開されている天文学向け Table Access Protocol サービスを対象に設計されています。現在、次の機能を提供しています。

  • gaia、simbad、vizier、exoplanetarchive、irsa の組み込みプリセット
  • 追加の TAP エンドポイントを検索する VO レジストリ検索
  • VOSI の可用性、機能、テーブル、列のメタデータ
  • 制限付きの同期 ADQL クエリ
  • TAP/UWS の非同期ジョブの明示的な送信、ステータス確認、待機、取得、削除
  • VOTable、CSV、TSV のリクエストと、安全な JSON および JSONL への変換
  • クエリと制限の正確な診断情報

Starfetch は認証情報を受け付けず、認証が必要な TAP ワークフローも実装していません。MCP サーバーはシェルコマンドを実行せず、ローカルの結果ファイルも書き込みません。Starfetch はカタログデータを取得しますが、天体物理学的な解釈の妥当性を検証したり、カタログ間の科学的な差異を調整したりするものではありません。

VOTable の TABLEDATA と、インラインの base64 BINARY/BINARY2 行は変換できます。VOTable の FITS 行、リモートストリーム、圧縮ストリームは、ローカルでの行変換では引き続きパススルーまたは未対応となります。

CLI と TypeScript

MCP はエージェント向けの主要なインターフェースです。CLI は、スクリプトの作成、エージェントを介さずにクエリを調べること、エージェントが報告したリクエストを正確に再現することに役立ちます。TypeScript ライブラリは、アプリケーションやカスタムアダプターをサポートします。

CLI クイックスタート

CLI をインストールするか、一度実行します。

npm install -g @starfetch-js/cli
npx -y @starfetch-js/cli tap tables --service gaia

サービス固有の ADQL を記述する前に、メタデータを確認します。

starfetch tap availability --service gaia
starfetch tap tables --service gaia
starfetch tap columns --service gaia --table gaiadr3.gaia_source

範囲を制限したクエリを実行します。

starfetch tap query \
  --service gaia \
  --query "SELECT TOP 5 source_id, ra, dec FROM gaiadr3.gaia_source" \
  --format json

ADQL は --query、ファイル、または stdin から指定できます。結果データは --out で書き込めます。

starfetch tap query --service gaia --file query.sql --format csv --out result.csv
cat query.sql | starfetch tap query --service gaia --format jsonl

プリセットには --service を、明示的に指定する TAP ベース URL には --url を使います。両方を指定した場合、エンドポイントの選択には --url が使われ、サービス名は診断情報として保持されます。

VO レジストリを通じて追加のサービスを検索します。

starfetch tap registry search gaia --maxrec 5 --format json
非同期ジョブ

妥当な理由がある大規模なクエリには、明示的な非同期ジョブを使用します。

starfetch tap jobs submit \
  --service gaia \
  --query "SELECT TOP 10 source_id, ra, dec FROM gaiadr3.gaia_source" \
  --maxrec 10

starfetch tap jobs status <job-url>
starfetch tap jobs wait --interval 2000 --timeout 120000 <job-url>
starfetch tap jobs fetch <job-url> --format votable --out result.xml
starfetch tap jobs delete <job-url>

後続のコマンドには、ジョブの絶対 URL を指定すれば十分です。ジョブ ID のみを指定する場合は、Starfetch が TAP の /async エンドポイントを解決できるように、--service または --url が必要です。

TypeScript API

スクリプト、アプリ、またはカスタムエージェントアダプターから TAP に直接アクセスする場合は、@starfetch-js/core をインストールします。

npm install @starfetch-js/core
import { registry, tap } from "@starfetch-js/core";

const client = tap("gaia");
const columns = await client.columns("gaiadr3.gaia_source");
const result = await client.query(
  "SELECT TOP 5 source_id, ra, dec FROM gaiadr3.gaia_source",
  { format: "votable", maxrec: 5 },
);

console.log(columns.length);
console.log(await result.fields());
console.log(await result.overflow());
console.log(await result.json());

const services = await registry().searchTapServices({
  query: "gaia",
  maxrec: 5,
});
console.log(services[0]?.accessUrl);

tap(target) は、既知のプリセット、TAP ベース URL、またはサービスや URL を含むオブジェクトを受け付けます。メタデータメソッドは TAP の /availability、/capabilities、/tables を読み取ります。同期待ちのクエリには /sync を使用し、明示的なジョブには /async を使用します。

Gaia の固有運動デモを実行する

デモのメタデータ優先の Gaia クエリを再現し、正確な ADQL、有効な上限、返された行を出力します。

git clone https://github.com/starfetch-js/starfetch.git
cd starfetch
npm ci
npm run build
node examples/quickstart/run.mjs

このコマンドは、公開 Gaia TAP サービスにクエリを実行します。CLI、TypeScript API、ライブ TAP、MCP Inspector のワークフローについては、starfetch-js/examples を参照してください。各例には、正確な ADQL、想定される列、クロスプラットフォームの Node.js ランナーが含まれています。

git clone https://github.com/starfetch-js/examples.git
cd examples
npm ci
node 01-gaia-nearby-stars/run.mjs

このリポジトリから、次のコマンドで MCP Inspector を起動します。

npm run inspect:mcp

パッケージ

  • @starfetch-js/mcp:主要な stdio MCP サーバーと、パッケージに含まれるエージェント向けガイダンス。
  • @starfetch-js/skill:任意で配布できる Starfetch エージェントスキル。
  • @starfetch-js/cli:スクリプト作成、TAP の検査、クエリ、非同期ジョブ、スキルのインストール用コマンド。
  • @starfetch-js/core:再利用可能な TAP、VOSI、UWS、VOTable、レジストリ、出力変換のプリミティブ。

開発

コミット済みのロックファイルを使用して依存関係をインストールします。

npm ci

プライベートな Streamable HTTP 開発アプリを次のコマンドで実行します。

npm run dev:http

MCP は http://127.0.0.1:3000/mcp で、プロセスのヘルスチェックは http://127.0.0.1:3000/health で提供されます。MCP リクエストごとに、新しいステートレスの @starfetch-js/mcp サーバーが作成されます。HTTP インターフェイスでは、正規の 12 個の Starfetch ツールは変更せず、イミュータブルな ui://starfetch/table/v1 MCP Apps リソースを通じて、UI に連携する 2 つのツールを追加します。starfetch_render_table は TAP リクエストを送信せずに、既存のテーブルビューを表示します。 starfetch_query_table は、インタラクティブな科学データテーブル用に同期 JSON クエリを実行します。読み込み済みのテーブル全体はウィジェット専用で、モデルには 20 行のプレビューが渡されます。通常の MCP クライアントは、ウィジェットを読み込まずに、引き続き正規のテキスト結果と構造化結果を使用できます。設定は環境変数のみで行います。

  • HOST の既定値は 127.0.0.1 です。すべてのインターフェイスで待ち受けるには、明示的に 0.0.0.0 を設定します。
  • PORT の既定値は 3000 です。
  • ALLOWED_ORIGINS は、完全一致するブラウザーオリジンをカンマ区切りで指定するリストです。既定値は空です。
  • SHUTDOWN_GRACE_MS の既定値は 10000 で、1 から 60000 まで指定できます。
  • STARFETCH_JOB_CAPABILITY_SECRET は、32 バイト以上の base64url シークレットです。HOST がループバック以外の場合は必須です。ループバックでの開発では、省略時にプロセスごとの一時的なシークレットが使用されます。

匿名 HTTP ポリシーは、個別に調整できる環境変数の集まりではなく、固定されテスト済みの製品プロファイルです。MCP リクエストは 2 MiB、TAP レスポンスは 8 MiB、インラインアップロードは 1 MiB、MAXREC は 10,000、リダイレクトは 3 回、アウトバウンドリクエストは同時に 4 件、ツールの実行時間は 60 秒に制限されます。正規の同期クエリの既定値は引き続き MAXREC=100 です。インタラクティブなテーブルクエリの既定値は MAXREC=1000 で、ウィジェットのペイロードは 6 MiB に制限されます。 ジョブの待機時間は既定で 30 秒、上限は 45 秒です。ポーリング間隔は 1 秒から 10 秒です。プロセス全体で、MCP リクエストは 1 分あたり 100 件まで受け付けます。クライアント単位の制限が必要なデプロイでは、信頼できる HTTPS イングレスで適用してください。

HTTP ホストは、認証情報を含まない HTTPS の TAP ターゲットのみを受け付けます。DNS の完全な結果がすべてパブリックであることを確認し、各リクエストのホップで検証済みのアドレスを固定し、リダイレクトを同一オリジンに制限し、書き込みリダイレクトを自動的に追跡せず、リモート URI による TAP アップロードを拒否します。これらの制限は匿名 HTTP アプリに適用され、ローカルの stdio MCP、CLI、TypeScript API には適用されません。 ウィジェットを開かずにプロトコルのサーフェスを検証するには、アプリを起動し、別のシェルで MCP Inspector の CLI を実行します。

npx -y @modelcontextprotocol/inspector@latest --cli http://127.0.0.1:3000/mcp --transport http --method tools/list
npx -y @modelcontextprotocol/inspector@latest --cli http://127.0.0.1:3000/mcp --transport http --method tools/call --tool-name starfetch_list_presets

MCP Inspector の Apps タブでウィジェットを表示するには、次の手順に従います。

  1. npm run dev:http を実行したまま、stdio サーバーコマンドを指定せずに Inspector の UI を起動します。

    npx -y @modelcontextprotocol/inspector@latest
    
  2. Inspector で Via Proxy を選択し、Streamable HTTP を選んで、http://127.0.0.1:3000/mcp を入力します。認証欄は空のままにして、接続します。

  3. Apps を開き、Refresh Apps を選択して、starfetch_render_table を選びます。Apps タブにはサーバー名ではなく、UI に関連付けられたツールが表示されます。

  4. App Input に有効な範囲内のテーブルビューを貼り付けて、Open App を選択します。この最小限のプリセットビューでは、ライブ TAP リクエストを行わずにウィジェットをテストできます。

    {
      "contractVersion": 1,
      "resultKind": "presets",
      "title": "TAP service presets",
      "columns": [
        { "key": "name", "label": "Name" },
        { "key": "url", "label": "TAP URL" }
      ],
      "rows": [
        {
          "name": "gaia",
          "url": "https://gea.esac.esa.int/tap-server/tap"
        }
      ],
      "source": { "tool": "starfetch_list_presets" },
      "state": "populated",
      "clipping": {
        "reasons": [],
        "sourceRows": 1,
        "sourceColumns": 2
      }
    }
    

Apps タブには Streamable HTTP エンドポイントが必要です。標準の stdio サーバーは、UI リソースなしで Starfetch のコアツールを公開します。Inspector の Via Proxy モードは、デフォルトのオリジンポリシーで動作します。Direct モードを使用するには、アプリの起動時に Inspector のブラウザーオリジンを明示的に許可します。

ALLOWED_ORIGINS=http://localhost:6274,http://127.0.0.1:6274 npm run dev:http

ウィジェットは標準の MCP Apps ホストブリッジを使用して、ツールの結果、テーマ変数、表示モードのリクエスト、モデルコンテキストの更新、ファイルのダウンロードを処理します。また、ChatGPT の初期ツールグローバルが存在する場合はそれを読み込み、ダウンロードのフォールバックとしてのみ ChatGPT のファイル API を使用します。React UI では、セマンティックなテーブルマークアップ、テーブル全体に適用される TanStack Table のソート、ページ単位の行選択、デスクトップ向けの 100 行のページ、モバイル向けの 10 行のページ、正確な ADQL の細粒度な Shiki SQL ハイライトを使用します。デスクトップのテーブルは、幅と高さが制限された 2 軸のスクロールビューポートを使用します。モバイルのテーブルはページの高さまで広がり、結果の幅が広い場合は横スクロールを維持します。アクションツールバーのアイコンのみのコントロールから、全画面表示またはインライン表示モードをリクエストできます。別のアクションでは、選択した行または現在のページを次のターン用にモデルに公開できます。読み込まれたテーブル全体が公開されることはありません。このアクションは常に利用でき、押すたびに、保留中のモデルコンテキストのスナップショットが置き換わります。リソースはネットワークドメインも静的リソースドメインも宣言せず、clipboard-write 権限のみをリクエストします。

ユニットテスト、単一ファイルのビルド、ブラウザーホストの受け入れチェックを実行するには、次のコマンドを実行します。

npm --workspace @starfetch-js/mcp-app run check
npm --workspace @starfetch-js/mcp-app run test:browser

Docker を使用して、本番用 Linux コンテナをビルドし、スモークテストします。

npm run smoke:container

イメージのワークフローでは、不変コンテナを ghcr.io/starfetch-js/starfetch-mcp-app に公開します。

ChatGPT Developer Mode または別のリモート MCP Apps ホストを使用するには、ローカルの MCP エンドポイントを HTTPS 経由で公開し、生成された /mcp URL をホストに追加します。メタデータツールを呼び出して対象を確認し、次に starfetch_query_table を呼び出します。ライトテーマとダークテーマ、全画面表示とインライン表示、横スクロール、ソート、ページ切り替え、ADQL のハイライト表示とコピー、現在のページのモデルコンテキストへの反映、TSV、CSV、JSON のコピーとダウンロードの各アクションを確認します。ホストごとの視覚的な違いには、別のコンポーネント実装を用意するのではなく、ブリッジのテーマ変数で対応してください。

一時的なリモート URL を使用する場合、開発マシンでは次のコマンドを実行できます。

cloudflared tunnel --url http://127.0.0.1:3000 --http-host-header 127.0.0.1:3000

HTTP アプリには認証がありません。プロセス単位で、MCP リクエスト 100 件/分の粗い固定ウィンドウ制限を適用します。クライアント単位の不正利用対策ではありません。クイックトンネルは公開され、一時的に利用できるものです。機密性のないテストトラフィックのみを使用し、テスト終了後は直ちに停止してください。この開発用アプリは、本番環境へのデプロイ基盤ではありません。

ワークスペースには Node.js >=22.13.0 が必要です。次のコマンドを実行します。

npm run format:check
npm run lint
npm run typecheck
npm test
npm run coverage
npm run build
npm run smoke:cli

リリースに影響するエージェントサーフェスのチェックは次のとおりです。

npm --workspace packages/mcp run typecheck
npm --workspace packages/mcp run test
npm --workspace packages/mcp run build
npm --workspace packages/mcp run smoke

npm --workspace @starfetch-js/mcp-app run check

npm --workspace packages/skill run typecheck
npm --workspace packages/skill run test
npm --workspace packages/skill run build

デフォルトのテストでは、ローカルのフィクスチャとモックのみを使用します。オプションのライブ TAP チェックは明示的に実行します。

npm run test:live:tap

ライセンス

MIT

コメント

MCP は初めてですか?

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

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