pabal-web-mcp 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,142 +2,58 @@
2
2
 
3
3
  MCP (Model Context Protocol) server for bidirectional conversion between ASO (App Store Optimization) and web SEO data.
4
4
 
5
- This library enables seamless reuse of ASO data for web SEO purposes, allowing you to convert ASO metadata directly into web SEO content and vice versa.
5
+ This library enables seamless reuse of ASO data for web SEO purposes, allowing you to convert ASO metadata directly into web SEO content and vice versa. **Build your own synced website** based on ASO data from App Store Connect and Google Play Console, keeping your app store listings and web presence perfectly synchronized.
6
+
7
+ > 💡 **Example**: Check out [labs.quartz.best](https://labs.quartz.best/) to see a live website built with this library, where app store data is automatically synced to create a beautiful, SEO-optimized web presence.
6
8
 
7
9
  [![한국어 docs](https://img.shields.io/badge/docs-Korean-green)](./i18n/README.ko.md)
8
10
 
9
- ## 🛠️ MCP Client Installation
11
+ ## 🛠️ Installation
10
12
 
11
13
  ### Requirements
12
14
 
13
15
  - Node.js >= 18
14
- - MCP client: Cursor, Claude Code, VS Code, Windsurf, etc.
15
-
16
- > [!TIP]
17
- > If you repeatedly do ASO/store tasks, add a client rule like "always use pabal-web-mcp" so the MCP server auto-invokes without typing it every time.
18
-
19
- <details>
20
- <summary><b>Install in Cursor</b></summary>
21
-
22
- Add to `~/.cursor/mcp.json` (global) or project `.cursor/mcp.json`:
23
-
24
- ```json
25
- {
26
- "mcpServers": {
27
- "pabal-web-mcp": {
28
- "command": "npx",
29
- "args": ["-y", "pabal-web-mcp"]
30
- }
31
- }
32
- }
33
- ```
34
-
35
- Or if installed globally:
36
-
37
- ```json
38
- {
39
- "mcpServers": {
40
- "pabal-web-mcp": {
41
- "command": "pabal-web-mcp"
42
- }
43
- }
44
- }
45
- ```
46
-
47
- </details>
48
-
49
- <details>
50
- <summary><b>Install in VS Code</b></summary>
51
-
52
- Example `settings.json` MCP section:
53
-
54
- ```json
55
- "mcp": {
56
- "servers": {
57
- "pabal-web-mcp": {
58
- "type": "stdio",
59
- "command": "npx",
60
- "args": ["-y", "pabal-web-mcp"]
61
- }
62
- }
63
- }
64
- ```
65
-
66
- Or if installed globally:
67
-
68
- ```json
69
- "mcp": {
70
- "servers": {
71
- "pabal-web-mcp": {
72
- "type": "stdio",
73
- "command": "pabal-web-mcp"
74
- }
75
- }
76
- }
77
- ```
78
-
79
- </details>
80
-
81
- <details>
82
- <summary><b>Install in Claude Code</b></summary>
16
+ - [pabal-mcp](https://github.com/quartz-labs-dev/pabal-mcp) must be installed and configured
83
17
 
84
- > [!TIP]
85
- > See the [official Claude Code MCP documentation](https://code.claude.com/docs/en/mcp#setting-up-enterprise-mcp-configuration) for detailed configuration options.
18
+ ### Install as Library
86
19
 
87
- Add to Claude Code MCP settings (JSON format):
20
+ Install this library in your website project:
88
21
 
89
- ```json
90
- {
91
- "mcpServers": {
92
- "pabal-web-mcp": {
93
- "command": "npx",
94
- "args": ["-y", "pabal-web-mcp"]
95
- }
96
- }
97
- }
22
+ ```bash
23
+ npm install pabal-web-mcp
24
+ # or
25
+ yarn add pabal-web-mcp
26
+ # or
27
+ pnpm add pabal-web-mcp
98
28
  ```
99
29
 
100
- Or if installed globally (`npm install -g pabal-web-mcp`):
30
+ ## 🔐 Configure Credentials
101
31
 
102
- ```json
103
- {
104
- "mcpServers": {
105
- "pabal-web-mcp": {
106
- "command": "pabal-web-mcp"
107
- }
108
- }
109
- }
110
- ```
32
+ pabal-web-mcp uses the configuration file from `pabal-mcp`. For detailed credential setup instructions (App Store Connect API keys, Google Play service accounts, etc.), please refer to the [pabal-mcp README](https://github.com/quartz-labs-dev/pabal-mcp?tab=readme-ov-file#-configure-credentials).
111
33
 
112
- </details>
34
+ ### ⚠️ Important: Set dataDir Path
113
35
 
114
- <details>
115
- <summary><b>Install in Windsurf</b></summary>
36
+ **You must set `dataDir` in `~/.config/pabal-mcp/config.json` to the absolute path where your `pabal-web` project is stored on your local machine.**
116
37
 
117
38
  ```json
118
39
  {
119
- "mcpServers": {
120
- "pabal-web-mcp": {
121
- "command": "npx",
122
- "args": ["-y", "pabal-web-mcp"]
123
- }
40
+ "dataDir": "/ABSOLUTE/PATH/TO/pabal-web",
41
+ "appStore": {
42
+ "issuerId": "xxxx",
43
+ "keyId": "xxxx",
44
+ "privateKeyPath": "./app-store-key.p8"
45
+ },
46
+ "googlePlay": {
47
+ "serviceAccountKeyPath": "./google-play-service-account.json"
124
48
  }
125
49
  }
126
50
  ```
127
51
 
128
- Or if installed globally:
52
+ Examples:
129
53
 
130
- ```json
131
- {
132
- "mcpServers": {
133
- "pabal-web-mcp": {
134
- "command": "pabal-web-mcp"
135
- }
136
- }
137
- }
138
- ```
139
-
140
- </details>
54
+ - macOS: `"/Users/username/projects/pabal-web"`
55
+ - Linux: `"/home/username/projects/pabal-web"`
56
+ - Windows: `"C:\\Users\\username\\projects\\pabal-web"`
141
57
 
142
58
  ## MCP Server
143
59
 
@@ -145,87 +61,34 @@ This package includes an MCP server for managing ASO data through Claude or othe
145
61
 
146
62
  ### Available Tools
147
63
 
148
- | Tool | Description |
149
- | ---------------- | -------------------------------------------------- |
150
- | `aso-to-public` | Convert ASO data to public config format |
151
- | `public-to-aso` | Convert public config to ASO data format |
152
- | `improve-public` | Improve product locale content with AI suggestions |
153
- | `init-project` | Initialize a new product project structure |
154
-
155
- ## Usage
156
-
157
- ### Importing Types
158
-
159
- ```typescript
160
- import type {
161
- // ASO Types
162
- AsoData,
163
- AppStoreAsoData,
164
- GooglePlayAsoData,
165
-
166
- // Product Types
167
- ProductConfig,
168
- ProductLocale,
169
- LandingPage,
170
- LandingHero,
171
- LandingScreenshots,
172
- LandingFeatures,
173
- LandingReviews,
174
- LandingCta,
175
- } from "pabal-web-mcp";
176
- ```
177
-
178
- ### Importing Utilities
179
-
180
- ```typescript
181
- import {
182
- // ASO Converter
183
- loadAsoFromConfig,
184
-
185
- // Locale Constants
186
- DEFAULT_LOCALE,
187
- UNIFIED_LOCALES,
188
-
189
- // Locale Converters
190
- unifiedToAppStore,
191
- unifiedToGooglePlay,
192
- appStoreToUnified,
193
- googlePlayToUnified,
194
- } from "pabal-web-mcp";
195
- ```
196
-
197
- ### Example: Loading ASO Data
198
-
199
- ```typescript
200
- import { loadAsoFromConfig } from "pabal-web-mcp";
201
-
202
- const asoData = loadAsoFromConfig("my-app");
203
- console.log(asoData.appStore?.name);
204
- console.log(asoData.googlePlay?.title);
205
- ```
206
-
207
- ## Types Reference
208
-
209
- ### ASO Types
210
-
211
- - `AsoData` - Combined ASO data for both stores
212
- - `AppStoreAsoData` - App Store specific ASO data
213
- - `GooglePlayAsoData` - Google Play specific ASO data
214
- - `AppStoreMultilingualAsoData` - Multilingual App Store data
215
- - `GooglePlayMultilingualAsoData` - Multilingual Google Play data
216
-
217
- ### Product Types
218
-
219
- - `ProductConfig` - Product configuration
220
- - `ProductLocale` - Localized product content
221
- - `LandingPage` - Landing page structure
222
- - `AppPageData` - Complete app page data
223
-
224
- ### Locale Types
225
-
226
- - `UnifiedLocale` - Unified locale code (e.g., "en-US", "ko-KR")
227
-
228
- ## Supported Locales
64
+ | Tool | Description |
65
+ | ------------------ | -------------------------------------------------------- |
66
+ | `aso-to-public` | Convert ASO data to public config format |
67
+ | `public-to-aso` | Convert public config to ASO data format |
68
+ | `keyword-research` | Plan/persist ASO keyword research (.aso/keywordResearch) |
69
+ | `improve-public` | Improve product locale content with AI suggestions |
70
+ | `init-project` | Initialize a new product project structure |
71
+ | `create-blog-html` | Generate static HTML blog posts with BLOG_META headers |
72
+
73
+ ### Using external keyword MCP ([appreply-co/mcp-appstore](https://github.com/appreply-co/mcp-appstore))
74
+
75
+ 1. Install deps in the existing clone: `cd external-tools/mcp-appstore && npm install`
76
+ 2. Run server: `node server.js` (same cwd; `npm start` also works). If your MCP client allows, let the LLM start this process before keyword research and stop it after; otherwise start/stop it manually.
77
+ 3. Register in your MCP client (example):
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "mcp-appstore": {
82
+ "command": "node",
83
+ "args": ["/ABSOLUTE/PATH/TO/pabal-web-mcp/external-tools/mcp-appstore/server.js"],
84
+ "cwd": "/ABSOLUTE/PATH/TO/pabal-web-mcp/external-tools/mcp-appstore"
85
+ }
86
+ }
87
+ }
88
+ ```
89
+ 4. Use it with `keyword-research` (saves to `.aso/keywordResearch/...`) before `improve-public` to supply keyword data.
90
+
91
+ ### Supported Locales
229
92
 
230
93
  Supports all languages supported by each store.
231
94