Skip to main content
Glama

MCP Kkebi πŸš€

MCP TypeScript React License

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 <div>{/* μœ„μ ― UI */}</div>;
}
  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/Application Support/Claude/claude_desktop_config.json νŽΈμ§‘

# 4. Claude Desktop μž¬μ‹œμž‘

# 5. Claudeμ—μ„œ ν…ŒμŠ€νŠΈ
# "greet" 도ꡬ ν˜ΈμΆœν•˜κ±°λ‚˜ μœ„μ ― ν‘œμ‹œ μš”μ²­

이제 ChatGPT와 Claudeμ—μ„œ μ‹€ν–‰λ˜λŠ” λ©‹μ§„ μΈν„°λž™ν‹°λΈŒ MCP 앱을 λ§Œλ“€ μ€€λΉ„κ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€! πŸš€βœ¨

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mimsut/mcp_kkebi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server