콘텐츠로 이동

AI로 통합하기

Cursor·Claude Code·Copilot 같은 AI 코딩 도구를 쓴다면, MCP 서버를 연결하거나 아래 프롬프트 하나로 통합을 맡길 수 있습니다.

Signox는 개발자 문서 MCP 서버를 제공합니다. 한 번 등록해두면 AI 도구가 필요할 때마다 최신 문서를 직접 조회하므로, 프롬프트를 복사해 넣을 필요가 없고 문서가 갱신돼도 항상 최신 내용을 참조합니다.

Terminal window
# Claude Code
claude mcp add --transport http signox https://api.signox.kr/mcp
// Cursor·VS Code 등 — MCP 설정(mcp.json)에 추가
{
"mcpServers": {
"signox": { "url": "https://api.signox.kr/mcp" }
}
}

제공 tool은 두 가지입니다:

  • list_docs — 전체 문서 목록(슬러그·제목·설명)
  • read_doc — 슬러그로 문서 전문 조회 (예: sdk/node, guides/activation-offline)

등록 후 “Signox 라이센스 인증을 내 앱에 통합해줘”라고 요청하면 AI가 문서를 조회해가며 작업합니다.

MCP를 지원하지 않는 도구라면 아래 프롬프트를 사용하세요.

  1. 대시보드에서 발급 준비를 마칩니다 (제품·정책·테스트 라이센스).
  2. 아래 프롬프트를 복사해 AI 도구에 붙여넣고, 여러분의 앱 구조(프레임워크·키 입력 UI 위치 등)를 덧붙입니다.
  3. AI가 만든 코드에서 상태 코드별 UX 처리와 기능 게이팅이 요구사항대로 구현됐는지 확인합니다.
당신은 소프트웨어 라이센싱 통합을 돕는 시니어 개발자입니다.
아래 명세에 따라 내 앱에 Signox 라이센스 인증을 통합해 주세요.
[Signox 개요]
- Signox는 라이센스 발급·검증 SaaS. 문서: https://wiki.signox.kr
- 라이센스 키(licenseKey)가 유일한 자격증명. 별도 API 토큰 없음.
- 모든 라이센스는 기기 고정(node-locked). 기기 식별은 SDK가 자동 처리.
- 서버 응답과 오프라인 .lic 파일은 Ed25519로 서명되며 SDK가 자동 검증.
- 온라인 활성화 1회 후에는 네트워크 없이도 동작(로컬 서명 상태 캐시).
[SDK — 내 스택에 맞는 것을 선택. 세 SDK는 API 표면·판정 코드가 동일]
- Node.js: npm `@signox/sdk` → import { SignoxClient } from '@signox/sdk'
문서: https://wiki.signox.kr/sdk/node/
- Java 8+: Maven `kr.signox:signox-sdk` → kr.signox.sdk.SignoxClient (builder)
문서: https://wiki.signox.kr/sdk/java/
- C#/.NET/Unity: NuGet `Signox.Sdk` → Signox.Sdk.SignoxClient
문서: https://wiki.signox.kr/sdk/csharp/
[공통 API — Node.js 표기 기준, Java/C#은 같은 이름의 메서드]
const client = new SignoxClient({ productPublicKey: '<제품 공개키 SPKI PEM — 앱에 임베드>' });
await client.activate(licenseKey, { name? }); // 최초 1회 활성화 (멱등)
const lic = await client.validate(licenseKey); // 시작 시 검증 (성공 응답 자동 캐시)
// lic.valid: boolean — VALID·IN_GRACE_PERIOD 에서만 true
// lic.code: 'VALID'|'IN_GRACE_PERIOD'|'EXPIRED'|'SUSPENDED'|'REVOKED'|'NOT_FOUND'
// |'DEVICE_NOT_ACTIVATED'|'DEVICE_LIMIT_REACHED'|'VM_NOT_ALLOWED'|'NETWORK_ERROR'|...
// lic.features: Record<string, boolean|number|string>
await client.deactivate(licenseKey); // 이 기기 해제(슬롯 반환)
client.requestOfflineFile(licenseKey); // 폐쇄망용 .lic 발급 → result.file.content
client.validateOffline(licContent); // .lic 완전 로컬 검증
[통합 요구사항]
1. 최초 실행 시 라이센스 키 입력 화면 → activate() 호출. 성공하면 키를 안전하게 저장.
2. 앱 시작 시 validate() 호출, 결과 처리:
- valid=true → 정상 진입. 단 code가 IN_GRACE_PERIOD면 "라이센스 갱신 필요" 배너 표시.
- NETWORK_ERROR → 무효가 아님. 재시도 안내(유료 기능은 잠그되 인증 실패로 취급 금지).
- EXPIRED → 만료 안내 + 갱신 유도 화면.
- DEVICE_LIMIT_REACHED → "다른 기기를 해제하세요" 안내(셀프서비스 포털 링크).
- SUSPENDED / REVOKED / NOT_FOUND → 인증 실패 화면 + 문의 안내.
3. 기능 게이팅: lic.features의 값으로 기능 분기.
bool = on/off, int = 수량 한도, string = 등급 등.
4. 설정 화면에 "이 기기 해제" 버튼 → deactivate() 호출(기기 이동용).
5. (폐쇄망 지원이 필요한 경우만) 기기 코드 표시 화면(QR + 복사 버튼)과
.lic 파일 불러오기 기능 추가.
[금지사항]
- 검증·서명 로직을 SDK 밖에서 재구현하지 말 것.
- 제품 공개키를 네트워크·설정에서 받아오지 말 것 — 반드시 앱에 임베드(바꿔치기 방지).
- 라이센스 키를 소스코드에 하드코딩하지 말 것.
- valid=false 상태에서 유료 기능이 동작하지 않도록 할 것.

AI 도구가 웹 문서를 읽을 수 있다면 https://wiki.signox.kr/llms.txt 를 함께 참조시키세요 — 이 사이트의 AI 친화 요약본으로, 핵심 개념과 전체 페이지 링크가 담겨 있습니다.