Giting.
낮의 Giting

홈 · UI 생성 · MCP · 컴포넌트 마켓 · SaaS 클라이언트 · vibe-coding · TypeScript

magic-mcp 대표 이미지 6b5299e (2026-09-09, 전체 86커밋)
분석 리포트실측 정보사이트적용점원문 README

에디터 안의 v0

21st.dev Magic MCP 의 표어는 분명하다. "v0 같은데, 네 Cursor / Claude Code / Windsurf 안에서." 자연어로 React/Tailwind UI 를 생성하고, 1만 개 넘는 컴포넌트를 검색하고, 자기 컴포넌트를 올린다. 에디터를 떠나지 않고. 스타는 5,888개다.

repo 를 열어봤다

Giting 의 습관대로 저장소를 열었다. 그리고 값어치가 여기 없다는 걸 봤다.

  • 텍스트 1,212줄, 21파일, 테스트 0, 런타임 의존성 0
  • README 가 밝힌다: v0.2.0 부터 이 패키지(@21st-dev/magic)는 얇은 호환 프록시다. 모든 MCP 메시지를 https://21st.dev/api/mcp 로 넘긴다
  • 실제 Magic MCP 는 통합 '21st MCP'로 바뀌었고, npx @21st-dev/cli 로 설치하며 x-api-key 로 인증한다(계정 필요)

값어치는 서버에 있다

컴포넌트 1만 개, AI 생성, 게시, 이 모든 게 21st.dev 의 호스팅 서버에 있다. 이 repo 는 그 서버로 가는 문의 손잡이일 뿐이다. 여러 에디터(Cursor·Claude·VS Code·Windsurf·Codex)용으로 잘 패키징돼 붙이기는 쉽지만, 붙는 대상은 유료 SaaS 다.

그래서 OSS 신호가 약한 것도 이해된다. 테스트 0, 이슈 응답 중앙 911시간(약 38일). 값어치가 이 repo 에 없으니 repo 를 진지하게 유지할 이유도 적다. 옛 Magic API 키가 전부 리셋된 마이그레이션도 있었다.

가져올 것과 주의

  • 제품(21st MCP)은 에디터 안에서 v0 처럼 UI 를 만들고 큰 컴포넌트 라이브러리를 쓰려는 사람에게 값이 있을 수 있다. 여러 에디터용으로 붙이기 쉽다
  • ⚠️ 이건 오픈소스 도입이 아니라 상용 서비스 구독이다. 계정·API 키가 필요하고, 컴포넌트·생성 로직은 열려 있지 않다
  • ⚠️ 평가는 repo 가 아니라 21st.dev 서비스를 그 자체로 하라, 가격·약관·생성 품질·데이터 취급
  • 자체 호스팅·오프라인·무의존을 원하면 대상이 아니다

실측 정보

HEAD 커밋
6b5299e (2026-09-09, 전체 86커밋)
소유 / 제품
21st-dev · 상용 플랫폼 21st.dev('디자인 엔지니어를 위한 npm') · 생성 2025-02 · 저자 9명
OSS 규모
텍스트 1,212줄 · 21파일 · **테스트 0** · 런타임 의존성 0(작은 stdio 프록시)
실체(핵심)
v0.2.0 부터 이 패키지는 **얇은 호환 프록시**다. 모든 MCP 메시지를 21st.dev/api/mcp 로 넘긴다. 실제 Magic MCP 서버는 '21st MCP'로 통합됐고 npx @21st-dev/cli 로 설치
값어치의 위치
1만+ React/Tailwind 컴포넌트 검색 · AI UI 생성 · 게시: 전부 21st.dev **호스팅 서버**에 있다. x-api-key 로 인증(계정 필요)
패키징
skill·claude-plugin·codex-plugin·agents 로 다 감쌈: 여러 에디터에 붙이기 쉽게
이슈 관리
열린 이슈 5 · 25건 표본 중 19건 응답이나 **중앙 911시간(약 38일)**: OSS repo 응답은 매우 느리다(프록시 shim 이라 그럴 수 있음)
마이그레이션 주의
옛 Magic API 키는 전부 리셋됨. 21st.dev/mcp 에서 새 키 발급 필요
라이선스
ISC © 21st-dev

사이트 실측

주소
21st.dev/mcp
응답 · 첫 화면
200 · 1.5초 (데스크톱)
요청 · 전송량
177개 · 3.6MB
깨진 요청 · 콘솔 오류
0개 · 0개
폰(390px)
가로 넘침 없음
디자인
밝은 화면 · General Sans · Averia Serif Libre

홈페이지를 실제 크롬으로 띄워 첫 화면까지만 쟀습니다(2026-10-16 · 데스크톱 1440px · 폰 390px). 로그인 · 입력 같은 동작은 하지 않았고, 사이트 상태는 리포 품질과 따로 봅니다. 색 칸은 바탕 · 면 · 글자 · 흐린 글자 · 강조 · 선, 점선은 「못 잼」.

적용점

  • 이럴 때 유용Cursor·Claude Code 안에서 v0 처럼 UI 를 생성하고 큰 컴포넌트 라이브러리를 뒤지고 싶을 때. 제품 자체(21st MCP)는 UI 를 많이 만드는 사람에게 속도를 준다. 여러 에디터용으로 잘 패키징돼 붙이기 쉽다.
  • 이럴 땐 부적합'오픈소스를 도입'하려는 관점. 이 repo 는 1,212줄 프록시일 뿐, 값어치는 계정·API 키가 필요한 유료 호스팅 SaaS 에 있다. 자체 호스팅·오프라인·무의존을 원하면 대상이 아니다. 컴포넌트·생성 로직이 열려 있지 않다.
  • 먼저 볼 것이건 '오픈소스 도구'라기보다 '상용 서비스의 오픈 클라이언트'다. 평가는 repo 가 아니라 21st.dev 서비스(가격·약관·생성 품질·데이터 취급)를 그 자체로 해야 한다. OSS 신호(테스트 0·이슈 중앙 911시간·프록시 shim)는 약하지만, 그건 값어치가 여기 없기 때문이다. 옛 키 리셋 마이그레이션도 있었다.
◈ 참고용

표어는 매력적이다. 'v0 같은데 네 에디터 안에서.' Cursor·Claude Code 안에서 자연어로 React/Tailwind UI 를 만들고, 1만 개 넘는 컴포넌트를 검색하고, 자기 것을 올린다. 스타 5,888개가 그 매력을 말한다. 그런데 Giting 은 repo 를 연다. 열어보니 이 오픈소스 패키지는 값어치가 담긴 곳이 아니었다. 1,212줄, 테스트 0, 런타임 의존성 0. README 가 스스로 밝힌다: v0.2.0 부터 이 패키지는 모든 MCP 메시지를 21st.dev/api/mcp 로 넘기는 얇은 호환 프록시이고, 실제 Magic MCP 는 '21st MCP'로 통합돼 CLI 로 설치하며 API 키로 인증한다. 즉 컴포넌트 1만 개도, AI 생성도, 게시도 전부 21st.dev 의 유료 호스팅 서버에 있다. 이 repo 는 그 문으로 가는 얇은 손잡이다. 그래서 판정은 참고용이다. 제품(21st MCP)은 UI 를 많이 만드는 사람에게 실제로 값이 있을 수 있지만, 그건 오픈소스 도입이 아니라 상용 서비스 구독이다. 평가는 이 repo 가 아니라 21st.dev 서비스의 가격·약관·생성 품질·데이터 취급을 그 자체로 봐야 한다. OSS 지표(테스트 0·이슈 중앙 38일·프록시 shim)가 약한 건 값어치가 여기 없기 때문이지 제품이 나빠서가 아니다. 알아 두되, 열린 코드로 착각하지는 말 것.

원문 README

아래는 21st-dev/magic-mcp 저장소의 README 원문입니다(GitHub 렌더, 수집 시점 기준). 저작권은 원 프로젝트에 있으며 원 저장소의 라이선스를 따릅니다. GitHub에서 보기

README 전문 펼치기

Magic MCP → 21st MCP

Magic MCP is now the 21st MCP. The Magic MCP server (@21st-dev/magic) has been replaced by the unified 21st MCP, installed via the 21st CLI — setup at 21st.dev/mcp. This package remains published as a thin compatibility proxy so old configs keep working.

Install the 21st MCP (recommended)

npx @21st-dev/cli@latest init --client cursor   # or: claude | vscode | windsurf | codex

Or add it manually — it is a plain HTTP MCP server:

{
  "mcpServers": {
    "21st": {
      "url": "https://21st.dev/api/mcp",
      "headers": { "x-api-key": "YOUR_21ST_API_KEY" }
    }
  }
}

Get an API key at 21st.dev/mcp.

Old Magic API keys were reset. Keys issued by the old Magic console no longer work anywhere. Generate a fresh key at 21st.dev/mcp.

What this package does now (v0.2.0+)

npx -y @21st-dev/magic@latest API_KEY="..." still works: since v0.2.0 it is a small stdio proxy that forwards every MCP message to the 21st MCP server. Existing mcp.json entries that reference @21st-dev/magic keep functioning — but they now speak to the same server as the 21st CLI, with the tools available to the authenticated account.

The API key is accepted in all the historical forms: positional API_KEY="...", --API_KEY=..., /API_KEY:..., -API_KEY ..., or the TWENTY_FIRST_API_KEY / API_KEY_21ST environment variables.

AI access

Builder component access does not enable hosted 21st AI. The server lists generate and iterate_generation only when AI access is enabled. Check get_usage.aiGenerationEnabled; this reports access, not the remaining AI credit balance. With AI off, use search and get_component, then adapt the code with your own coding agent. Existing drafts remain readable.

A cached or legacy generation call can return ai_subscription_required. Do not retry until AI is enabled. Refresh the client tool list or reconnect after enabling AI. The proxy forwards discovery to the server, so existing proxy versions receive this behavior without an npm update.

server.json mirrors the official dev.21st/mcp registry listing. The registry version is independent of this compatibility package version.

Old tool names → new tool names

The 21st MCP still accepts the legacy Magic tool names and translates them, so agents that remember the old names keep working. Prefer the new names:

Legacy Magic tool 21st MCP tool
21st_magic_component_builder generate
21st_magic_component_inspiration get_inspiration
21st_magic_component_refiner generate (new generation from the refinement prompt)
logo_search search_logo (one query per call)

The current server exposes much more than the old four tools: catalog search across components/themes/templates, paid code retrieval, bookmarks, team libraries, UI generation with variants, profile management, and more. Connect and call tools/list to see the tools available to your account.

Install as a plugin

This repository is also packaged as an agent plugin (MCP server + a UI skill). You don't need to wait for any store — this repo IS a marketplace, add it directly:

# Claude Code
claude plugin marketplace add 21st-dev/magic-mcp   # then: /plugin install 21st

# Grok Build
grok plugin marketplace add 21st-dev/magic-mcp && grok plugin install 21st --trust

# Codex CLI
codex plugin marketplace add 21st-dev/magic-mcp    # then install "21st" from /plugins

Set your API key in the API_KEY_21ST variable (free key at 21st.dev/mcp).

Store listings:

  • Cursor / Grok Bot — install "21st" from the Cursor Marketplace, then set your API_KEY_21ST under Plugins → Configure. Get a key at 21st.dev/mcp.
  • Grok Build — grok plugin install 21st --trust (from the official xAI marketplace), then export API_KEY_21ST.
  • Claude Code — the repo carries a .claude-plugin/ manifest: /plugin install it from any marketplace that lists this repo, or load locally with claude --plugin-dir . and export API_KEY_21ST.

The plugin config expects the API key in the API_KEY_21ST variable in every client.

Links

FAQ

Why did my old Magic MCP stop working? The Magic backend (magic.21st.dev) was superseded by the unified 21st MCP, and all old API keys were reset for security. Update to a fresh key from 21st.dev/mcp — your existing @21st-dev/magic config will then work again through this compatibility proxy, though we recommend switching to npx @21st-dev/cli@latest init.

Is /ui still a thing? Use natural language: ask your agent to search 21st for components (search), or use hosted UI generation (generate) when AI is enabled. The old /ui, /21 trigger phrases were a convention of the legacy tools' descriptions, not the protocol.

의견

판정에 대한 반론, 도입 경험, 정정 제보를 환영합니다. GitHub 계정으로 참여합니다.

이것도 재봤습니다

전체 리포트 →