Socket
Book a DemoInstallSign in
Socket

cafe24-admin-mcp

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cafe24-admin-mcp

Cafe24 Admin API MCP Server with Memory Optimization

0.2.10
latest
npmnpm
Version published
Weekly downloads
5
400%
Maintainers
1
Weekly downloads
ย 
Created
Source

๐Ÿš€ Cafe24 Admin API MCP Server with Universal Table Caching

"์–ด๋–ค ํ…Œ์ด๋ธ”์ด ์™€๋„" ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฒ”์šฉ ์บ์‹ฑยท๋ถ„์„ ์‹œ์Šคํ…œ

Claude Desktop๊ณผ Cafe24 Admin API๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ดˆ๊ณ ์† ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์ œ๊ณตํ•˜๋Š” MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

โœจ ํ•ต์‹ฌ ํŠน์ง•

๐Ÿงฉ ๋ฒ”์šฉ ํ…Œ์ด๋ธ” ์บ์‹ฑ (Universal Table Caching)

  • ์Šคํ‚ค๋งˆ-ํ”„๋ฆฌ: ์ƒˆ API/DB ํ…Œ์ด๋ธ”์ด ์ถ”๊ฐ€๋ผ๋„ ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ์ฆ‰์‹œ ์ง€์›
  • ํ† ํฐ ์ ˆ๊ฐ: ์›๋ณธ ๋ฐ์ดํ„ฐ๋Š” Redis์— ์ €์žฅ, Claude์—๋Š” ์ง‘๊ณ„ ๊ฒฐ๊ณผ๋งŒ ์ „์†ก (98% ์ ˆ์•ฝ)
  • Ultra Performance: 100-1000๋ฐฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ (1-50ms ์‘๋‹ต)

โšก ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”

  • Context ํ•œ๊ณ„ ๋ŒํŒŒ: 100MB+ ๋ฐ์ดํ„ฐ๋„ OOM ์—†์ด ์ฒ˜๋ฆฌ
  • ์ฒญํฌ ๊ธฐ๋ฐ˜ ์ €์žฅ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ ๊ทน๋Œ€ํ™”
  • ์ž๋™ ์••์ถ• ๋ฐ TTL ๊ด€๋ฆฌ

๐Ÿ“Š ๊ณ ๊ธ‰ ๋ถ„์„ ๊ธฐ๋Šฅ

  • SQL-like ์ฟผ๋ฆฌ (ํ•„ํ„ฐ๋ง, ์ •๋ ฌ, ํŽ˜์ด์ง€๋„ค์ด์…˜)
  • ๋ณตํ•ฉ ์ง‘๊ณ„ ๋ถ„์„ (GROUP BY + ๋‹ค์ค‘ ๋ฉ”ํŠธ๋ฆญ)
  • ์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ ์ง€์›

๐Ÿ› ๏ธ ์„ค์น˜ ๋ฐ ์„ค์ •

1. ์˜์กด์„ฑ ์„ค์น˜

cd cafe24-admin
npm install

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

cp .env.example .env
# .env ํŒŒ์ผ ํŽธ์ง‘

ํ•„์ˆ˜ ์„ค์ •:

MALL_ID=your_mall_id
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret

# Redis ์บ์‹ฑ (๊ถŒ์žฅ)
ENABLE_REDIS_CACHE=true
REDIS_URL=redis://localhost:6379
REDIS_TTL=3600

3. Redis ์„œ๋ฒ„ ์„ค์น˜ (์„ ํƒ์‚ฌํ•ญ์ด์ง€๋งŒ ๊ฐ•๋ ฅ ๊ถŒ์žฅ)

macOS:

brew install redis
brew services start redis

Ubuntu/Debian:

sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server

Docker:

docker run -d -p 6379:6379 redis:alpine

4. ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

npm run build

5. Claude Desktop ์„ค์ •

claude_desktop_config.json์— ์ถ”๊ฐ€:

{
  "mcpServers": {
    "cafe24-admin": {
      "command": "node",
      "args": ["/path/to/cafe24-admin/build/index.js"],
      "env": {
        "MALL_ID": "your_mall_id",
        "CLIENT_ID": "your_client_id", 
        "CLIENT_SECRET": "your_client_secret",
        "ENABLE_REDIS_CACHE": "true",
        "REDIS_URL": "redis://localhost:6379"
      }
    }
  }
}

๐Ÿš€ ์‚ฌ์šฉ๋ฒ•

๐Ÿ” ์ธ์ฆ ์„ค์ •

  • ํ† ํฐ ์ง์ ‘ ์„ค์ • (๊ถŒ์žฅ):
ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด cafe24_set_tokens๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • OAuth ํ”Œ๋กœ์šฐ:
1. Cafe24 ์•ฑ ์„ค์ •์—์„œ Redirect URI ๋“ฑ๋ก
2. cafe24_exchange_code๋กœ ํ† ํฐ ๊ตํ™˜

๐Ÿงฉ ๋ฒ”์šฉ ํ…Œ์ด๋ธ” ์บ์‹ฑ ์›Œํฌํ”Œ๋กœ์šฐ

1๋‹จ๊ณ„: ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์บ์‹ฑ

// Cafe24 API์—์„œ ์ž๋™ ์บ์‹ฑ
cache_table_data({
  table: "products",
  apiEndpoint: "/api/v2/admin/products",
  chunkSize: 200,
  maxRows: 10000
})

// ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์บ์‹ฑ
cache_table_data({
  table: "custom_analytics",
  data: [
    {metric: "sales", value: 1000000, date: "2025-01"},
    {metric: "orders", value: 450, date: "2025-01"}
  ]
})

2๋‹จ๊ณ„: ์ดˆ๊ณ ์† ๋ฐ์ดํ„ฐ ์กฐํšŒ

// SQL-like ์ฟผ๋ฆฌ (1-50ms)
query_cached_table({
  table: "products",
  filter: {
    display: "T",
    price: {$gte: 10000}
  },
  columns: ["product_no", "product_name", "price"],
  limit: 100,
  orderBy: "price"
})

3๋‹จ๊ณ„: ๋ณตํ•ฉ ์ง‘๊ณ„ ๋ถ„์„

// ๋‹ค์ค‘ ๊ทธ๋ฃนํ™” + ๋ฉ”ํŠธ๋ฆญ (5-100ms)
aggregate_cached_table({
  table: "orders",
  groupBy: ["product_no", "order_status"],
  metrics: ["count", "sum", "avg"],
  sumField: "total_amount",
  filter: {order_date: {$gte: "2025-01-01"}},
  limit: 20
})

4๋‹จ๊ณ„: ์บ์‹œ ๊ด€๋ฆฌ

// ์บ์‹œ ์ƒํƒœ ํ™•์ธ
list_cached_tables({action: "list"})

// ์„ฑ๋Šฅ ํ†ต๊ณ„
list_cached_tables({action: "stats"})

// ์บ์‹œ ์ •๋ฆฌ
list_cached_tables({action: "clear_table", table: "products"})

๐Ÿ“Š ์„ฑ๋Šฅ ๋น„๊ต

์ž‘์—…๊ธฐ์กด API ๋ฐฉ์‹๋ฒ”์šฉ ์บ์‹œ ๋ฐฉ์‹์„ฑ๋Šฅ ํ–ฅ์ƒ
10,000๊ฐœ ์ƒํ’ˆ ์กฐํšŒ3์ดˆ + Context ์ดˆ๊ณผ15ms200๋ฐฐ
๋ณตํ•ฉ ์ง‘๊ณ„ ๋ถ„์„Nร—3์ดˆ (๋ถˆ๊ฐ€๋Šฅ)45ms๋ฌดํ•œ๋Œ€
ํ•„ํ„ฐ๋ง + ์ •๋ ฌ2์ดˆ + ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ8ms250๋ฐฐ
๋ฐ˜๋ณต ๋ถ„์„๋งค๋ฒˆ 2-3์ดˆ1-10ms300๋ฐฐ

๐Ÿ› ๏ธ ์ „์ฒด ๋„๊ตฌ ๋ชฉ๋ก

๐Ÿ” ์ธ์ฆ ๊ด€๋ฆฌ (5๊ฐœ)

  • cafe24_exchange_code - OAuth ์ฝ”๋“œ ๊ตํ™˜
  • cafe24_refresh_token - ํ† ํฐ ๊ฐฑ์‹ 
  • cafe24_set_tokens - ๊ธฐ์กด ํ† ํฐ ์ง์ ‘ ์„ค์ •
  • cafe24_get_token_status - ํ† ํฐ ์ƒํƒœ ํ™•์ธ
  • cafe24_clear_tokens - ํ† ํฐ ์‚ญ์ œ

๐Ÿ›๏ธ ์ƒํ’ˆ ๊ด€๋ฆฌ (4๊ฐœ)

  • products_search_by_name - ์ƒํ’ˆ๋ช… ๊ฒ€์ƒ‰
  • products_list - ์ƒํ’ˆ ๋ชฉ๋ก ์กฐํšŒ
  • products_count - ์ƒํ’ˆ ๊ฐœ์ˆ˜ ํ™•์ธ
  • products_detail - ์ƒํ’ˆ ์ƒ์„ธ ์ •๋ณด

๐Ÿ“ฆ ์ฃผ๋ฌธ ๊ด€๋ฆฌ (3๊ฐœ)

  • orders_list - ์ฃผ๋ฌธ ๋ชฉ๋ก ์กฐํšŒ
  • orders_count - ์ฃผ๋ฌธ ๊ฐœ์ˆ˜ ํ™•์ธ
  • orders_detail - ์ฃผ๋ฌธ ์ƒ์„ธ ์ •๋ณด

๐Ÿ“ˆ ๋งค์ถœ ๋ถ„์„ (3๊ฐœ)

  • sales_volume - ๋งค์ถœ๋Ÿ‰ ๋ฐ์ดํ„ฐ
  • sales_volume_analyze - ๋งค์ถœ ๋ถ„์„
  • sales_top_selling_products - ์ธ๊ธฐ ์ƒํ’ˆ

๐Ÿ“ ๋Œ€๋Ÿ‰ ๋‹ค์šด๋กœ๋“œ (3๊ฐœ)

  • products_download_csv - ์ƒํ’ˆ CSV ๋‹ค์šด๋กœ๋“œ
  • orders_download_csv - ์ฃผ๋ฌธ CSV ๋‹ค์šด๋กœ๋“œ
  • sales_download_csv - ๋งค์ถœ CSV ๋‹ค์šด๋กœ๋“œ

๐Ÿงฉ ๋ฒ”์šฉ ํ…Œ์ด๋ธ” ์บ์‹ฑ (4๊ฐœ) - โญ ์‹ ๊ทœ

  • cache_table_data - ์–ด๋–ค ํ…Œ์ด๋ธ”์ด๋“  Redis ์บ์‹ฑ
  • query_cached_table - ์ดˆ๊ณ ์† ํ…Œ์ด๋ธ” ์ฟผ๋ฆฌ
  • aggregate_cached_table - ๋ณตํ•ฉ ์ง‘๊ณ„ ๋ถ„์„
  • list_cached_tables - ์บ์‹œ ๊ด€๋ฆฌ

์ด 22๊ฐœ ๋„๊ตฌ (๊ธฐ์กด 18๊ฐœ + ๋ฒ”์šฉ ์บ์‹ฑ 4๊ฐœ)

๐Ÿ“– ์ƒ์„ธ ๊ฐ€์ด๋“œ

  • ๋ฒ”์šฉ ์บ์‹ฑ ์‹œ์Šคํ…œ ๊ฐ€์ด๋“œ - ์Šคํ‚ค๋งˆ-ํ”„๋ฆฌ ํ…Œ์ด๋ธ” ์บ์‹ฑ์˜ ๋ชจ๋“  ๊ฒƒ
  • Redis ์บ์‹ฑ ๊ฐ€์ด๋“œ - Redis ์„ค์น˜๋ถ€ํ„ฐ ์ตœ์ ํ™”๊นŒ์ง€

๐Ÿ”ง ๊ณ ๊ธ‰ ์„ค์ •

์ฒญํฌ ํฌ๊ธฐ ์ตœ์ ํ™”

# ๋ฐ์ดํ„ฐ ํŠน์„ฑ์— ๋”ฐ๋ฅธ ์ฒญํฌ ํฌ๊ธฐ ์กฐ์ •
# ๊ฐ„๋‹จํ•œ ํ…Œ์ด๋ธ”: 200-500
# ๋ณต์žกํ•œ ํ…Œ์ด๋ธ”: 50-100
# ๋Œ€์šฉ๋Ÿ‰ ํ…์ŠคํŠธ: 25-50

TTL ์ „๋žต

REDIS_TTL=3600    # 1์‹œ๊ฐ„ (๊ธฐ๋ณธ)
REDIS_TTL=86400   # 24์‹œ๊ฐ„ (์•ˆ์ •์  ๋ฐ์ดํ„ฐ)
REDIS_TTL=1800    # 30๋ถ„ (์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ์ดํ„ฐ)

AWS S3 ์—ฐ๋™ (๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ)

AWS_REGION=ap-northeast-2
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
S3_BUCKET_NAME=your-bucket

๐Ÿšจ ๋ฌธ์ œ ํ•ด๊ฒฐ

Redis ์—ฐ๊ฒฐ ์‹คํŒจ

# Redis ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ
redis-cli ping

# ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ
redis-cli -h localhost -p 6379 ping

๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ

# ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ
redis-cli info memory

# ์บ์‹œ ์ •๋ฆฌ
# Claude์—์„œ: list_cached_tables({action: "clear"})

ํ† ํฐ ๋งŒ๋ฃŒ

# ํ† ํฐ ์ƒํƒœ ํ™•์ธ
# Claude์—์„œ: cafe24_get_token_status()

# ํ† ํฐ ๊ฐฑ์‹ 
# Claude์—์„œ: cafe24_refresh_token({refresh_token: "..."})

๐Ÿ“ˆ ๋กœ๋“œ๋งต

Phase 1: ๋ฒ”์šฉ ์บ์‹ฑ (โœ… ์™„๋ฃŒ)

  • โœ… ์Šคํ‚ค๋งˆ-ํ”„๋ฆฌ ํ…Œ์ด๋ธ” ์บ์‹ฑ
  • โœ… ์ดˆ๊ณ ์† ์ฟผ๋ฆฌ ๋ฐ ์ง‘๊ณ„
  • โœ… ์ž๋™ TTL ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

Phase 2: ๊ณ ๊ธ‰ ๋ถ„์„ (๐Ÿ”„ ์ง„ํ–‰์ค‘)

  • ๐Ÿ”„ Range ์ฟผ๋ฆฌ ($gte, $lte, $between)
  • ๐Ÿ”„ LIKE ํŒจํ„ด ๋งค์นญ
  • ๐Ÿ”„ ๊ต์ฐจ ํ…Œ์ด๋ธ” ๋ถ„์„

Phase 3: Redis ๋ชจ๋“ˆ (๐Ÿ”„ ๊ณ„ํš์ค‘)

  • ๐Ÿ”„ RedisJSON ํ†ตํ•ฉ
  • ๐Ÿ”„ RediSearch ์ „๋ฌธ ๊ฒ€์ƒ‰
  • ๐Ÿ”„ RedisTimeSeries ์‹œ๊ณ„์—ด

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

  • Fork the repository
  • Create a feature branch
  • Commit your changes
  • Push to the branch
  • Create a Pull Request

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

๋ฒ”์šฉ ํ…Œ์ด๋ธ” ์บ์‹ฑ์œผ๋กœ ์–ด๋–ค ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋“  Claude Desktop์—์„œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ํ•˜์„ธ์š”! ๐Ÿš€

Keywords

mcp

FAQs

Package last updated on 18 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with โšก๏ธ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.