Cafe24 Admin API MCP Server with Memory Optimization
npm install cafe24-admin-mcp> "์ด๋ค ํ ์ด๋ธ์ด ์๋" ํ์ฅ ๊ฐ๋ฅํ ๋ฒ์ฉ ์บ์ฑยท๋ถ์ ์์คํ
Claude Desktop๊ณผ Cafe24 Admin API๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ด๊ณ ์ ๋ฐ์ดํฐ ๋ถ์์ ์ ๊ณตํ๋ MCP ์๋ฒ์ ๋๋ค.
bash
cd cafe24-admin
npm install
`$3
`bash
cp .env.example .env
.env ํ์ผ ํธ์ง
`ํ์ ์ค์ :
`env
MALL_ID=your_mall_id
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secretRedis ์บ์ฑ (๊ถ์ฅ)
ENABLE_REDIS_CACHE=true
REDIS_URL=redis://localhost:6379
REDIS_TTL=3600
`$3
macOS:
`bash
brew install redis
brew services start redis
`Ubuntu/Debian:
`bash
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
`Docker:
`bash
docker run -d -p 6379:6379 redis:alpine
`$3
`bash
npm run build
`$3
claude_desktop_config.json์ ์ถ๊ฐ:`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"
}
}
}
}
`๐ ์ฌ์ฉ๋ฒ
$3
1. ํ ํฐ ์ง์ ์ค์ (๊ถ์ฅ):
`
ํ ํฐ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด cafe24_set_tokens๋ฅผ ์ฌ์ฉํ์ธ์.
`2. OAuth ํ๋ก์ฐ:
`
1. Cafe24 ์ฑ ์ค์ ์์ Redirect URI ๋ฑ๋ก
2. cafe24_exchange_code๋ก ํ ํฐ ๊ตํ
`$3
#### 1๋จ๊ณ: ํ
์ด๋ธ ๋ฐ์ดํฐ ์บ์ฑ
`typescript
// 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๋จ๊ณ: ์ด๊ณ ์ ๋ฐ์ดํฐ ์กฐํ
`typescript
// 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๋จ๊ณ: ๋ณตํฉ ์ง๊ณ ๋ถ์
`typescript
// ๋ค์ค ๊ทธ๋ฃนํ + ๋ฉํธ๋ฆญ (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๋จ๊ณ: ์บ์ ๊ด๋ฆฌ
`typescript
// ์บ์ ์ํ ํ์ธ
list_cached_tables({action: "list"})// ์ฑ๋ฅ ํต๊ณ
list_cached_tables({action: "stats"})
// ์บ์ ์ ๋ฆฌ
list_cached_tables({action: "clear_table", table: "products"})
`๐ ์ฑ๋ฅ ๋น๊ต
| ์์
| ๊ธฐ์กด API ๋ฐฉ์ | ๋ฒ์ฉ ์บ์ ๋ฐฉ์ | ์ฑ๋ฅ ํฅ์ |
|------|---------------|----------------|-----------|
| 10,000๊ฐ ์ํ ์กฐํ | 3์ด + Context ์ด๊ณผ | 15ms | 200๋ฐฐ |
| ๋ณตํฉ ์ง๊ณ ๋ถ์ | Nร3์ด (๋ถ๊ฐ๋ฅ) | 45ms | ๋ฌดํ๋ |
| ํํฐ๋ง + ์ ๋ ฌ | 2์ด + ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ | 8ms | 250๋ฐฐ |
| ๋ฐ๋ณต ๋ถ์ | ๋งค๋ฒ 2-3์ด | 1-10ms | 300๋ฐฐ |
๐ ๏ธ ์ ์ฒด ๋๊ตฌ ๋ชฉ๋ก
$3
- cafe24_exchange_code - OAuth ์ฝ๋ ๊ตํ
- cafe24_refresh_token - ํ ํฐ ๊ฐฑ์
- cafe24_set_tokens - ๊ธฐ์กด ํ ํฐ ์ง์ ์ค์
- cafe24_get_token_status - ํ ํฐ ์ํ ํ์ธ
- cafe24_clear_tokens - ํ ํฐ ์ญ์ $3
- 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 ๋ค์ด๋ก๋$3
- cache_table_data - ์ด๋ค ํ
์ด๋ธ์ด๋ Redis ์บ์ฑ
- query_cached_table - ์ด๊ณ ์ ํ
์ด๋ธ ์ฟผ๋ฆฌ
- aggregate_cached_table - ๋ณตํฉ ์ง๊ณ ๋ถ์
- list_cached_tables - ์บ์ ๊ด๋ฆฌ์ด 22๊ฐ ๋๊ตฌ (๊ธฐ์กด 18๊ฐ + ๋ฒ์ฉ ์บ์ฑ 4๊ฐ)
๐ ์์ธ ๊ฐ์ด๋
- ๋ฒ์ฉ ์บ์ฑ ์์คํ
๊ฐ์ด๋ - ์คํค๋ง-ํ๋ฆฌ ํ
์ด๋ธ ์บ์ฑ์ ๋ชจ๋ ๊ฒ
- Redis ์บ์ฑ ๊ฐ์ด๋ - Redis ์ค์น๋ถํฐ ์ต์ ํ๊น์ง
๐ง ๊ณ ๊ธ ์ค์
$3
`env
๋ฐ์ดํฐ ํน์ฑ์ ๋ฐ๋ฅธ ์ฒญํฌ ํฌ๊ธฐ ์กฐ์
๊ฐ๋จํ ํ
์ด๋ธ: 200-500
๋ณต์กํ ํ
์ด๋ธ: 50-100
๋์ฉ๋ ํ
์คํธ: 25-50
`$3
`env
REDIS_TTL=3600 # 1์๊ฐ (๊ธฐ๋ณธ)
REDIS_TTL=86400 # 24์๊ฐ (์์ ์ ๋ฐ์ดํฐ)
REDIS_TTL=1800 # 30๋ถ (์์ฃผ ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ)
`$3
`env
AWS_REGION=ap-northeast-2
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
S3_BUCKET_NAME=your-bucket
`๐จ ๋ฌธ์ ํด๊ฒฐ
$3
`bash
Redis ์๋ฒ ์ํ ํ์ธ
redis-cli ping์ฐ๊ฒฐ ํ
์คํธ
redis-cli -h localhost -p 6379 ping
`$3
`bash
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ํ์ธ
redis-cli info memory์บ์ ์ ๋ฆฌ
Claude์์: list_cached_tables({action: "clear"})
`$3
`bash
ํ ํฐ ์ํ ํ์ธ
Claude์์: cafe24_get_token_status()
ํ ํฐ ๊ฐฑ์
Claude์์: cafe24_refresh_token({refresh_token: "..."})
`๐ ๋ก๋๋งต
$3
- โ
์คํค๋ง-ํ๋ฆฌ ํ
์ด๋ธ ์บ์ฑ
- โ
์ด๊ณ ์ ์ฟผ๋ฆฌ ๋ฐ ์ง๊ณ
- โ
์๋ TTL ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ$3
- ๐ Range ์ฟผ๋ฆฌ ($gte, $lte, $between`)1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request
MIT License
---
๋ฒ์ฉ ํ ์ด๋ธ ์บ์ฑ์ผ๋ก ์ด๋ค ํฌ๊ธฐ์ ๋ฐ์ดํฐ๋ Claude Desktop์์ ์ค์๊ฐ ๋ถ์ํ์ธ์! ๐