mcpField
S
sdcmodeler

sdcmodeler

ローカル
github.com/Axius-SDC開発ツール03 日前に更新

sdcmodeler について

sdcmodeler は SDCStudio 向けの Python クライアント、CLI、MCP サーバーです。モデラーやエージェントが公開カタログを検索し、SDC4 モデルを見積もり・構築して、公開やパッケージ、アプリの生成を行えます。

主な機能

  1. 01公開コンポーネントカタログの検索
  2. 02モデルの再利用とコストの見積もり
  3. 03SDC4 モデルの組み立てと公開
  4. 04パッケージとアプリの生成
  5. 05ビルドジョブの状態確認

活用シーン

  1. 01新しいモデルでカタログのコンポーネントを再利用
  2. 02構築前にモデルのコストを見積もる
  3. 03モデルを公開してパッケージを取得
  4. 04モデルから Django アプリを生成

MCP 対応

`sdcmodeler mcp` コマンドで JSON-RPC 2.0 の標準入出力サーバーを起動します。カタログ検索、モデルの見積もりと構築、ジョブ確認、パッケージ取得、アプリ生成のツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"axius-sdc-sdcmodeler": {
"command": "uvx",
"args": [
"sdcmodeler"
],
"env": {
"SDCSTUDIO_API_KEY": "<SDCSTUDIO_API_KEY>"
}
}
}
}
起動コマンドuvx sdcmodeler
設定が必要な環境変数
SDCSTUDIO_API_KEYシークレットAn SDCStudio API key (Settings, API Keys) with the scopes and spending limit the agent should have. Optional: the catalog and estimates work without one.

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

パッケージ
pypisdcmodeler4.3.2

ツール

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

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

詳細

sdcmodeler

**SDCStudio 向けのモデラークライアントです。**公開カタログを検索し、見積もりを取得して、SDC4 データモデルを組み立てて公開します。さらに、そのパッケージとアプリケーションを生成します。依存関係は httpx のみの Python クライアント、CLI、そしてあらゆるエージェントで使える MCP サーバー sdcmodeler mcp を提供します。

License Python

理由

エージェントが機能を構築するとき、その場でデータモデルを決めます。sdcmodeler を使えば、データはデフォルトで SDC にモデル化されます。エージェントはまずカタログを検索し、適合する公開済みコンポーネントがあれば再利用し、新しいものだけを作成してモデルを公開し、パッケージを取得します。共有・公開済みのコンポーネントで構成されるため相互運用性があり、すべてのレコードが公開済みスキーマに照らして検証されるため、検証可能です。

この名前は、ほかの Semantic Data Charter サーバーと同じ役割を表す命名パターンに従っています。sdcvalidator は検証し、sdcgovernance はガバナンスを担い、sdcreader は読み取り、sdcmodeler はモデル化します。また、SDCStudio がすべてのユーザーを指す際に使う「Modeler」という名称も表しています。

インストール

pip install sdcmodeler

カタログと見積もりにはアカウントは必要ありません。構築には SDCStudio API キーが必要です。Settings の API Keys で、利用者に付与するスコープと支出上限を設定して作成してください。

export SDCSTUDIO_API_KEY=sdcs_...

3 つのレイヤー

クライアント
from sdcmodeler import SDCStudioClient

c = SDCStudioClient()                       # key from $SDCSTUDIO_API_KEY, URL from $SDCSTUDIO_URL
hits = c.search_components("blood pressure", type="xdquantity")
tree = {
    "label": "Vitals",
    "components": [
        {"ct_id": hits["results"][0]["ct_id"]},            # reuse: free
        {"label": "Pulse", "data_type": "XdCount"},        # mint: 100 credits
    ],
    "clusters": [],
}
estimate = c.estimate(tree, "Vitals")       # the server's estimate: reuse, mint, problems, total_credits, wallet, key, estimate_id
result = c.assemble("Vitals", tree, estimate_id=estimate["estimate_id"])   # 500 credits plus the mints

すべてのリーフが既存の場合、サーバーは 1 回の呼び出しで組み立て、公開し、パッケージを生成します(result["mode"] == "reuse"。published と generated がその状態を示します)。新しいリーフがある場合、パイプラインが実行され、result["job_ct_id"] を c.job_status(...) または c.wait_for_job(...) で completed になるまでポーリングします。完了時には、ジョブが依頼どおりに公開と生成を済ませ、結果にモデルへのリンクが含まれています。publish=False にすると、担当者が確認できるよう下書きが残ります。見積もり後にツリーが変更された場合、サーバーは構築を拒否します。

402 は、クレジット数を含む InsufficientCredits です。キーのポリシー(spend スコープがない、または上限を超過した)による 403 は、KeyPolicyRefused です。クライアントがウォレットに入金することはありません。入金は担当者がウォレットページで行います。

CLI
sdcmodeler search "blood pressure" --type xdquantity
sdcmodeler models "patient"
sdcmodeler model <ct_id>
sdcmodeler artifact <ct_id> xsd --dir ./schemas
sdcmodeler estimate tree.json --title "Vitals"
sdcmodeler build tree.json --title "Vitals" --wait
sdcmodeler job <job_ct_id>
sdcmodeler package <ct_id> --dir ./packages
sdcmodeler app <ct_id> --profile lightweight --dir ./apps
sdcmodeler wallet
MCP サーバー
sdcmodeler mcp

SDK を使わない JSON-RPC 2.0 の標準入出力サーバーです。sdcvalidator と sdcgovernance も同じ方式で構築されています。クライアント設定に必要なのは次の項目だけです。

{"command": "uvx", "args": ["sdcmodeler", "mcp"], "env": {"SDCSTUDIO_API_KEY": "sdcs_..."}}
ツール内容支出
search_componentsラベル、タイプ、プロジェクトで公開カタログを検索いいえ
list_models, get_model公開済みモデルとそのアーティファクトのルートを取得いいえ
estimate_modelツリーで再利用・作成されるものとコストを見積もり、estimate_id を返すいいえ
build_model組み立て、公開、生成(または下書きの場合は publish: false)。担当者が確認した estimate_id が必要。キーの上限を超える場合は拒否はい
job_statusID で指定した 1 つのジョブについて、ステータス、ステップ、現時点までのコスト、モデルへのリンクを取得いいえ
download_packageキーを使ってモデルのパッケージ ZIP を取得。プライベートプロジェクトのモデルにも対応。generate が false でない限り、パッケージがなければ最初に生成(無料、1 回のみ)いいえ
generate_appアプリケーションを生成してダウンロード。confirm_charge が必要。初回は 1,500 クレジット、以降は無料はい
walletクレジット残高とキーのポリシーを取得いいえ

**ポリシーはサーバー側にあります。**表示済みの見積もりなしに支出することはありません。build_model には、このプロセスで同じタイトルとツリーに対して estimate_model が返した estimate_id を渡します。キーの上限で停止します。見積もり額がキーで追加支出できる額を超える構築は、サーバーへのリクエスト前に拒否されます。支払いは決して行いません。402 が返された場合はウォレットページのアドレスを通知し、ツールは停止します。URL、キー、支払い方法を引数に取るツールはありません。キーはサーバーの起動環境に設定します。

パッケージかアプリケーションか

get_model は、アーティファクトの名前を指定します。XSD 1.1 スキーマ、インスタンステンプレート、JSON、JSON-LD、SHACL、HTML、GraphQL です。パッケージは実行時環境を伴わない契約です。既存のアプリケーション内の機能が、任意の言語でこれを実装し、sdcvalidator を使ってすべてのレコードをローカルで検証します。生成されるアプリケーション(軽量プロファイルまたはエンタープライズプロファイル)は、新しいサービスを作る場合に、同じパッケージ上で動作する Django 実装です。CordovaOS は、統合コードを一切使わずにデータを共有する、そのようなアプリケーション10個で構成されています。

ここにないもの

検証(sdcvalidator のサーバー)、ガバナンス(sdcgovernance のサーバー)、受領証の検証(sdcreceipt のサーバー)、既存データの取り込み(sdc-agents)は、それぞれ独立して登録されたサーバーです。sdcmodeler はこれらと連携しますが、再実装はしません。

リリース

手順は2つです。main にマージし、次に pyproject.toml のバージョンと一致する v<version> タグをプッシュします。release.yml がテストとビルドを実行し、Trusted Publisher を通じて PyPI に、また MCP レジストリに公開します。

ライセンス

Apache License 2.0。Copyright Axius SDC, Inc.

コメント

MCP は初めてですか?

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

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