설치 없이 MCP 연결하기
원격 MCP 주소와 Sayren 계정 로그인만으로 AI 도구를 상점에 연결하기
sayren 원격 MCP는 https://mcp.sayren.app/mcp 주소 하나로 연결합니다. Node.js나 패키지를 설치하지 않아도 되고,
도구 버전은 sayren이 최신으로 유지합니다. 상점 조회·관리와 스토어프론트 호스팅 사이트의
편집·발행·되돌리기·공개 전환에 씁니다.
내 컴퓨터에서 쇼핑몰 화면을 만들고 검사하는 도구(get_scaffold_plan·verify_storefront)는 원격 MCP에 없습니다. 화면을 직접 만들 때는
MCP 연결하기의 로컬 연결을 씁니다. 템플릿 원본을 읽는 도구(list_template_files·get_template_file)는 두 연결에 모두
있습니다.
반대로 호스팅 사이트의 파일을 고치는 도구(read_file·write_files 등)는 원격 MCP에만 있습니다. 두 연결을 함께 등록해도 됩니다.
1. 도구에 연결
상점 플랫폼의 개발자 › 개요 › 연결 정보 › 원격 MCP나 개발자 › 스토어프론트 만들기 › 1. 원격 MCP 연결에서 도구별 설정을 복사할 수 있습니다. 설정에는 토큰이 없고 주소와 상점 id만 들어 있습니다. 처음 연결할 때 Sayren 계정 로그인과 권한 허용 화면이 뜹니다.
Claude Code
claude mcp add --transport http sayren https://mcp.sayren.app/mcp \
--header "X-Store-Id: store_abc123"모든 프로젝트에서 쓰려면 --scope user를 붙입니다.
Cursor
.cursor/mcp.json(이 프로젝트) 또는 ~/.cursor/mcp.json(모든 프로젝트)에 넣습니다.
{
"mcpServers": {
"sayren": {
"url": "https://mcp.sayren.app/mcp",
"headers": { "X-Store-Id": "store_abc123" }
}
}
}npx sayren pull이 만드는 .mcp.json도 같은 모양입니다("type": "http").
그 밖의 도구
Streamable HTTP 방식의 원격 MCP 서버를 등록할 수 있는 도구라면 연결됩니다. 주소는 https://mcp.sayren.app/mcp입니다.
2. Sayren 계정으로 로그인
OAuth를 지원하는 도구는 처음 연결할 때 Sayren에 스스로 앱 등록(OAuth 동적 클라이언트 등록)을 하고 Sayren 계정 로그인 창을 엽니다. 로그인한 뒤 도구에 허락할 권한과 상점을 고릅니다.
- 권한 허용 화면에는 도구가 등록한 이름이 Sayren이 확인하지 않은 앱으로 표시됩니다. 지금 연결하려는 도구가 맞는지 확인한 뒤 허용하십시오. 직접 연결하지 않았다면 거부합니다.
- 이 방식으로 연결한 도구는 구성원 조회·관리(
member:r·member:rw), 웹훅 설정 변경(webhook:rw) 권한을 받을 수 없습니다. 이 작업은 상점 플랫폼에서 하거나 해당 권한을 넣은 액세스 토큰을 씁니다. - 상점 정보 수정(
store:rw)은 승인을 거칩니다. 결제 설정·구매자 로그인 설정·출고지처럼 상점 플랫폼에서만 하는 작업은 이 권한이 있어도 할 수 없습니다. - 30일 동안 쓰지 않은 연결은 정리됩니다. 그 뒤에 도구를 쓰면 다시 로그인하고 권한을 허용합니다.
| 하려는 일 | 필요한 스코프 |
|---|---|
| 상점 정보 조회 | store:r, product:r |
| 상점 정보 수정(고객센터·배송비 정책 등, 승인 필요) | store:rw |
| 스토어프론트 사이트 조회, 사이트 파일 읽기·검증 | storefront:r |
| 사이트 파일 쓰기·검사 실행·버전 만들기, 발행·되돌리기·공개 전환 | storefront:rw |
| 주문·상품 등 조회·수정 | 해당 리소스의 스코프(예: order:r, product:rw) |
- 실제 권한은 그 상점에서의 내 역할과 허락한 권한 중 좁은 쪽입니다.
- 상점은
X-Store-Id헤더로 정합니다. 헤더가 없으면 허락한 상점이 하나일 때 그 상점으로 연결하고, 여럿이면400으로 거부됩니다.X-Store-Id를 넣거나 연결할 때 상점 하나만 고르십시오. - 헤더의 상점이 허락한 상점 범위 밖이면
403으로 거부됩니다. - 이 연결의 요청은 언제나 AI 에이전트 요청으로 기록되고 고위험 작업은 승인을 거칩니다.
- 연결은 Sayren 계정 › 연결된 앱에 보이고, 연결 해제로 끊습니다.
- 허락한 권한은 연결할 때 정해집니다. 권한을 늘리려면 연결을 해제하고 다시 연결하십시오. 이 변경 전에 연결했다면
상점 정보 수정(
store:rw)을 쓰려면 다시 연결해야 합니다.
로그인 창을 쓸 수 없는 도구
요청 헤더만 지정할 수 있는 도구는 AI 에이전트용 액세스 토큰을 넣습니다.
{
"mcpServers": {
"sayren": {
"type": "http",
"url": "https://mcp.sayren.app/mcp",
"headers": { "Authorization": "Bearer 액세스_토큰", "X-Store-Id": "store_abc123" }
}
}
}토큰이 든 설정 파일은 저장소에 올리지 마십시오. 옛 API 토큰(sy_pat_…)은 더 이상 연결되지 않습니다.
3. 연결 확인
도구에 아래처럼 물어봅니다.
sayren MCP로 내 상점 정보 알려줘.상점 이름과 상점 코드가 나오면 연결된 것입니다.
도구
| 도구 | 하는 일 | 필요 스코프 |
|---|---|---|
get_store_context | 상점 코드·카테고리·상품 수·상품 표본 | store:r |
list_template_files·get_template_file | 호스팅 템플릿 원본(지금 카탈로그 버전)의 파일 목록·원문. 읽기만 합니다 | 없음 |
list_operations·describe_operation | 부를 수 있는 관리 API 목록과 상세 | 없음 |
call_api_read·call_api_write | 관리 API 조회·변경 | 오퍼레이션의 스코프 |
get_approval_request | 승인 요청 상태 | 없음 |
list_approvals | 승인 요청 목록(기본 승인 대기)·한 건 | store:r, OWNER·ADMIN |
decide_approval | 확인 창에서 사람이 수락하면 승인·거절 | store:rw와 원 요청의 스코프, OWNER·ADMIN |
upload_image | 상품 이미지 업로드(이미지 주소 또는 base64) | product:rw |
get_site | 사이트 주소·공개 상태·발행 버전·반영 상태 | storefront:r |
list_versions | 사이트 버전 목록 | storefront:r |
publish_version | 버전 발행 | storefront:rw |
rollback | 이전 버전으로 되돌리기 | storefront:rw |
set_visibility | 오픈 준비중 ↔ 공개 전환 | storefront:rw |
get_editing_guide | 사이트를 고치는 순서·규칙·손대지 않을 파일 | 없음 |
start_editing·get_editing_status | 편집 환경 열기·상태 | storefront:rw·storefront:r |
list_files·read_file·search_files | 사이트 파일 목록·읽기·검색 | storefront:r |
write_files·delete_file·move_file | 사이트 파일 쓰기·삭제·이동 | storefront:rw |
run_check·get_check | 타입 검사·lint·테스트 중 하나 실행과 결과 | storefront:rw·storefront:r |
verify_site | 결제·로그인 규칙 검증 | storefront:r |
create_version·get_build | 버전 만들기와 빌드 결과 | storefront:rw·storefront:r |
입력과 출력은 MCP 도구 레퍼런스에 있습니다. 사이트 편집 도구는 아래 절에서 설명합니다.
템플릿 원본 읽기
list_template_files·get_template_file은 새 사이트가 처음 받는 템플릿 원본을 줍니다. 고친 사이트 파일을 원본과 비교하거나, 실수로 지운 파일을
되살릴 때 씁니다. templateId로 템플릿을 고르고(생략하면 기본 템플릿) list_template_files 응답의 templates가 고를 수 있는 목록입니다.
원격 MCP는 각 템플릿의 지금 카탈로그 버전만 줍니다. 다른 version을 주면 오류이고, 예전 버전으로 만든 사이트의 파일은 read_file로 읽습니다.
그림 같은 이진 파일은 path·encoding(base64)·content를 담은 JSON입니다. 템플릿 원본을 읽어도 사이트는 바뀌지 않습니다.
AI로 사이트 고치기
호스팅 사이트의 코드를 AI 도구로 고칠 수 있습니다. 편집 환경이 열려 있으면 AI가 고친 파일이 상점 플랫폼의 미리보기에 바로 반영됩니다. 공개 사이트는 버전을 만들어 발행해야 바뀝니다. 코드를 받아 내 컴퓨터에서 고치지 않아도 됩니다.
도구에 이렇게 요청합니다.
sayren MCP로 내 스토어프론트 헤더 배경을 남색으로 바꾸고, 상품 카드에 할인율을 크게 보여 줘.
검사가 통과하면 버전을 만들어 줘.사이트가 아직 없으면 AI 도구가 템플릿 목록(StorefrontHostingController_listTemplates)을 보여 주고, 확인받은 템플릿으로
사이트를 만듭니다(call_api_write로 StorefrontHostingController_create). 만든 사이트는 v1이 발행된 오픈 준비중 상태입니다.
템플릿은 만든 뒤 바꿀 수 없습니다.
AI 도구는 대체로 아래 순서로 진행합니다.
get_editing_guide로 고치는 순서와 규칙을 읽습니다.start_editing으로 편집 환경을 엽니다. 여는 데 30초 안팎이 걸리고, 15분 동안 쓰지 않으면 다시 잠듭니다. 파일 쓰기·검사·버전 만들기가 30분 동안 없으면 미리보기를 보고 있어도 닫힙니다. 고친 내용은 잠들거나 닫혀도 남습니다.list_files·search_files·read_file로 고칠 곳을 찾고write_files로 고칩니다. 파일 읽기·쓰기는 편집 환경이 잠들어 있어도 됩니다.run_check(타입 검사)와verify_site(규칙 검증)로 확인합니다. 둘 다 편집 환경 없이 됩니다. 검사가 오래 걸리면run_check가 검사 id(checkId)를 돌려주고, AI 도구가get_check로 결과를 이어서 봅니다.- 상점 플랫폼의 스토어프론트 › 개요에서 **[미리보기 열기]**로 화면을 확인합니다. 미리보기는 직접 엽니다.
create_version으로 버전을 만들고get_build로 빌드 결과를 봅니다.- 발행은
publish_version입니다. 앞 절처럼 상점 플랫폼에서 승인해야 공개 사이트가 바뀝니다.
여러 사람이 함께 고칠 때
사이트의 작업 내용은 하나이고 구성원과 AI 도구가 함께 씁니다. write_files는 파일을 읽었을 때의 hash를 함께 보내고,
그사이 다른 사람이 같은 파일을 고쳤으면 FILE_CHANGED로 쓰지 않습니다. AI 도구는 파일을 다시 읽어 변경을 합친 뒤 씁니다.
남의 변경을 덮어쓰지 않습니다.
규칙 검증과 빌드
버전을 만들면 규칙 검증 → 타입 검사 → 빌드 순서로 확인합니다. 결제·로그인 규칙을 어기면 버전을 발행할 수 없습니다.
빌드가 실패하면 get_build가 실패 단계(failureStage)와 로그의 끝부분, 규칙 위반과 고치는 방법을 알려 줍니다.
verify_site와 같은 규칙이라 버전을 만들기 전에 verify_site를 통과하면 규칙 단계에서 막히지 않습니다.
결제창·결제 복귀·구매자 세션을 다루는 파일은 고치지 않는 것이 안전합니다. 목록은 get_editing_guide의 doNotTouch에 있습니다.
고칠 수 있는 파일
src/·public/·messages/(화면 문구) 아래 파일과 루트 설정 파일 몇 개를 고칠 수 있습니다. package.json과 pnpm-lock.yaml은 읽기만 되고,
패키지를 더하거나 뺄 수 없습니다. 설치 폴더(node_modules)·빌드 결과물·.env 파일은 다루지 않습니다.
편집 상한
| 항목 | 값 |
|---|---|
| 파일 하나 | 1MiB |
| 사이트 전체 | 20MiB, 파일 2,000개 |
write_files 한 번 | 파일 50개, 합계 1.5MB |
read_file 한 번 | 6만 자. 넘으면 나눠 읽습니다 |
검사 한 번(run_check) | 150초. 넘으면 TIMED_OUT |
| 동시에 도는 검사 | 사이트당 1개 |
동시에 열 수 있는 편집 환경 수에는 상한이 있습니다. 자리가 없으면 start_editing이 EDIT_CAPACITY_FULL과 다시 시도할 때까지의
시간(retryAfterSeconds)을 알려 줍니다. 그동안에도 파일 읽기·쓰기와 verify_site는 됩니다.
발행·공개 전환은 승인 뒤 실행됩니다
AI 도구가 요청한 발행·되돌리기·공개 전환은 바로 실행되지 않고 승인 대기가 됩니다. 도구가 승인 링크를 알려 주면
상점 플랫폼의 설정 › 보안 › 승인 요청에서 승인합니다. 확인 창(MCP elicitation)을 지원하는 클라이언트라면 decide_approval로
이 대화에서 승인할 수도 있습니다. 클라이언트가 확인 창을 띄우고 사람이 수락해야 실행됩니다. 승인하면 서버가 그 요청을 그대로 실행합니다.
24시간 안에 승인하지 않으면 만료됩니다. 규칙은 AI 작업 승인과 감사 로그에 있습니다.
발행이 끝나도 공개 주소에 보이기까지 최대 1분이 걸립니다. get_site의 provisioning.status가 SYNCED면 반영된 것입니다.
미리보기 링크는 AI 도구로 주지 않습니다. 링크를 받은 사람은 오픈 준비 중인 화면을 볼 수 있어 대화 기록에 남기지 않기 위해서입니다. 오픈 준비 중인 화면은 상점 플랫폼의 스토어프론트 › 개요에서 **[미리보기 열기]**로 봅니다.
요청 한도
| 한도 | 값 |
|---|---|
| 토큰당 요청 | 1분에 약 120회 |
| 요청 본문 | 4MB |
한도를 넘으면 429와 Retry-After를 받습니다. 1분 뒤 다시 시도합니다. 관리 API 자체의 한도는 그대로 적용됩니다.
문제 해결
| 증상 | 확인 | 해결 |
|---|---|---|
연결이 400으로 거부됨 | 설정에 X-Store-Id가 있는지 | 상점 id를 헤더로 넣거나, 다시 연결하며 상점 하나만 고름 |
연결이 403으로 거부됨 | X-Store-Id가 허락한 상점 범위 안인지 | 그 상점을 포함해 다시 연결하거나 헤더를 고침 |
401 invalid_token 또는 로그인 창이 다시 뜸 | Sayren 계정 › 연결된 앱·액세스 토큰에서 연결·토큰 상태 | 다시 로그인하거나 새 액세스 토큰을 만듦 |
로그인 창이 뜨기 전에 앱 등록이 429로 실패 | 같은 네트워크에서 연결을 짧은 시간에 여러 번 시도했는지 | 잠시 뒤 다시 연결 |
헤더에 sy_pat_…를 넣었는데 연결되지 않음 | 옛 API 토큰인지 | 헤더를 지우고 로그인 창으로 연결하거나 액세스 토큰으로 바꿈 |
도구 결과가 INSUFFICIENT_ROLE | 허락한 권한과 내 역할 | 연결된 앱에서 연결을 해제하고 위 표의 스코프를 허락해 다시 연결 |
get_site의 site가 null | 스토어프론트 공간에 사이트가 있는지 | AI 도구에 템플릿을 골라 사이트를 만들어 달라고 요청하거나(StorefrontHostingController_create) 상점 플랫폼에서 만든 뒤 다시 조회 |
| 발행했는데 화면이 그대로 | 결과가 APPROVAL_PENDING인지 | 상점 플랫폼에서 승인 요청을 승인 |
| 파일을 고쳤는데 공개 사이트가 그대로 | 버전을 만들고 발행했는지 | create_version → 빌드 성공 → publish_version 승인 |
write_files가 FILE_CHANGED | 다른 사람이 같은 파일을 고쳤는지 | 파일을 다시 읽고 합쳐서 씀 |
start_editing이 EDIT_CAPACITY_FULL | retryAfterSeconds | 그 시간 뒤 다시 시도 |
run_check가 CHECK_RUNNING | 다른 검사가 도는지(details.checkId) | get_check로 그 검사가 끝나기를 기다린 뒤 다시 실행 |
검사 결과가 UNKNOWN | 검사 환경과의 연결이 끊겼는지 | run_check로 새로 실행 |
| 편집 환경이 저절로 꺼짐 | 30분 동안 파일 쓰기·검사·버전 만들기가 없었는지 | start_editing으로 다시 엶. 고친 파일은 남아 있음 |
write_files가 INVALID_FILE_PATH | 경로가 src/·public/·messages/ 아래인지 | 고칠 수 있는 파일만 씀 |
빌드가 VERIFY에서 실패 | get_build의 verify 위반 | 안내대로 고치고 verify_site로 확인한 뒤 버전을 다시 만듦 |
연결을 해제하거나 토큰을 폐기해도 원격 MCP가 최대 1분 동안 연결을 유지할 수 있습니다. 그동안의 도구 호출은 모두 UNAUTHORIZED로 실패합니다.