Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
LUNO — AI-era Backend Platform (not Luno crypto). BUILD/OPERATE, REGISTER/GOVERN, CONSUME.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
LUNO_API_URL, LUNO_AGENT_KEY비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"luno-cms": {
"command": "npx",
"args": [
"-y",
"@luno-cms/mcp"
],
"env": {
"LUNO_API_URL": "your-value",
"LUNO_AGENT_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add luno-cms --env LUNO_API_URL=your-value --env LUNO_AGENT_KEY=your-value -- npx -y @luno-cms/mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"luno-cms": {
"command": "npx",
"args": [
"-y",
"@luno-cms/mcp"
],
"env": {
"LUNO_API_URL": "your-value",
"LUNO_AGENT_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"luno-cms": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@luno-cms/mcp"
],
"env": {
"LUNO_API_URL": "your-value",
"LUNO_AGENT_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 luno-cms 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: LUNO_API_URL, LUNO_AGENT_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.51)은 지난달 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, FactLot
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Agents BUILD / OPERATE. Humans REGISTER / GOVERN. Applications CONSUME.
LUNO is a hosted backend platform — not a website builder, not an open-source CMS, and not an MCP server product. MCP is how your agent connects to LUNO. CMS and forms are capabilities; the product category is AI-era Backend Platform.
| BUILD | AI agents define schemas, forms, and backend structure via blueprints and templates. |
| OPERATE | Agents read and change content, media, auth settings, and other backend resources. |
| GOVERN | Humans control production through scoped agent keys, approval workflows, publish gates, and safety controls. |
npx -y @luno-cms/mcp setup
Works with Claude Code, Cursor, and Codex. Issue an agent key in the LUNO Console → MCP / API / Hook → API / MCP.
Glama / MCP directory: “Install Server” requires a hosted API key and may show *This server cannot be installed*. Use
npx -y @luno-cms/mcp setupinstead — see Quick start (recommended) below.
pendingHumanApproval)MCP schemas and tool descriptions were redesigned for agent readability. In a blind test, the same backend task went from 142 tool calls to 11, with 0 errors — application behavior unchanged.
Static Resources (resources/list, resources/read) ship agent-readable guides without Admin API calls:
| URI | Topic |
|---|---|
luno://forms/field-types | Field types + snapshot shapes |
luno://content/schema-guide | Form Set / entry / revision hierarchy |
luno://publishing-guide | Draft → publish, can_publish |
luno://permissions | Scopes, blocked actions, archive token |
luno://api-reference | Tool cheat sheet (not full OpenAPI) |
Inventory: docs/RESOURCES.md. Live per-tenant schema: get_form_set_schema tool.
@luno-cms/mcp (not the unrelated cryptocurrency “Luno” MCP)io.github.luno-cms/mcpluno-cms/mcpluno-rest ·github.com/luno-cms/mcpDirectory checklist: docs/DISCOVERY.md
Product docs (EN): AI Agents · doc.luno.rest Product docs (JA): AI Agents
From your site repository root, pick one AI agent and run setup (Claude Code / Cursor / Codex). The CLI opens the browser to confirm. Do not paste a key into the agent chat. Use --key or --no-browser only when you cannot use the browser.
cd my-site
npx -y @luno-cms/mcp setup
| Choice | What gets written |
|---|---|
| Claude Code | .claude/skills/luno/ + .mcp.json |
| Cursor | .cursor/skills/luno/ + .cursor/mcp.json |
| Codex | .agents/skills/luno/ + .codex/config.toml |
Shared: .agents/luno/{dev,stg,prod}.env (keys; gitignored). Public default is prod (luno-prod). dev / stg stay on disk for explicit setup --env stg / run stg / env switch stg.
Then:
List the form sets on this LUNO, or draft one entry. Don't publish or change the schema.Later: teammates run npx @luno-cms/mcp login. Use --env stg only if you have access.
Verified clients: Claude Code / Cursor / Codex (Golden Path E2E).
| Client | Notes |
|---|---|
| Claude Code | If tools are missing, reconnect (/mcp) |
| Cursor | Settings → MCP: enable luno-prod. Start a new Agent chat if needed |
| Codex | Project .codex/config.toml (with cwd) plus home config: Codex prefers `~/.codex/config.toml`, so setup may offer codex mcp add (with LUNO_PROJECT_ROOT). Check: codex mcp list (luno-prod, etc.). First MCP tool calls may need approval. Prefer `luno-prod` |
/luno is an optional shortcut after setup. It is not required, and it must not ask for a key.
After a teammate clones (.mcp.json is there, keys are not):
npx @luno-cms/mcp login
login refreshes .agents/luno/ .env only. It does not rewrite MCP config. Use the same command for expired keys or 401. First-time machines still run setup.
Non-interactive:
npx @luno-cms/mcp setup --agent claude --yes --key 'sk-agent-…'
npx @luno-cms/mcp login --key 'sk-agent-…' npx @luno-cms/mcp env status
Explicit staging (internal / Benchmark / Partner only):
npx @luno-cms/mcp setup --env stg --key 'sk-agent-…'
npx @luno-cms/mcp run stg
Issue keys in Console → Settings → Agent API keys (per env / per site). Default scope full (content + form definitions). Use content to restrict to articles only.
Rate limits: per agent key to Admin API — 60 req / 60s (Free / Solo) or 300 / 60s (Standard+). Over limit → HTTP 429 + RATE_LIMITED + Retry-After. Console JWT traffic is not limited this way. Details: AI Agents rate limits.
| Scope | When to use |
|---|---|
| full (recommended) | Articles + Form Set / Contact / Blueprint |
| content | Create / update / publish articles only |
| schema | Same privileges as full (compat) |
| Variable | Example | Description |
|---|---|---|
LUNO_API_URL | https://api.luno.rest/admin | Admin API base (include /admin) |
LUNO_AGENT_KEY | sk-agent-… | Agent API key |
npx @luno-cms/mcp --version # print package version (no MCP start)
npx @luno-cms/mcp # start MCP from env vars npx @luno-cms/mcp run prod # load .agents/luno/prod.env then start npx @luno-cms/mcp setup npx @luno-cms/mcp env …
Generated MCP configs use npx -y @luno-cms/mcp@latest run so reconnect fetches the newest publish (avoids a stale unpinned npx cache). Re-run npx @luno-cms/mcp setup (or edit mcp.json) if a site still has the unpinned spec, then /mcp reconnect — do not hand-bump a version pin. Confirm the running package with --version or get_mcp_runtime.
MCP server names: luno-dev / luno-stg / luno-prod
For Cursor Marketplace / local plugin setup, see the LUNO Console onboarding. For normal site work, prefer npx @luno-cms/mcp setup above.
One MCP entry = one key. Split by site or scope with different MCP server names. Active key limits depend on plan.
get_project_overview — project summary + intentCapabilities (recommended first)create_contact_form (dryRun: true first). Content → match purposeLabels then a templateget_form_set_schema / list_entries as neededcontent scope and above)| Tool | Description |
|---|---|
get_project_overview | Project summary + intentCapabilities (Contact vs Form Set) / nextMoves / Form Sets / Contact / Masters / storage / locales / public API |
get_tenant_schema | Full project schema |
list_form_sets / get_form_set_schema | Form Set list / definition (get_form_set_schema includes form-set schema-context + snapshotShape.example; selects may include masterEntityKey / public records URL) |
get_public_api_info | Agent key projectId + public API base (entries / master-entities) |
list_entries / get_entry | Entry list / detail |
create_entry / bulk_create_entries / update_entry | Create entry / bulk create (≤50 slugs) / update slug |
list_revisions / save_revision / get_pub_preview_url / publish_revision | Revisions / preview URL for human review / publish (can_publish=false keys stop at submit + pendingHumanApproval) |
submit_entry_for_review | Submit for approval |
list_media | Media list |
upload_media | Upload (filePath / sourceUrl / base64 → asset id) |
list_master_entities / get_master_entity | Master entities |
list_master_records / create_master_record | List / create records (label string or { default, ja, … }; optional color #RRGGBB) |
update_master_record / update_master_tree | Update records / tree (not available with agent keys — see below) |
get_project_content_locales | Content locale settings (includes content_default_locale) |
patch_project_content_locales | Update locales (tenant_admin JWT only) |
search_admin_help | Search Console help KB |
get_admin_help_article | One help article (Markdown) |
ask_admin_help | Help RAG Q&A (related articles if LLM unset) |
translate_entry_locales | AI locale batch translate (Standard+, 1 ticket / run) |
get_login_branding | Login branding (no auth; includes login_background / hide_luno_logo / hide_powered_by) |
get_login_appearance | Login appearance settings (auth required) |
update_login_appearance | Update login appearance (background=Standard+, WL=Business+) |
list_console_login_ip_allowlists | Login IP allowlist (Business+) |
add_console_login_ip_allowlist | Add IP rule (tenant scope) |
delete_console_login_ip_allowlist | Delete IP rule |
Master update limits: agent keys have no userId; update_master_record / update_master_tree need a user JWT with master_record_edit_allowed or tenant_admin. List / create (create_master_record) work with content scope. Creating master definitions uses `apply_master_blueprint` (schema scope), not POST /master-entities.
Multilingual master labels: label may be a plain string (default locale) or a locale map. When site multilingual is OFF, only default is stored. Blueprint record.label stays a plain string (normalized internally).
Master record color: optional #RRGGBB on create_master_record, update_master_record (user JWT), and apply_master_blueprint records. Omit keeps an existing color (create = none). null clears. #fff / named colors are rejected.
Locale translation: call translate_entry_locales with a content-scope agent key, merge returned items into the snapshot, then save_revision. Returns 400 if site multilingual is OFF.
E2E over a real MCP stdio client:
# LUNO_API_URL + LUNO_AGENT_KEY (dedicated smoke project recommended)
pnpm golden-path-smoke
Creates gp-smoke-* Form Sets / entries and checks Public API + funnel (agent_backend_selected → site_created → site_published). **Staging Golden Path CI
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요