MCP Kkebi MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/mimsut/mcp_kkebi.git
cd mcp_kkebi
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add mcp-kkebi -- node "<FULL_PATH_TO_MCP_KKEBI>/dist/index.js"

Replace <FULL_PATH_TO_MCP_KKEBI>/dist/index.js with the actual folder you prepared in step 1.

README.md

Build interactive UI applications and React-based widgets for AI models.

MCP Kkebi πŸš€

ChatGPT와 Claudeμ—μ„œ μ‹€ν–‰λ˜λŠ” μΈν„°λž™ν‹°λΈŒ UI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜λŠ” MCP μ•±μž…λ‹ˆλ‹€.

πŸ”— Repository: github.com/mimsut/mcp_kkebi

✨ νŠΉμ§•

  • 🎨 μΈν„°λž™ν‹°λΈŒ μœ„μ ―: React 기반의 μ•„λ¦„λ‹€μš΄ UI μ»΄ν¬λ„ŒνŠΈ
  • πŸ€– AI 톡합: ChatGPT와 Claudeμ—μ„œ λ°”λ‘œ μ‚¬μš© κ°€λŠ₯
  • ⚑️ λΉ λ₯Έ 개발: TypeScript + Hot Reload
  • πŸ“¦ μ‰¬μš΄ 배포: Manufact Cloud 지원
  • πŸ”§ ν™•μž₯ κ°€λŠ₯: μƒˆλ‘œμš΄ 도ꡬ와 μœ„μ ― μ‰½κ²Œ μΆ”κ°€

πŸš€ λΉ λ₯Έ μ‹œμž‘

# Clone
git clone https://github.com/mimsut/mcp_kkebi.git
cd mcp_kkebi

# μ„€μΉ˜
npm install

# 개발 λͺ¨λ“œ
npm run dev

# λΉŒλ“œ
npm run build

πŸ“¦ ν”„λ‘œμ νŠΈ ꡬ쑰

my-mcp-app/
β”œβ”€β”€ src/
β”‚   └── index.ts              # MCP μ„œλ²„ μ§„μž…μ  (TypeScript)
β”œβ”€β”€ dist/
β”‚   └── index.js              # λΉŒλ“œλœ μ„œλ²„ (JavaScript)
β”œβ”€β”€ resources/
β”‚   β”œβ”€β”€ example-widget/       # 예제 μœ„μ ―
β”‚   β”‚   β”œβ”€β”€ widget.tsx        # React μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   └── types.ts          # Props νƒ€μž…
β”‚   └── counter-widget/       # μΈν„°λž™ν‹°λΈŒ μΉ΄μš΄ν„° μœ„μ ―
β”‚       β”œβ”€β”€ widget.tsx
β”‚       └── types.ts
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ mcp-config.json           # MCP μ„€μ • 파일
└── README.md

πŸ—οΈ μ•„ν‚€ν…μ²˜

  • Server: MCP 도ꡬ(tools)와 λ¦¬μ†ŒμŠ€(resources) μ •μ˜ (src/index.ts)
  • Widget: resources/ ν΄λ”μ˜ React μ»΄ν¬λ„ŒνŠΈλ‘œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ Œλ”λ§
  • Protocol: MCPκ°€ μžλ™μœΌλ‘œ 톡신 처리

πŸš€ μ‹œμž‘ν•˜κΈ°

1. μ˜μ‘΄μ„± μ„€μΉ˜

npm install

2. λΉŒλ“œ

npm run build

3. 개발 λͺ¨λ“œ μ‹€ν–‰ (ν•« λ¦¬λ‘œλ“œ)

npm run dev

4. ν”„λ‘œλ•μ…˜ μ‹€ν–‰

npm start

πŸ”§ Claude Desktop에 μ—°κ²°ν•˜κΈ°

macOS

  1. Claude Desktop μ„€μ • 파일 μ—΄κΈ°:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. λ‹€μŒ μ„€μ • μΆ”κ°€:
{
  "mcpServers": {
    "my-mcp-app": {
      "command": "node",
      "args": [
        "/Users/user/Downloads/b_ru8Xi2QdWzH-1771717682115/my-mcp-app/dist/index.js"
      ]
    }
  }
}
  1. Claude Desktop μž¬μ‹œμž‘

Windows

μ„€μ • 파일 μœ„μΉ˜: %APPDATA%\Claude\claude_desktop_config.json

πŸ’¬ ChatGPT에 μ—°κ²°ν•˜κΈ°

  1. ChatGPT μ„€μ •μ—μ„œ "Custom Actions" λ˜λŠ” "GPT" μ„Ήμ…˜μœΌλ‘œ 이동
  2. MCP μ„œλ²„ μΆ”κ°€:
    • μ„œλ²„ URL: 둜컬 λ˜λŠ” 배포된 URL
    • ν”„λ‘œν† μ½œ: MCP (Model Context Protocol)

🎨 μœ„μ ― μ‚¬μš©ν•˜κΈ°

Example Widget

ν™˜μ˜ λ©”μ‹œμ§€μ™€ κΈ°λ³Έ 정보λ₯Ό ν‘œμ‹œν•˜λŠ” κ°„λ‹¨ν•œ μœ„μ ―μž…λ‹ˆλ‹€.

μ‚¬μš©λ²•:

widget://example

νŠΉμ§•:

  • κ·ΈλΌλ””μ–ΈνŠΈ λ°°κ²½
  • ν™˜μ˜ λ©”μ‹œμ§€
  • μƒνƒœ ν‘œμ‹œ

Counter Widget

μ‚¬μš©μž μƒν˜Έμž‘μš©μ„ λ³΄μ—¬μ£ΌλŠ” μΈν„°λž™ν‹°λΈŒ μΉ΄μš΄ν„° μœ„μ ―μž…λ‹ˆλ‹€.

μ‚¬μš©λ²•:

widget://counter

νŠΉμ§•:

  • 증가/κ°μ†Œ λ²„νŠΌ
  • μ΄ˆκΈ°ν™” κΈ°λŠ₯
  • μ‹€μ‹œκ°„ μƒνƒœ μ—…λ°μ΄νŠΈ
  • λΆ€λ“œλŸ¬μš΄ μ• λ‹ˆλ©”μ΄μ…˜

πŸ› οΈ 도ꡬ (Tools)

greet

μ‚¬μš©μžμ—κ²Œ ν™˜μ˜ λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

νŒŒλΌλ―Έν„°:

  • name (string, ν•„μˆ˜): μ‚¬μš©μž 이름

예제:

{
  "name": "홍길동"
}

응닡:

μ•ˆλ…•ν•˜μ„Έμš”, ν™κΈΈλ™λ‹˜! MCP 앱에 μ˜€μ‹  것을 ν™˜μ˜ν•©λ‹ˆλ‹€! πŸŽ‰

πŸ§ͺ ν…ŒμŠ€νŠΈν•˜κΈ°

둜컬 ν…ŒμŠ€νŠΈ

# 개발 λͺ¨λ“œλ‘œ μ‹€ν–‰
npm run dev

# λ‹€λ₯Έ ν„°λ―Έλ„μ—μ„œ MCP Inspector μ‚¬μš©
npx @modelcontextprotocol/inspector node dist/index.js

Inspectorμ—μ„œ 확인

MCP Inspectorλ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒμ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • λͺ¨λ“  도ꡬ와 λ¦¬μ†ŒμŠ€ λͺ©λ‘ 확인
  • ν…ŒμŠ€νŠΈ μž…λ ₯으둜 도ꡬ 호좜
  • μœ„μ ― 미리보기 라이브둜 확인
  • μ½”λ“œ λ³€κ²½ μ‹œ μ¦‰μ‹œ ν•« λ¦¬λ‘œλ“œ

πŸ“ μƒˆλ‘œμš΄ μœ„μ ― μΆ”κ°€ν•˜κΈ°

  1. resources/ 폴더에 μƒˆ 디렉토리 생성:
mkdir resources/my-widget
  1. types.ts 파일 생성:
export interface MyWidgetProps {
  // props μ •μ˜
}
  1. widget.tsx 파일 생성:
import React from "react";
import type { MyWidgetProps } from "./types";

export default function MyWidget(props: MyWidgetProps) {
  return {/* μœ„μ ― UI */};
}
  1. src/index.ts에 λ¦¬μ†ŒμŠ€ ν•Έλ“€λŸ¬ μΆ”κ°€:
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
  // ...
  if (uri === "widget://my-widget") {
    return {
      contents: [{
        uri: "widget://my-widget",
        mimeType: "application/vnd.mcp.widget+json",
        text: JSON.stringify({
          type: "my-widget",
          props: { /* props */ },
        }),
      }],
    };
  }
  // ...
});

🌐 λ°°ν¬ν•˜κΈ°

Manufact Cloud에 배포

  1. manufact.com 접속
  2. GitHub 리포지토리 μ—°κ²°
  3. main λΈŒλžœμΉ˜μ— push β†’ μžλ™ 배포

λ˜λŠ” CLI μ‚¬μš©:

npx @mcp-use/cli deploy

ν™˜κ²½ λ³€μˆ˜ μ„€μ •

ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜κ°€ μžˆλ‹€λ©΄ .env 파일 생성:

# .env
API_KEY=your_api_key
DATABASE_URL=your_database_url

🎯 평가 κΈ°μ€€ (해컀톀)

ν”„λ‘œμ νŠΈλŠ” λ‹€μŒ κΈ°μ€€μœΌλ‘œ ν‰κ°€λ©λ‹ˆλ‹€:

1. 독창성 (30점) 🌟

  • μƒˆλ‘œμš΄ κ°œλ…μ˜ μ°½μ˜μ„±
  • "이런 것도 MCP μ•±μœΌλ‘œ λ§Œλ“€ 수 μžˆκ΅¬λ‚˜!" ν•˜λŠ” 놀라움

2. μ‹€μš©μ„± (30점) πŸ’‘

  • μ‹€μ œ 문제 ν•΄κ²° λ˜λŠ” μ›Œν¬ν”Œλ‘œμš° κ°œμ„ 
  • μ‚¬μš©μžμ—κ²Œ μ‹€μ§ˆμ μΈ κ°€μΉ˜ 제곡

3. μœ„μ ―-λͺ¨λΈ μƒν˜Έμž‘μš© (20점) πŸ”„

  • useCallTool(), sendFollowUpMessage() λ“± μ–‘λ°©ν–₯ 톡신 ν™œμš©
  • state(), setState() ν™œμš©
  • μœ„μ ―κ³Ό AI λͺ¨λΈ κ°„μ˜ 효과적인 μƒν˜Έμž‘μš©

4. UI/UX (10점) 🎨

  • μ„Έλ ¨λ˜κ³  직관적인 κ²½ν—˜
  • λ°˜μ‘ν˜• λ””μžμΈ
  • μ ‘κ·Όμ„±

5. ν”„λ‘œλ•μ…˜ μ€€λΉ„ (10점) πŸš€

  • OAuth 인증
  • μ˜¨λ³΄λ”© ν”Œλ‘œμš°
  • μ—λŸ¬ 처리
  • μ‚¬μš©μž μ„€μ • 관리

πŸ“š μΆ”κ°€ λ¦¬μ†ŒμŠ€

🀝 κΈ°μ—¬ν•˜κΈ°

μ΄μŠˆλ‚˜ PR은 μ–Έμ œλ‚˜ ν™˜μ˜ν•©λ‹ˆλ‹€!

πŸ“„ λΌμ΄μ„ΌμŠ€

MIT License


πŸŽ‰ λΉ λ₯Έ μ‹œμž‘ μš”μ•½

# 1. μ˜μ‘΄μ„± μ„€μΉ˜
npm install

# 2. λΉŒλ“œ
npm run build

# 3. Claude Desktop에 μ—°κ²°
# ~/Library/

Tools (1)

greetDisplays a welcome message to the user.

Environment Variables

API_KEYAPI key for external services
DATABASE_URLDatabase connection string

Configuration

claude_desktop_config.json
{"mcpServers": {"my-mcp-app": {"command": "node", "args": ["/path/to/my-mcp-app/dist/index.js"]}}}

Try it

β†’Greet the user named 'Alice' using the greet tool.
β†’Show me the example widget.
β†’Open the counter widget to track my progress.

Frequently Asked Questions

What are the key features of MCP Kkebi?

React-based interactive UI widgets. TypeScript support with hot reload. Bidirectional interaction between AI and users. Easy deployment via Manufact Cloud. Extensible architecture for custom tools and resources.

What can I use MCP Kkebi for?

Creating interactive dashboards for AI data analysis. Building custom UI components for specific AI workflows. Developing stateful widgets like counters or forms for Claude. Rapid prototyping of AI-integrated web interfaces.

How do I install MCP Kkebi?

Install MCP Kkebi by running: git clone https://github.com/mimsut/mcp_kkebi.git && cd mcp_kkebi && npm install && npm run build

What MCP clients work with MCP Kkebi?

MCP Kkebi works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Kkebi docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare