AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

SaC — Software as Content

mcp-software-as-content-software-as-content-sdk · by dynsoft-lab

Give your AI agent the ability to respond with live, interactive apps that evolve.

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add mcp-software-as-content-software-as-content-sdk

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.2 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.2. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-software-as-content-software-as-content-sdk)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of SaC — Software as Content? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

SaC SDK

Interaction layer between you and your agents.

[](https://pypi.org/project/sac-sdk/) [](https://pypi.org/project/sac-sdk/) [](./LICENSE)

Home Page · Full Paper


AI agents can reason, code, and call APIs — but when they need to communicate back to you, all they have is text. SaC (Software as Content) is the missing interaction layer: your agent responds with a live, persistent, interactive app that evolves as the conversation continues. Not a screenshot, not a markdown wall — a real UI you click, explore, and shape together with your agent.

Quickstart

1. Install

pip install sac-sdk

2. Run

sac serve

First time? It'll ask for your API key and save it. Then open http://localhost:18420, type "3-day Tokyo trip planner with budget", and watch a live React app stream in. Click buttons. Ask it to evolve. This is SaC running a built-in agent loop — no external agent needed.

Connect to your agent

SaC plugs into the agent you already use — through [MCP](#claude-code-mcp), [Skill](#codex-skill), or [code](#python-build-your-own-agent).

Claude Code (MCP)

pip install sac-sdk
sac setup claude-code        # registers SaC as an MCP server

Restart Claude Code. Then try:

> "Help me understand this codebase using a visualized and interactive app using SaC MCP."

[Setup details →](./integrations/claude-code/)

Codex (Skill)

pip install sac-sdk
sac setup codex              # installs the SaC skill
sac serve                    # keep running in a terminal

[Setup details →](./integrations/codex/)

OpenClaw (Skill)

pip install sac-sdk
sac setup openclaw           # installs the SaC skill
sac serve                    # keep running in a terminal

[Setup details →](./integrations/openclaw/)

Python (build your own agent)

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

How it works

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
                   ◀── ...

One URL, one conversation. The agent doesn't generate a new page every turn — it evolves the existing app. Users keep their context; the agent keeps its state.

Two channels, one loop: every response is either a UI update (the app evolves) or a chat reply (a text bubble). Users can click buttons in the app OR type in the chat — both go back to the agent through the same callback.

When to use SaC

SaC is for tasks where exploration and interaction matter more than a final answer.

Good fit: trip planning, data analysis dashboards, comparison shopping, project planning, research, financial reviews, decision aids, internal tools

Not the right tool for: simple Q&A, one-shot automations ("set an alarm"), conversations that are purely text

Customize

Every layer is pluggable:

from sac import SaC, FileStore

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

Prompts live in [src/sac/runtime/prompts/](./src/sac/runtime/prompts/) and the default design system is in [src/sac/renderer/design-systems/default/](./src/sac/renderer/design-systems/default/).

Architecture

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

[Full architecture →](./docs/architecture.md)

Project status

v0.1.2 — alpha. The core protocol (generate → evolve → callback loop) is stable and runs in production at sac.dynsoft.ai. The SDK surface is being polished toward v1.0.

Contributing

Issues and PRs welcome. Highest-leverage contributions right now:

  • Prompt improvements in [src/sac/runtime/prompts/](./src/sac/runtime/prompts/)
  • Design system contributions in [src/sac/renderer/design-systems/](./src/sac/renderer/design-systems/)

For local dev: pip install -e .

Citation

@article{xie2026sac,
  title  = {Software as Content: Dynamic Applications as the Human-Agent Interaction Layer},
  author = {Xie, Mulong},
  year   = {2026},
  url    = {https://arxiv.org/abs/2603.21334}
}

License

[Apache-2.0](./LICENSE) · © 2026 Mulong Xie / Dynsoft Lab


Built by Dynsoft Lab. Questions: [mulong@mulongxie.me](mailto:mulong@mulongxie.me)

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.2 Imported from the upstream source.