Tracecatスキルの管理
Tracecat MCPには6つのスキルツールが用意されています:list_skills、get_skill、prepare_skill_download、prepare_skill_upload、complete_skill_upload、publish_skill。
書き込みはステージング形式で、インラインではありません。ファイルのバイト列がツール引数として渡されることはありません。prepare_skill_upload はメタデータ(パス、SHA-256、サイズ、コンテンツタイプ)のみを受け取り、ファイルごとに短寿命の PUT URL を返します。バイト列はそれらのURLに対してプレーンなHTTPで送信されます。complete_skill_upload がステージングされたblobをアタッチし、ドラフトを置き換えます。インラインの content_base64 引数を探したり、ファイルバイトをコンテキストに読み込んで送信しようとしないでください。
同梱のヘルパースクリプトは、手動でエラーが発生しやすい部分(安全なディレクトリ走査、シンボリックリンクの拒否、ルート SKILL.md の強制、SHA-256ダイジェスト計算)を自動的に処理します。
スキルのアップロード
スキルの作成と既存スキルの置き換えは同じ4つのステップで行います。唯一の違いは、prepare_skill_upload が受け取る識別引数です。
-
list_workspacesで対象のワークスペースを特定し、次にlist_skillsを呼び出します。新しいスキルの場合は、名前が空いていることを確認してください。skill_idを省略すると常に新しい行が作成されるため、2回作成すると同じnameを持つ異なるスラグのスキルが2つできます。既存のスキルの場合は、そのskill_idを取得します。 -
メタデータ配列をビルドします:
python3 <このスキルディレクトリ>/scripts/upload_skill_files.py metadata <ローカルスキルディレクトリ>このコマンドは
files配列をそのまま出力します。エントリごとにpath、sha256、size_bytes、content_typeが含まれます。ファイルの内容は含まれません。 -
prepare_skill_uploadをworkspace_idとそのfiles配列、さらに以下のいずれかを指定して呼び出します:name(およびオプションのdescription)を指定し、かつskill_idは指定しない場合:スキルを作成します。またはskill_idを指定し、かつname/descriptionは指定しない場合:既存のスキルのドラフトを置き換えます。
作成の場合、ローカルのフロントマターで宣言されているものと同じ
nameを渡してください。サーバーは検証前にnameとdescriptionを保存されたルートSKILL.mdフロントマターにマージするため、引数が一致しないと保存される内容が暗黙的に書き換えられます。レスポンスには
skill_id、base_revision、created、およびファイルごとのupload_id、upload_url、method、headers、expires_atが含まれます。 -
各ファイルの生のバイト列を、返されたメソッドとヘッダーを使用して対応する
upload_urlにPUTします。ディスクから直接読み取ってください。URLは短寿命です。expires_atを確認し、期限切れの場合は再試行する代わりに再準備してください。 -
complete_skill_uploadをworkspace_id、skill_id、ステップ3で取得したbase_revision、およびすべてのファイルに対する `{