mcpField
S

SaC — Software as Content

ローカル
github.com/Software-As-Content開発ツール47 週間前に更新

SaC — Software as Content について

SaCは、結果をテキストではなくインタラクティブなアプリとして提示するためのエージェント向けSDKです。同じURL上のアプリが会話に応じて更新され、クリックやチャットがエージェントに戻ります。

主な機能

  1. 01インタラクティブアプリの生成
  2. 02会話に応じたアプリの更新
  3. 03アプリ操作とチャットの処理
  4. 04LLM、検索、ストレージの差し替え

活用シーン

  1. 01操作できる旅行プランの作成
  2. 02ダッシュボードでのデータ探索
  3. 03選択肢の比較と意思決定支援

MCP 対応

SaCはClaude Codeなどのエージェントと接続するMCP stdioサーバーを備えています。エージェントはこれを通じてインタラクティブアプリを生成、更新できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"ai-dynsoft-sac": {
"command": "uvx",
"args": [
"sac-sdk"
],
"env": {
"SAC_API_KEY": "<SAC_API_KEY>",
"SAC_API_BASE": "<SAC_API_BASE>",
"SAC_MODEL": "<SAC_MODEL>",
"SAC_SEARCH_API_KEY": "<SAC_SEARCH_API_KEY>"
}
}
}
}
起動コマンドuvx sac-sdk
設定が必要な環境変数
SAC_API_KEYシークレットAPI key for the LLM provider (OpenRouter, Anthropic, OpenAI, etc.)
SAC_API_BASECustom API endpoint for OpenAI-compatible providers
SAC_MODELOverride the default generation model
SAC_SEARCH_API_KEYシークレットTavily API key for web search in generated apps

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

パッケージ
pypisac-sdk0.1.2

ツール

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

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

詳細

SaC SDK

あなたとエージェントをつなぐインタラクションレイヤー。

PyPI version Python License


AI エージェントは推論し、コードを書き、API を呼び出せます。しかし、あなたに返答する必要があるとき、使えるのはテキストだけです。SaC(Software as Content)は、欠けていた インタラクションレイヤー です。会話の進行に合わせて進化する、リアルタイムで、永続的かつインタラクティブなアプリでエージェントが応答します。スクリーンショットでも、マークダウンの壁でもありません。エージェントと一緒にクリックし、探索し、形作る、本物の UI です。

クイックスタート

1. インストール
pip install sac-sdk
2. 実行
sac serve

初回は API キーの入力を求められ、保存されます。その後、http://localhost:18420 を開き、「予算付きの3日間の東京旅行プランナー」と入力すると、リアルタイムで React アプリが表示されます。ボタンをクリックし、進化するように頼んでみてください。これが、組み込みのエージェントループで動作する SaC です。外部エージェントは必要ありません。

エージェントに接続する

SaC は、MCP、スキル、またはコードを通じて、すでに使っているエージェントに接続できます。

Claude Code(MCP)
pip install sac-sdk
sac setup claude-code        # registers SaC as an MCP server

Claude Code を再起動して、次のように試してください。

「SaC MCP を使った、視覚化されたインタラクティブなアプリで、このコードベースを理解するのを手伝ってください。」

Claude Code + SaC の例

セットアップの詳細 →

Codex(スキル)
pip install sac-sdk
sac setup codex              # installs the SaC skill
sac serve                    # keep running in a terminal
Codex + SaC の例

セットアップの詳細 →

OpenClaw(スキル)
pip install sac-sdk
sac setup openclaw           # installs the SaC skill
sac serve                    # keep running in a terminal
OpenClaw + SaC の例

セットアップの詳細 →

Python(独自のエージェントを構築)
from sac import SaC

sac = SaC()
conv = sac.conversation()
app = await conv.generate("3-day Tokyo itinerary")
print(app.url)   # user opens this
# app.code contains the generated TSX

仕組み

Your agent ──▶ SaC ──▶ User sees a live app at a URL
                   ◀── User clicks a button / types a message
Your agent ──▶ SaC ──▶ Same URL, app evolves in place
                   ◀── ...

URL は1つ、会話も1つです。エージェントはターンごとに新しいページを生成するのではなく、既存のアプリを進化させます。ユーザーはコンテキストを維持し、エージェントは状態を維持します。

2つのチャネル、1つのループ: 各応答は、UI の更新(アプリが進化する)またはチャットの返信(テキストの吹き出し)のいずれかです。ユーザーはアプリ内のボタンをクリックすることも、チャットに入力することもでき、どちらも同じコールバックを通じてエージェントに戻ります。

SaC を使う場面

SaC は、最終的な回答よりも 探索とインタラクション が重要なタスクに適しています。

適した用途: 旅行の計画、データ分析ダッシュボード、商品比較、プロジェクト計画、調査、財務レビュー、意思決定支援ツール、社内ツール

適さない用途: 単純な質疑応答、単発の自動化(「アラームを設定する」など)、テキストだけで完結する会話

カスタマイズ

すべてのレイヤーを差し替えられます。

from sac import SaC, FileStore

sac = SaC(
    llm=YourLLMProvider(...),       # any class implementing LLMProvider
    search=YourSearchProvider(...), # any class implementing SearchProvider
    store=FileStore(".sac"),
)

プロンプトは src/sac/runtime/prompts/ にあり、デフォルトのデザインシステムは src/sac/renderer/design-systems/default/ にあります。

アーキテクチャ

src/sac/
├── sac.py / conversation.py    Entry + Conversation primitive
├── runtime/                    Generate + Evolve pipeline, prompts, providers
├── server/
│   ├── http/                   FastAPI + SSE streaming + viewer
│   └── mcp/                    MCP stdio server (Claude Code integration)
└── renderer/                   iframe sandbox + design system

アーキテクチャの詳細 →

プロジェクトの状況

v0.1.2 — アルファ版です。コアプロトコル(生成 → 進化 → コールバックループ)は安定しており、sac.dynsoft.ai で本番運用されています。SDK の API は v1.0 に向けて調整中です。

コントリビューション

Issue や PR を歓迎します。現時点で特に効果の高いコントリビューションは次のとおりです。

ローカル開発の場合:pip install -e .

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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