코딩 에이전트가 Sapiom 에이전트 및 웹 애플리케이션을 로컬에서 스캐폴딩, 테스트, 배포 및 검사할 수 있도록 지원합니다.
다른 이름 sapiom/sapiom-js, @sapiom/mcp
- 스타
- 22
- Tools
- 27
- 다운로드, 30일
- —
- 최신 버전
- 0.20.0
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
Sapiom Dev MCP란?
Sapiom Dev은(는) MCP server입니다. 코딩 에이전트가 Sapiom 에이전트 및 웹 애플리케이션을 로컬에서 스캐폴딩, 테스트, 배포 및 검사할 수 있도록 지원합니다. 27개 도구를 제공합니다. 예: sapiom_authenticate, sapiom_status, sapiom_logout.
프로젝트 README에서 생성된 요약
Sapiom Dev MCP server 정보
Sapiom 에이전트 및 웹 애플리케이션을 구축하는 개발자는 코딩 에이전트 내에서 프로젝트의 전체 라이프사이클을 관리할 수 있습니다. npx를 통해 실행되는 이 로컬 MCP server는 새로운 프로젝트를 스캐폴딩하고, 스텁된 기능을 사용하여 로컬 테스트를 수행하며, 코드를 클라우드에 배포하는 일련의 도구를 제공합니다. 로컬 실행 중 기능 사용 비용이 발생하지 않도록 설계되어 로컬 개발 워크플로우에서 에이전트 로직을 반복적으로 개선할 수 있습니다.
사용자는 deploy, run, schedule과 같은 도구를 통해 클라우드 기반 배포를 관리하고, 실행 상태를 검사하며, 스케줄링을 처리할 수 있습니다. 웹 애플리케이션의 경우, 이 서버를 통해 임시 샌드박스 URL을 생성하거나 영구적인 App Link를 게시할 수 있습니다. 인증은 브라우저 기반 로그인을 통해 처리되며 자격 증명은 로컬에 캐시됩니다. 서버는 production 및 staging과 같은 다양한 환경을 지원하며 환경 변수를 사용하여 전환할 수 있습니다. 또한 에이전트 아키텍처와 연결 관계를 매핑하는 특화된 기능도 포함되어 있습니다.
활용 사례
- 1웹 애플리케이션 게시개발자는 웹 앱을 임시 샌드박스 환경에서 영구적이고 지속 가능한 App Link로 전환할 수 있습니다.
- 2에이전트 아키텍처 시각화사용자는 코드를 통해 서로 다른 에이전트, 시스템 및 단계가 어떻게 연결되어 있는지 지도를 생성할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Sapiom Dev MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Sapiom Dev MCP 설치
$ claude mcp add mcp -- npx -y @sapiom/mcpCursor에 Sapiom Dev MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@sapiom/mcp"
]
}
}
}VS Code에 Sapiom Dev MCP 설치
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sapiom/mcp"
]
}
}
}VS Code CLI에 Sapiom Dev MCP 설치
$ code --add-mcp '{"name":"mcp","type":"stdio","command":"npx","args":["-y","@sapiom/mcp"]}'Claude Desktop에 Sapiom Dev MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@sapiom/mcp"
]
}
}
}Codex에 Sapiom Dev MCP 설치
$ codex mcp add mcp -- npx -y @sapiom/mcpCodex config.toml에 Sapiom Dev MCP 설치
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@sapiom/mcp"]
Gemini CLI에 Sapiom Dev MCP 설치
$ gemini mcp add -s user mcp npx -- -y @sapiom/mcpGemini settings.json에 Sapiom Dev MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@sapiom/mcp"
]
}
}
}Sapiom Dev MCP 도구 27
README에서 감지됨sapiom_authenticatesapiom_statussapiom_logoutsapiom_send_feedbacksapiom_dev_agents_scaffoldsapiom_dev_agents_checksapiom_dev_agents_run_localsapiom_dev_agents_linksapiom_dev_agents_clonesapiom_dev_agents_deploysapiom_dev_agents_runsapiom_dev_agents_inspect
| sapiom_authenticate | — | |
| sapiom_status | — | |
| sapiom_logout | — | |
| sapiom_send_feedback | — | |
| sapiom_dev_agents_scaffold | — | |
| sapiom_dev_agents_check | — | |
| sapiom_dev_agents_run_local | — | |
| sapiom_dev_agents_link | — | |
| sapiom_dev_agents_clone | — | |
| sapiom_dev_agents_deploy | — | |
| sapiom_dev_agents_run | — | |
| sapiom_dev_agents_inspect | — |
도구 27개 모두 보기도구 수 줄이기
sapiom_dev_agents_signalsapiom_dev_agents_emit_eventsapiom_dev_agents_schedulesapiom_dev_agents_schedule_inspectsapiom_dev_agents_schedule_cancelsapiom_dev_agents_schedule_secretsapiom_dev_agents_cron_previewsapiom_dev_sandbox_configuresapiom_dev_sandbox_checksapiom_dev_sandbox_previewsapiom_dev_app_publishsapiom_dev_app_listsapiom_dev_app_settingssapiom_dev_app_deletesapiom_dev_map
| sapiom_dev_agents_signal | — | |
| sapiom_dev_agents_emit_event | — | |
| sapiom_dev_agents_schedule | — | |
| sapiom_dev_agents_schedule_inspect | — | |
| sapiom_dev_agents_schedule_cancel | — | |
| sapiom_dev_agents_schedule_secret | — | |
| sapiom_dev_agents_cron_preview | — | |
| sapiom_dev_sandbox_configure | — | |
| sapiom_dev_sandbox_check | — | |
| sapiom_dev_sandbox_preview | — | |
| sapiom_dev_app_publish | — | |
| sapiom_dev_app_list | — | |
| sapiom_dev_app_settings | — | |
| sapiom_dev_app_delete | — | |
| sapiom_dev_map | — |
구성
SAPIOM_ENVIRONMENT
| 이름 | 설명 | 유형 |
|---|---|---|
| SAPIOM_ENVIRONMENT | — |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨통과
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기@sapiom/mcp
The local developer MCP server for Sapiom. It runs on your machine over
stdio under the server name sapiom-dev. Today it gives a coding agent the
tools to scaffold, test, deploy, and inspect Sapiom agents, and to put a web app
behind a live sandbox URL or a durable App Link; the namespace leaves room for
other developer tooling later.
Not the capability surface. This is not the remote "Sapiom" MCP (the hosted connector with
sapiom_sandbox_*, scrape, search, … capability tools).sapiom-devexposes no direct capability tools. Its local check and Local Run path uses stubbed capabilities without Sapiom capability spend; deploys, cloud builds, production runs, signals, and schedules operate Sapiom cloud state and may be metered. See the two Sapiom MCP servers for which to use when.
Install
No global install — run it on demand with npx:
{
"mcpServers": {
"sapiom-dev": {
"command": "npx",
"args": ["-y", "@sapiom/mcp"],
},
},
}
In Claude Code:
claude mcp add sapiom -- npx -y @sapiom/mcp
Configuration
The server targets the production environment by default. Override it with the
SAPIOM_ENVIRONMENT environment variable:
{
"mcpServers": {
"sapiom-dev": {
"command": "npx",
"args": ["-y", "@sapiom/mcp"],
"env": { "SAPIOM_ENVIRONMENT": "staging" },
},
},
}
production(aliasprod) →app.sapiom.ai/api.sapiom.ai— the default.staging(aliasdev) →app.sapiom.dev/api.sapiom.dev.
Both resolve from built-in presets, so no config file is required. A custom
target can be defined in ~/.sapiom/credentials.json (the server prints the
expected shape if it encounters an unknown environment name).
The API key only travels over https://, or plain http:// to a loopback host
(localhost, *.localhost, 127.0.0.1, [::1]). A custom target on any other
http:// host is refused before the request is sent. On a trusted private
network, set SAPIOM_ALLOW_INSECURE_HTTP=1 in the server's env.
Authentication
The first networked call (link, deploy, run, inspect, signal) needs a
Sapiom API key. Run sapiom_authenticate and the server opens a browser
login flow, then caches the resulting key per environment in
~/.sapiom/credentials.json. After that, tools work without re-authenticating.
sapiom_status reports who you're authenticated as; sapiom_logout clears the
cached credentials.
The local authoring tools (scaffold, check, run_local) need no Sapiom
authentication. scaffold may query npm for current dependency versions;
check imports the definition; and run_local executes the author's ordinary
local code. Only ctx.sapiom.* calls are replaced by stubs, so direct network,
filesystem, environment, and process effects in author code remain real.
Tools
| Tool | Network | What it does |
|---|---|---|
sapiom_authenticate |
browser | Log in and cache an API key for the current environment |
sapiom_status |
— | Report authentication status |
sapiom_logout |
— | Clear cached credentials |
sapiom_send_feedback |
✓ | Relay the user's product feedback to the Sapiom team |
sapiom_dev_agents_scaffold |
npm optional | Create a new agent project; may query npm for current dependency versions |
sapiom_dev_agents_check |
author code only | Typecheck, import, bundle, and validate the definition and step graph |
sapiom_dev_agents_run_local |
author code only | Run locally with ctx.sapiom.* calls stubbed (no Sapiom capability spend) |
sapiom_dev_agents_link |
✓ | Resolve/create the hosted orchestration and cache its id |
sapiom_dev_agents_clone |
✓ | Fork a gallery template (or re-clone a fork) into a local project |
sapiom_dev_agents_deploy |
✓ | Bundle current local source, build in the cloud, and wait |
sapiom_dev_agents_run |
✓ | Start a real cloud execution |
sapiom_dev_agents_inspect |
✓ | Inspect an execution or build (optionally waiting for it) |
sapiom_dev_agents_signal |
✓ | Resume a paused execution by delivering a signal |
sapiom_dev_agents_emit_event |
✓ | Emit a custom event; starts a run per active event trigger on that type (0..N) |
sapiom_dev_agents_schedule |
✓ | Create a trigger: cron, one-off, event (eventType), or webhook (URL + secret) |
sapiom_dev_agents_schedule_inspect |
✓ | Inspect one trigger (with fire history) or list an agent's triggers |
sapiom_dev_agents_schedule_cancel |
✓ | Cancel a trigger of any kind (stops all future fires) |
sapiom_dev_agents_schedule_secret |
✓ | Rotate, complete-rotate, or revoke a webhook trigger's signing secret |
sapiom_dev_agents_cron_preview |
✓ | Validate a cron expression and preview its next occurrences |
sapiom_dev_sandbox_configure |
— | Write a validated type: "sandbox" preview resource into sapiom.json |
sapiom_dev_sandbox_check |
— | Validate the project's sandbox resources without deploying |
sapiom_dev_sandbox_preview |
✓ | Deploy the app to a sandbox for a live URL that expires with its ttl |
sapiom_dev_app_publish |
✓ | Publish the same app to a durable App Link (apps.sapiom.ai/{org}/{slug}) |
sapiom_dev_app_list |
✓ | List the org's App Links: URL, visibility, webhooks, spend cap, wake state |
sapiom_dev_app_settings |
✓ | Change a link's webhooksEnabled, visibility, spend cap, wake rate limit |
sapiom_dev_app_delete |
✓ | Delete a link (URL stops resolving, slug freed); confirm: true required |
sapiom_dev_map |
optional | The agent map: systems, agents, steps and the code-proven edges between them |
A typical loop: scaffold → write step code → run_local until green → link
→ deploy → run → inspect.
For a web app rather than an agent: sandbox_configure → sandbox_preview
while iterating (a throwaway URL that dies with the sandbox) → app_publish
once the link needs to be permanent or shared. app_publish reads the same
sapiom.json sandbox resource, uploads the source as a stored text-only bundle
(≤ 10 MiB), and returns a durable https://apps.sapiom.ai/{org}/{slug} URL that
wakes the app on demand — republishing the same slug updates it in place. See
the sapiom-sandbox-preview skill for the routing rules.
Once a link exists, app_list, app_settings and app_delete manage it without
leaving the terminal. Webhooks are off by default: app_settings { slug, webhooksEnabled: true } turns them on, after which third parties POST to
https://apps.sapiom.ai/{org}/{slug}/hook/<path> (the /hook prefix is
stripped and the body forwarded byte-exact, so Slack/Stripe/GitHub signature
checks run inside the app). These settings need the org.write permission —
publish authority alone is not enough — and a refusal comes back as a message
naming the permission and the fields, for the agent to relay rather than retry.
The agent map
sapiom_dev_map returns the map Agent Studio draws, computed from code on every
call; nothing about agents or edges is stored. Pass a project folder (root, default the working
directory) and optionally a git ref (HEAD, a branch, a commit) to draw that
version:
{ "root": "~/agents/support-desk", "ref": "HEAD" }
The scan finds every folder with a sapiom.json or a defineAgent and reads:
- Edges, agent to agent, each with the file and line that proves it:
agents.run/agents.launch(launch),schedules.createon another agent (timer), andevents.emitmatched to the agents an event type triggers (event). A target counts when the code makes it knowable: a literal, a const (local or imported), every value of a const map indexed at run time, a zod.default()on the input field the call reads, or aprocess.envkey set insapiom.json. Anything else is listed underunresolved. - Systems: connected components over those edges. Agents that only share a
vault key, database or connector are not joined; the shared resource shows in
each agent's
sharedlist. Name a system in a committed.sapiom/map.json:{ "systems": [{ "agent": "intake", "name": "Support desk" }] }. - Steps from
agents check(needs the agent's dependencies installed). - Triggers and deploy state from the signed-in account, plus a
fleet.json's declared triggers. Signed out,platformsays so and the map still draws. changedSinceRef: the agent's folder differs fromref(fromHEADwhen drawing the working copy).
To map agents you describe yourself, without scanning, pass agents:
{
"agents": [
{ "slug": "intake", "emits": [{ "eventType": "ticket.opened" }] },
{
"slug": "triage",
"triggers": [{ "kind": "event", "eventType": "ticket.opened" }],
"calls": [{ "to": "notify", "kind": "launch" }]
},
{ "slug": "notify", "resources": ["connector:slack"] }
]
}
Each agent takes slug and optionally path, description, deployed,
steps ({ entry, steps: [{ id }], transitions: [{ from, to, kind }] }),
calls ({ to, kind: "launch" | "signal" | "timer", evidence? }), emits,
triggers and resources. The same systems rule applies.
Labels. Signed in, the tool asks Jev (jev-1.13.0, one batched
decisions.evaluate call) for each described agent's role (intake, worker,
orchestrator, reporter, monitor or utility) and for the label of each launch or
event edge (hands work to, feeds data to or monitors). A label appears only when
its probability p is at least 0.8. Answers are cached in
<root>/.sapiom/cache/map-labels.json (ignored by git from inside the folder;
in memory for a described map), keyed by a hash of the question's facts, so an
unchanged agent is never re-asked and its label never flips. In a scanned
project, when an agent changes, the label it showed stays unless the new answer
differs and clears 0.8.
Signed out, with platform: false, or when Jev fails or takes over 5 s, the map
comes back with labels: "unavailable" and is otherwise the same.
How capabilities fit in
Agents authored here call Sapiom capabilities — sandboxes, repositories,
coding agents, search, storage, content generation — through
@sapiom/tools (ctx.sapiom.*). run_local resolves those calls
from stubs; deploy and production run cross into authenticated cloud operations
and can be metered. This MCP never grows a per-capability tool of its own —
capabilities live in
@sapiom/tools and the remote sapiom MCP. See
the positioning doc for the full policy.
Sending feedback
sapiom_send_feedback relays a user's product feedback (a bug, a rough edge, a
feature request) to the Sapiom team. The agent sends only what the user said;
the server attaches package version, platform, arch, node version, environment
and a timestamp itself, so the model never has to read those off the machine.
A host embedding this server can advertise its own version with
SAPIOM_HARNESS_VERSION — it rides along as clientMeta.harnessVersion,
which is what makes "which build is this user on" answerable during triage. The
field is omitted entirely when the variable is unset, never filled with a
placeholder. @sapiom/harness sets it automatically.
Usage analytics
The server emits anonymous usage analytics (one tool.call event per tool
invocation: tool name, arguments, duration, ok/error class) via
@sapiom/analytics-core to the hosted Sapiom collector
by default. Opt out at any time with SAPIOM_TELEMETRY_DISABLED=1 or
DO_NOT_TRACK=1 — either makes the emitter a complete no-op (nothing is sent,
nothing is written to disk). Local-only tools (sapiom_dev_agents_scaffold,
sapiom_dev_agents_check, sapiom_dev_agents_run_local) report only each
argument's name and size, never its value. SAPIOM_ANALYTICS_ENDPOINT overrides the
destination. Telemetry is a synchronous in-memory enqueue that never throws,
never blocks a tool call, and can never change a tool result.
License
MIT
Sapiom Dev MCP 질문
Sapiom Dev MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add mcp -- npx -y @sapiom/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Sapiom Dev MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Sapiom Dev MCP는 어떤 도구를 제공하나요?
27개 도구를 제공합니다. 예: sapiom_authenticate, sapiom_status, sapiom_logout, sapiom_send_feedback, sapiom_dev_agents_scaffold.
로컬 개발 도구에 API 키가 필요한가요?
scaffold, check, run_local과 같은 로컬 작성 도구는 Sapiom 인증이 필요하지 않지만, deploy 및 run과 같은 네트워크 도구는 필요합니다.
Sapiom 클라우드 인증은 어떻게 하나요?
sapiom_authenticate 도구를 실행하면 브라우저 로그인 흐름이 열리며, API 키가 ~/.sapiom/credentials.json에 캐시됩니다.
배포 환경을 변경할 수 있나요?
네, SAPIOM_ENVIRONMENT 환경 변수를 staging 또는 prod로 설정하여 기본 프로덕션 환경을 재정의할 수 있습니다.