mcpField
P
Pixeltable Developer

Pixeltable Developer

ローカル
pixeltable.com開発ツール76 日前に更新

Pixeltable Developer について

Pixeltable Developerは、Pixeltableアプリを構築・運用する開発者向けのローカルMCPサーバーです。`pxt` CLIを通じてアプリのひな型を作成し、スキーマやサービスを管理して、カタログデータを確認・更新できます。

主な機能

  1. 01`app.py`にアプリのひな型を作成
  2. 02スキーマの確認、差分表示、更新
  3. 03Pixeltableサービスの管理
  4. 04行データと計算エラーの確認
  5. 05行の挿入と値の再計算
  6. 06ワークフローのプロンプトとガイダンス

活用シーン

  1. 01エージェントを使ったPixeltableアプリのひな型作成
  2. 02`app.py`からのカタログスキーマ更新
  3. 03行データの確認と失敗した計算の復旧

MCP 対応

このサーバーはローカルの`stdio`経由で、Pixeltableのツール、リソース、プロンプトをMCPクライアントに公開します。アプリのひな型作成、カタログの確認、データ変更、スキーマとサービスのライフサイクル操作に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pixeltable-mcp-server-pixeltable-developer": {
"command": "uvx",
"args": [
"mcp-server-pixeltable-developer"
],
"env": {
"PIXELTABLE_MCP_PROJECT_ROOT": "<PIXELTABLE_MCP_PROJECT_ROOT>",
"PIXELTABLE_HOME": "<PIXELTABLE_HOME>"
}
}
}
}
起動コマンドuvx mcp-server-pixeltable-developer
設定が必要な環境変数
PIXELTABLE_MCP_PROJECT_ROOTApplication directory holding your Pixeltable app.py. Fixed for the life of the server process.
PIXELTABLE_HOMECatalog directory the server may read and mutate.

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

パッケージ
pypimcp-server-pixeltable-developer0.2.1

ツール

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

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

詳細

Pixeltable 開発者向け MCP サーバー

PyPI CI Glama score

Pixeltable アプリケーションの構築と運用を行うローカル MCP サーバーです。pxt CLI を通じて、エージェントは app.py を 1 つ生成し、そのテーブルをカタログに適用して、行を挿入・確認し、失敗した計算を復旧させ、HTTP ルートを提供します。これはベータ版の開発者向けツールです。お使いの権限で実行され、指定したカタログを変更します。

クイックスタート

uv をインストールしてください。サーバーは PyPI にあり、uvx がダウンロードして実行します。

Claude Code:

claude mcp add pixeltable -e PIXELTABLE_MCP_PROJECT_ROOT=/absolute/path/to/app -e PIXELTABLE_HOME=/absolute/path/to/.pixeltable -- uvx mcp-server-pixeltable-developer

その他のクライアント(Claude Desktop、Cursor、VS Code など):

{
  "mcpServers": {
    "pixeltable": {
      "command": "uvx",
      "args": ["mcp-server-pixeltable-developer"],
      "env": {
        "PIXELTABLE_MCP_PROJECT_ROOT": "/absolute/path/to/app",
        "PIXELTABLE_HOME": "/absolute/path/to/.pixeltable"
      }
    }
  }
}

アプリのディレクトリが存在している必要があります。空でも問題ありません。サーバーがそこに app.py を生成できます。設定を変更した後は、クライアントを再起動してください。

変数必須効果
PIXELTABLE_MCP_PROJECT_ROOTはいapp.py を格納するディレクトリです。このディレクトリ外のファイル引数は拒否されます。
PIXELTABLE_HOMEはいサーバーが読み取り、変更するカタログです。~/.pixeltable は pxt CLI が使用するカタログです。テストには別のカタログを使用してください。
PXT_PORTいいえサーバーの pxt デーモンのポートです。デフォルトは 22089 です。1 つのデーモンが 1 つのポートにつき 1 つのプロジェクトを提供します。別のプロジェクトから pxt コマンドを実行するとデーモンが再起動されるため、実行中の呼び出しは RemoteDisconnected で失敗します。同時に別のプロジェクトで pxt を実行する場合は、22090 などの空きポートを設定してください。
PIXELTABLE_MCP_ENABLE_UNSAFEいいえ1 を指定すると、任意の Python コードを実行し、パッケージをインストールするツールが追加されます。安全でないモードを参照してください。
PIXELTABLE_MCP_PXTいいえ特定の pxt 実行ファイルです。デフォルトでは、サーバーは自身と同じ場所にインストールされたものを使用します。

どちらのパスも、プロセスの実行中は固定されます。スキーマやサービスの変更を適用する場合は、カタログごとにサーバーを 1 つ実行してください。

その他の実行方法

チャネル内容
公式 MCP Registryio.github.pixeltable/mcp-server-pixeltable-developer。レジストリを参照するクライアントは、PyPI パッケージをインストールします。
Claude プラグイン開いているプロジェクトをアプリのディレクトリとして、~/.pixeltable をデフォルトのカタログとして使用し、ポート 22090 を使います。
Glama品質スコア付きのディレクトリ掲載ページです。
Dockerこのリポジトリからビルドされたイメージです。以下を参照してください。
クローン"command": "uv"、"args": ["run", "--directory", "/absolute/path/to/clone", "mcp-server-pixeltable-developer"]

Docker:アプリのディレクトリをマウントし、カタログは名前付きボリュームに保存して永続化してください。macOS ホストからカタログをバインドマウントしないでください。Postgres がそのディレクトリに権限を設定できず、initdb が失敗します。macOS では、アプリのパスもコンテナエンジンと共有する必要があります。そうしないと、マウント先がエンジンの VM 内になります。

docker build -t mcp-server-pixeltable-developer .
docker run --rm -i \
  -e PIXELTABLE_MCP_PROJECT_ROOT=/work/app -e PIXELTABLE_HOME=/work/catalog \
  -v /absolute/path/to/app:/work/app \
  -v pixeltable-catalog:/work/catalog \
  mcp-server-pixeltable-developer

サーバーが公開する機能

領域ツール
確認pixeltable_list_catalog、pixeltable_describe、pixeltable_rows、pixeltable_get_row、pixeltable_errors
データpixeltable_insert_rows、pixeltable_recompute
アプリのひな形pixeltable_scaffold_app
スキーマのライフサイクルpixeltable_schema_check、pixeltable_schema_diff、pixeltable_schema_update、pixeltable_schema_prune
サービスのライフサイクルpixeltable_service_check、pixeltable_service_diff、pixeltable_service_update、pixeltable_service_list、pixeltable_service_stop、pixeltable_service_prune

読み取りツールには読み取り専用のアノテーションが付与されます。変更ツールには書き込み動作と破壊的な動作が明示されます。プルーニングツールはデフォルトでドライランを実行します。エラーは MCP ツールエラーとして返されるため、クライアントは修正した入力で再試行できます。

リソース内容
pixeltable://statusサーバー、Pixeltable、MCP のバージョン、トランスポート、危険なモードの状態
pixeltable://catalogカタログの一覧
pixeltable://guidance/app以下のアプリケーションのワークフロー
pixeltable://guidance/cloudクラウドの準備手順。サーバーは何もデプロイしません

プロンプト:pixeltable_build_app、pixeltable_build_rag、pixeltable_build_agent、pixeltable_debug_computation。これらは pixeltable-skill 2.12.0 に従います。プロバイダー、マルチモーダルビュー、インデックス、ツール呼び出し、サービングについては、引き続きこちらを詳細なリファレンスとして参照してください。

Pixeltable のワークフロー

ツールがラップするコマンドは次のとおりです。

pip install 'pixeltable[serve]>=0.7.10,<0.8'
pxt init
pxt service example --out app.py
pxt schema check app.py
pxt schema diff app.py my_app
pxt schema update app.py my_app
pxt service update app.py my_app
pxt service list
  • my_app はカタログディレクトリであり、ディスク上のフォルダーではありません。割り当てられた URL は pxt service list で確認できます。
  • app.py では、保存列はアノテーション、計算列は代入として記述します。 型は null 非許容です。オプション列には T | None と記述してください。pxt.Required は使用しないでください。
  • 計算式を変更するには、式を編集してスキーマを更新します。更新後も既存の値は保持されるため、値を再計算するには pxt recompute my_app/docs COLUMN -f を実行してください。型をそのまま変更することはできません。代わりに計算列の名前を変更してください。
  • クラウドでも同じ app.py を使用します。pxt login を実行し、pixeltable.toml に [[pixeltable.database]] エントリを追加して、プロバイダーのキーは pxt secret set で設定します。TOML ファイルには記述しないでください。 pixeltable://guidance/cloud に手順が記載されています。サーバーは有料リソースを作成しません。

危険なモード

PIXELTABLE_MCP_ENABLE_UNSAFE=1 を設定すると、pixeltable_unsafe_execute_python、pixeltable_unsafe_install_package、pixeltable_unsafe_display が追加されます。これらは任意の Python コードを実行し、サーバーの環境を変更し、プロセスがアクセスできるあらゆるファイルを読み取り、ブラウザーのキャンバスに信頼できないコンテンツをレンダリングします。これらは stdio 経由でのみ利用できます。信頼できるローカルクライアントで、使い捨ての環境に限って有効にしてください。HTTP はサポート対象のトランスポートではありません。

互換性

コンポーネントサポート対象
Python3.11 以降。CI では 3.11 から 3.14 をテスト
Pixeltable>=0.7.10,<0.8(serve エクストラ付き)。0.7.16 に固定
MCP Python SDK>=2.2,<3。2.3.0 に固定
トランスポートローカル stdio

リリース

CHANGELOG.md に各バージョンでの変更内容を記載しています。0.2.1 は初の PyPI リリースです。

バージョンをリリースする手順:

  1. pyproject.toml、src/mcp_server_pixeltable_developer/__init__.py、 server.json(2か所)、mcpb/manifest.json、および .github/workflows/ci.yml とテスト内のアサーションでバージョンを更新します。 CHANGELOG.md に ## X.Y.Z セクションを追加し、uv lock を実行します。 すべてのバージョン表記が一致するまでテストは失敗します。
  2. マージした後、vX.Y.Z タグをプッシュします。CI ですべてのチェックを再実行し、 トラステッドパブリッシングで PyPI に公開し、変更履歴のセクションから GitHub リリースを作成した後、GitHub OIDC を使って server.json を MCP Registry に公開します。
  3. Registry のステップが失敗した場合は、新しいタグを作成せずに再実行します: gh workflow run mcp-registry.yml --repo pixeltable/mcp-server-pixeltable-developer --ref main。
  4. PyPI にリリースされたら、プラグインを独自の PR で更新します: plugin/.claude-plugin/plugin.json と plugin/pyproject.toml(バージョンと ピン留め)のバージョンを設定し、cp uv.lock plugin/uv.lock && uv lock --project plugin を実行します。 最初にルートのロックファイルをコピーすると、リリースのテストに使った依存関係のバージョンが維持されます。 plugin/uv.lock が Claude ディレクトリで読み込める上限の 256 KiB に達すると、テストは失敗します。

Glama は GitHub から同期します。Docker MCP Catalog のエントリー(docker/mcp-registry 内の servers/pixeltable/server.yaml)はコミットをピン留めするため、リリースごとに PR が必要です。

開発と検証

uv sync --frozen --extra test --extra canvas
uv run pytest -q
PIXELTABLE_DISABLE_STDOUT=1 uv run pytest -q --run-slow
uv run ruff check . && uv run ruff format --check . && uv run pyright
./scripts/run-conformance.sh
./scripts/build-mcpb.sh

--run-slow は、一時ディレクトリ内で実際のカタログとサービスを実行し、それぞれに専用の デーモンポートを割り当てます。build-mcpb.sh は Claude Desktop バンドルを dist/ に書き込みます。 手動テストでは、サーバーに対して MCP Inspector を実行します: uv run mcp dev src/mcp_server_pixeltable_developer/server.py:mcp。

プライバシーポリシー

サーバーは起動したマシン上でのみ動作します。テレメトリーやアナリティクスは収集せず、 Pixeltable や第三者にデータを送信することもありません。

取り扱うデータ。 PIXELTABLE_HOME にある Pixeltable カタログと、 PIXELTABLE_MCP_PROJECT_ROOT 以下のアプリケーションファイルです。どちらもユーザーが選択します。 ツールの結果は、サーバーを起動した MCP クライアントに返され、アシスタントはその方法で結果を読み取ります。 それ以外の宛先に結果が送られることはありません。

保存と保持。 サーバー独自のデータは保存しません。カタログデータはユーザーの管理下にある ディスク上の PIXELTABLE_HOME に保存され、削除すると消去されます。

シークレット。 コマンド出力は、クライアントに届く前に、URL パスワードや API トークンなどの 一般的な認証情報の形式をマスクするレダクターを通過します。

第三者。 アプリケーションでモデルプロバイダーを呼び出す計算列が宣言されている場合、 Pixeltable は設定された認証情報を使ってそれらを呼び出します。この通信はアプリケーションによるもので、 このサーバーによるものではありません。

安全でないモード。 PIXELTABLE_MCP_ENABLE_UNSAFE=1 を設定すると、追加のツールによって 任意の Python コードの実行、パッケージのインストール、サーバープロセスからアクセス可能なファイルの 読み取りが可能になります。信頼できるローカルマシンでのみ有効にしてください。

お問い合わせ。 プライバシーに関する質問は GitHub のイシューから報告してください。

ドキュメント

ライセンス

Apache-2.0。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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