devload/whatap-mxql-cli
If you are the rightful owner of whatap-mxql-cli and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
WhaTap MXQL CLI is a command-line interface for querying WhaTap monitoring data using MXQL (Metrics Query Language).
WhaTap MXQL CLI
WhaTap λͺ¨λν°λ§ λ°μ΄ν°λ₯Ό MXQL(Metrics Query Language)λ‘ μ‘°ννλ λͺ λ Ήμ€ μΈν°νμ΄μ€μ λλ€.
β¨ κΈ°λ₯
- π μμ ν μΈμ¦: AES-256-GCM μνΈνλ μΈμ μ μ₯
- π νλ‘μ νΈ κ΄λ¦¬: μ κ·Ό κ°λ₯ν λͺ¨λ νλ‘μ νΈ μ‘°ν λ° νν°λ§
- π MXQL 쿼리: κ°λ ₯ν MXQL 쿼리 μ€ν (볡μ‘ν νμ΄νλΌμΈ μ§μ)
- π¨ λ€μν μΆλ ₯ νμ: Table, JSON, CSV
- π¬ λνν REPL: μΈν°λν°λΈν 쿼리 μ€ν νκ²½
- β° μκ° λ²μ μ§μ: ν리μ λ° μ»€μ€ν μκ° λ²μ
- π MCP μλ²: Claude Code ν΅ν© μλ£! (Tools μ 곡)
- π€ Skill ν΅ν©: mxql-for-claude-code Skillκ³Ό ν¨κ» μ¬μ© (μμ°μ΄ β MXQL)
π λΉ λ₯Έ μμ
μ€μΉ
# μ μ₯μ ν΄λ‘
git clone <repository-url>
cd whatap-mxql-cli
# μμ‘΄μ± μ€μΉ
npm install
# λΉλ
npm run build
# bin μ€ν κΆν λΆμ¬
chmod +x bin/whatap-mxql
κΈ°λ³Έ μ¬μ©λ²
# λ°©λ² 1: λͺ
λ Ήμ΄ λ°λ‘ μ€ν (μλ λ‘κ·ΈμΈ μ λ)
./bin/whatap-mxql projects
# β λ‘κ·ΈμΈ μ λμ΄ μμΌλ©΄ μλμΌλ‘ λ‘κ·ΈμΈ ν둬ννΈ νμ
# λ°©λ² 2: λͺ
μμ λ‘κ·ΈμΈ ν μ¬μ©
./bin/whatap-mxql login
./bin/whatap-mxql projects
# 3. MXQL 쿼리 μ€ν
./bin/whatap-mxql query 27506 "CATEGORY app_counter" -r 24h
# 4. λνν λͺ¨λ
./bin/whatap-mxql interactive
π‘ TIP: λ‘κ·ΈμΈ μμ΄ μ΄λ€ λͺ λ Ήμ΄λ μ€ννλ©΄ μλμΌλ‘ λ‘κ·ΈμΈ ν둬ννΈκ° νμλ©λλ€!
π λͺ λ Ήμ΄
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
login [options] | WhaTap μλΉμ€ λ‘κ·ΈμΈ |
logout | λ‘κ·Έμμ λ° μΈμ μμ |
projects [options] | νλ‘μ νΈ λͺ©λ‘ μ‘°ν |
query <pcode> [mxql] [options] | MXQL 쿼리 μ€ν |
interactive [options] | λνν REPL λͺ¨λ |
μμΈ μ¬μ©λ²μ λ₯Ό μ°Έμ‘°νμΈμ.
π€ Claude Code ν΅ν© (MCP)
MCP μλ² μ€μ
# λΉλ (μ΄λ―Έ μλ£λ κ²½μ° skip)
npm run build
# MCP μ€μ νμΌ μμ±
mkdir -p ~/.claude/mcp
cat > ~/.claude/mcp/whatap-mxql.json << 'EOF'
{
"mcpServers": {
"whatap-mxql": {
"command": "node",
"args": ["/μ λ/κ²½λ‘/whatap-mxql-cli/dist/mcp/index.js"],
"description": "WhaTap MXQL Query Executor"
}
}
}
EOF
β οΈ μ€μ: /μ λ/κ²½λ‘/λ₯Ό μ€μ νλ‘μ νΈ κ²½λ‘λ‘ λ³κ²½νμΈμ!
Skill μ€μΉ (mxql-for-claude-code)
# μ μ₯μ ν΄λ‘
git clone https://github.com/kyupid/mxql-for-claude-code.git
cd mxql-for-claude-code
# μ€μΉ
./install.sh
μ¬μ© μμ
μ¬μ©μ: "PostgreSQLμμ CPU 80% μ΄μμΈ μΈμ€ν΄μ€ μ°Ύμμ€"
Claude Code:
1. (Skill) PostgreSQL μΉ΄ν
κ³ λ¦¬ λ° MXQL ν¨ν΄ νμ΅
2. (Skill) MXQL μμ±: "CATEGORY db_postgresql_counter FILTER..."
3. (MCP Tool) whatap.getProjects() - νλ‘μ νΈ λͺ©λ‘ νμΈ
4. (MCP Tool) whatap.executeMxql(pcode, mxql) - 쿼리 μ€ν
5. κ²°κ³Ό λΆμ λ° μλ΅
μμΈ μ€μΉ κ°μ΄λ:
π¨ μΆλ ₯ μμ
νλ‘μ νΈ λͺ©λ‘
β Found 12 project(s)
ββββββββββββββββ¬ββββββββββββββββββββββββββ¬ββββββββββ¬βββββββββββββ
β Project Code β Project Name β Type β Status β
ββββββββββββββββΌββββββββββββββββββββββββββΌββββββββββΌβββββββββββββ€
β 27506 β Browser Monitoring Demo β BROWSER β subscribe β
β 44482 β mobile test project β MOBILE β subscribe β
ββββββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββ΄βββββββββββββ
MXQL 쿼리 결과
[
{
"_id_": "27506_",
"pname": "Browser Monitoring Demo",
"pcode": 27506,
"sessionCount": 108.04790419161677,
"_rows_": 167
}
]
π§ Development
Setup
npm install
Build
npm run build
Test
# Run all tests
npm test
# Run unit tests only
npm run test:unit
# Run integration tests (requires WhaTap account)
npm run test:integration
# Watch mode
npm run test:watch
# Coverage
npm run test:coverage
Lint & Format
npm run lint
npm run lint:fix
npm run format
π§ͺ Testing
Unit Tests
Mock-based tests for all modules without external dependencies.
Integration Tests
Real API calls to WhaTap service (requires test account).
Configure test credentials in .env.test:
WHATAP_TEST_EMAIL=your-email@whatap.io
WHATAP_TEST_PASSWORD=your-password
WHATAP_SERVICE_URL=https://service.whatap.io
RUN_INTEGRATION_TESTS=true
π νλ‘μ νΈ κ΅¬μ‘°
whatap-mxql-cli/
βββ src/
β βββ core/ # ν΅μ¬ λͺ¨λ (CLI & MCP 곡μ )
β β βββ types/ # TypeScript νμ
μ μ
β β βββ auth/ # μΈμ¦ λͺ¨λ
β β β βββ SessionStore.ts # μΈμ
μ μ₯ (AES-256-GCM)
β β β βββ AuthManager.ts # μΈμ¦ κ΄λ¦¬ (Cookie Jar)
β β βββ client/ # API ν΄λΌμ΄μΈνΈ
β β β βββ WhatapClient.ts # WhaTap API (Dual Auth)
β β βββ executor/ # MXQL μ€νκΈ°
β β βββ MxqlExecutor.ts # 쿼리 μ€ν λ° νΈμ λ©μλ
β βββ cli/ # CLI μΈν°νμ΄μ€
β βββ commands/ # λͺ
λ Ήμ΄ κ΅¬ν
β β βββ login.ts
β β βββ logout.ts
β β βββ projects.ts
β β βββ query.ts
β β βββ interactive.ts
β βββ utils/ # μ νΈλ¦¬ν°
β β βββ formatters.ts # μΆλ ₯ ν¬λ§·ν
β β βββ session.ts # μΈμ
κ΄λ¦¬
β βββ index.ts # CLI μ§μ
μ
βββ test/ # ν
μ€νΈ
βββ bin/ # μ€ν νμΌ
β βββ whatap-mxql
βββ dist/ # λΉλ μΆλ ₯
π ν μ€νΈ νν©
Core λͺ¨λ (52κ° μ λ ν μ€νΈ)
- β SessionStore: 16/16 ν μ€νΈ ν΅κ³Ό
- β AuthManager: 16/16 ν μ€νΈ ν΅κ³Ό
- β WhatapClient: 13/13 ν μ€νΈ ν΅κ³Ό
- β MxqlExecutor: 7/7 ν μ€νΈ ν΅κ³Ό
CLI
- β login: μ μ λμ
- β logout: μ μ λμ
- β projects: μ μ λμ (12κ° νλ‘μ νΈ μ‘°ν)
- β query: μ μ λμ (μ€μ λ°μ΄ν° μ‘°ν μ±κ³΅)
- β interactive: μ μ λμ
- β μΆλ ₯ νμ: Table, JSON, CSV λͺ¨λ μ μ
μ€μ λ°μ΄ν° μ‘°ν
- β 볡μ‘ν MXQL νμ΄νλΌμΈ 쿼리 μ€ν
- β νλ‘μ νΈ 27506μμ sessionCount λ°μ΄ν° μ‘°ν
- β 167κ° ν μ§κ³ κ²°κ³Ό λ°ν
- β λ°μ΄λ리 λ°μ΄ν° ν¬ν¨ν 볡μ‘ν ꡬ쑰 μ²λ¦¬
μμΈ κ²μ¦ κ²°κ³Όλ λ₯Ό μ°Έμ‘°νμΈμ.
π License
MIT
π Security
Session data is encrypted using AES-256-GCM. Encryption keys are stored locally with restricted permissions (0600).
Never commit .env.test or any files containing credentials to version control.