{"_id":"@andrewlwn77/app-store-mcp","_rev":"3-eec33fdbc7cf2f3521c0203ef565b876","name":"@andrewlwn77/app-store-mcp","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@andrewlwn77/app-store-mcp","version":"1.0.0","keywords":["mcp","model-context-protocol","app-store","google-play","apple-app-store","api","rapidapi"],"author":"","license":"MIT","_id":"@andrewlwn77/app-store-mcp@1.0.0","maintainers":[{"name":"andrewlwn77","email":"andrewlwn@gmail.com"}],"homepage":"https://github.com/andrewlwn77/app-store-mcp#readme","bugs":{"url":"https://github.com/andrewlwn77/app-store-mcp/issues"},"bin":{"app-store-mcp":"dist/index.js"},"dist":{"shasum":"292dfd44956a4cb35315bdbc799c03ce1803539f","tarball":"https://registry.npmjs.org/@andrewlwn77/app-store-mcp/-/app-store-mcp-1.0.0.tgz","fileCount":11,"integrity":"sha512-H56ODkGZNPT4IdRn4rlq6wcJqBULbzCgdi+Md5J3t8URqQCS/wQhCKUVFplHFLnLTZEZEB/85s8SdEntk05TiA==","signatures":[{"sig":"MEYCIQCfQcuro71IvcDI/5Vwt4NQlOBDghcyfI2PJqoNAb/oJAIhAMdoHk+2OXXxJ8gQBLbPePliZLbCWpeksy0Zz4dz12ok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28557},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"6d3e8802a165f939b581b02af8e55b646a495b4a","scripts":{"dev":"tsx watch src/index.ts","test":"jest","build":"tsc","start":"node dist/index.js","postbuild":"chmod +x dist/index.js","test:unit":"jest tests/unit","test:watch":"jest --watch","prepublishOnly":"npm run build","test:integration":"jest tests/integration"},"_npmUser":{"name":"andrewlwn77","actor":{"name":"andrewlwn77","type":"user","email":"andrewlwn@gmail.com"},"email":"andrewlwn@gmail.com"},"repository":{"url":"git+https://github.com/andrewlwn77/app-store-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for App Store API integration - Access Apple App Store and Google Play Store data","directories":{},"_nodeVersion":"22.13.1","dependencies":{"axios":"^1.7.8","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","ts-jest":"^29.2.5","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/app-store-mcp_1.0.0_1750824616612_0.39717982945402475","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@andrewlwn77/app-store-mcp","version":"1.0.1","keywords":["mcp","model-context-protocol","app-store","google-play","apple-app-store","api","rapidapi"],"author":"","license":"MIT","_id":"@andrewlwn77/app-store-mcp@1.0.1","maintainers":[{"name":"andrewlwn77","email":"andrewlwn@gmail.com"}],"homepage":"https://github.com/andrewlwn77/app-store-mcp#readme","bugs":{"url":"https://github.com/andrewlwn77/app-store-mcp/issues"},"bin":{"app-store-mcp":"dist/index.js"},"dist":{"shasum":"032cace249eea3c1d1b2b7e1347c33340ae13178","tarball":"https://registry.npmjs.org/@andrewlwn77/app-store-mcp/-/app-store-mcp-1.0.1.tgz","fileCount":11,"integrity":"sha512-JPIB1/IakGx+/OY/tty5TIZhfcF54Yglq8g3jx7zAO98MlmL+8nmKJgawJ9Gdx3g2LodwKrLexE7Z+FjxeLeJg==","signatures":[{"sig":"MEYCIQChXbUWVlwsDuc2iLTa3flI5diVpCpxmbUIUrOhY7BWCgIhAMIG7+qdFuhoxEALCiIvrUC60m/rmGQKkX0T+f703JTk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29288},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"823014d6764dfb871330c8bb20e89e2a1645aab8","scripts":{"dev":"tsx watch src/index.ts","test":"jest","build":"tsc","start":"node dist/index.js","postbuild":"chmod +x dist/index.js","test:unit":"jest tests/unit","test:watch":"jest --watch","prepublishOnly":"npm run build","test:integration":"jest tests/integration"},"_npmUser":{"name":"andrewlwn77","email":"andrewlwn@gmail.com"},"repository":{"url":"git+https://github.com/andrewlwn77/app-store-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for App Store API integration - Access Apple App Store and Google Play Store data","directories":{},"_nodeVersion":"22.13.1","dependencies":{"axios":"^1.7.8","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","ts-jest":"^29.2.5","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/app-store-mcp_1.0.1_1753143114239_0.22470358812563118","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@andrewlwn77/app-store-mcp","version":"1.1.0","description":"MCP server for App Store API integration - Access Apple App Store and Google Play Store data","main":"dist/index.js","type":"module","bin":{"app-store-mcp":"dist/index.js"},"scripts":{"build":"tsc","postbuild":"chmod +x dist/index.js","start":"node dist/index.js","dev":"tsx watch src/index.ts","test":"jest","test:unit":"jest tests/unit","test:integration":"jest tests/integration","test:watch":"jest --watch","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","app-store","google-play","apple-app-store","api","rapidapi"],"author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/andrewlwn77/app-store-mcp.git"},"bugs":{"url":"https://github.com/andrewlwn77/app-store-mcp/issues"},"homepage":"https://github.com/andrewlwn77/app-store-mcp#readme","engines":{"node":">=16.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","axios":"^1.7.8","dotenv":"^16.4.7"},"devDependencies":{"@types/node":"^22.10.2","tsx":"^4.19.2","typescript":"^5.7.2","jest":"^29.7.0","@types/jest":"^29.5.14","ts-jest":"^29.2.5","@jest/globals":"^29.7.0"},"_id":"@andrewlwn77/app-store-mcp@1.1.0","gitHead":"2b5e4b6b2284459f2ffa69ef1ba1b60ccf747e7d","types":"./dist/index.d.ts","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-RJuNSCXDbliyJpa9NTh/OXB2V2pG0PXpF3zzanID7HkJSFhfX3SwIKAkhxjKxVO+tzcn/dp+rcUVMusLksUomw==","shasum":"e8dfec460c6c792bb6019a236f8febc0d4d771c2","tarball":"https://registry.npmjs.org/@andrewlwn77/app-store-mcp/-/app-store-mcp-1.1.0.tgz","fileCount":15,"unpackedSize":53233,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD52i8oWEJCrxooAJGRhZvyt/bFZ7mVY8mHmVU/gzb7bgIhAOEdI2qzx4PmmsP6sS1NpXDH2NhQoaD6d7OYR5pnapyo"}]},"_npmUser":{"name":"andrewlwn77","email":"andrewlwn@gmail.com"},"directories":{},"maintainers":[{"name":"andrewlwn77","email":"andrewlwn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/app-store-mcp_1.1.0_1756015282342_0.6069115273222241"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-25T04:10:16.534Z","modified":"2025-08-24T06:01:22.749Z","1.0.0":"2025-06-25T04:10:16.805Z","1.0.1":"2025-07-22T00:11:54.454Z","1.1.0":"2025-08-24T06:01:22.542Z"},"bugs":{"url":"https://github.com/andrewlwn77/app-store-mcp/issues"},"license":"MIT","homepage":"https://github.com/andrewlwn77/app-store-mcp#readme","keywords":["mcp","model-context-protocol","app-store","google-play","apple-app-store","api","rapidapi"],"repository":{"type":"git","url":"git+https://github.com/andrewlwn77/app-store-mcp.git"},"description":"MCP server for App Store API integration - Access Apple App Store and Google Play Store data","maintainers":[{"name":"andrewlwn77","email":"andrewlwn@gmail.com"}],"readme":"# App Store MCP Server\n\n[![npm version](https://badge.fury.io/js/%40andrewlwn77%2Fapp-store-mcp.svg)](https://www.npmjs.com/package/@andrewlwn77/app-store-mcp)\n\n⚠️ **IMPORTANT SECURITY NOTICE**: Never commit API keys to version control. This package requires an API key to be set via environment variable.\n\nAn MCP (Model Context Protocol) server that provides access to app store data from both Apple App Store and Google Play Store through the App Stores API.\n\n## Features\n\n- **Autocomplete**: Get app name suggestions based on search terms\n- **Search**: Search for apps across app stores\n- **Details**: Get detailed information about specific apps\n- **Reviews**: Fetch user reviews for apps\n- **🚀 Intelligent Caching**: In-memory LRU cache reduces API calls and improves performance\n- **📄 Pagination**: Configurable page sizes to reduce token consumption by 60%+\n- **⚡ Performance**: Cache hit responses return instantly\n\n## Installation\n\nThis MCP server is designed to be used with MCP-compatible applications like Claude Desktop, VS Code with Copilot, or other MCP clients.\n\n### MCP Client Configuration\n\nAdd this server to your MCP client configuration:\n\n#### Claude Desktop\nAdd to your `claude_desktop_config.json`:\n```json\n{\n  \"mcpServers\": {\n    \"app-store\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@andrewlwn77/app-store-mcp\"],\n      \"env\": {\n        \"APP_STORE_API_KEY\": \"your-api-key-here\",\n        \"CACHE_ENABLED\": \"true\",\n        \"CACHE_TTL_SECONDS\": \"300\",\n        \"CACHE_MAX_ENTRIES\": \"100\", \n        \"RESULTS_PER_PAGE\": \"10\"\n      }\n    }\n  }\n}\n```\n\n#### VS Code with GitHub Copilot\nAdd to your MCP configuration (User Settings JSON or `.vscode/mcp.json`):\n```json\n{\n  \"servers\": {\n    \"app-store\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\", \n      \"args\": [\"-y\", \"@andrewlwn77/app-store-mcp\"],\n      \"env\": {\n        \"APP_STORE_API_KEY\": \"your-api-key-here\",\n        \"CACHE_ENABLED\": \"true\",\n        \"CACHE_TTL_SECONDS\": \"300\",\n        \"CACHE_MAX_ENTRIES\": \"100\",\n        \"RESULTS_PER_PAGE\": \"10\"\n      }\n    }\n  }\n}\n```\n\n### Direct Installation (for development)\n```bash\nnpm install -g @andrewlwn77/app-store-mcp\n```\n\n### Local Development\n```bash\ngit clone <repository-url>\ncd app-store-mcp\nnpm install\nnpm run build\n```\n\n## Configuration\n\n**Required**: You must set the `APP_STORE_API_KEY` environment variable before running the server.\n\n1. Get an API key from [RapidAPI App Stores](https://rapidapi.com/danielamitay/api/app-stores)\n2. Set the environment variable:\n   ```bash\n   # Option 1: Export in your shell\n   export APP_STORE_API_KEY=\"your-api-key-here\"\n   \n   # Option 2: Create a .env file (for local development)\n   echo \"APP_STORE_API_KEY=your-api-key-here\" > .env\n   ```\n\n⚠️ **Security**: Never commit your `.env` file or API key to version control!\n\n## Configuration\n\nThe server supports several environment variables for performance tuning:\n\n| Variable | Description | Default | Example |\n|----------|-------------|---------|---------|\n| `APP_STORE_API_KEY` | **Required** - Your RapidAPI key | - | `abc123def456` |\n| `CACHE_ENABLED` | Enable/disable response caching | `true` | `false` |\n| `CACHE_TTL_SECONDS` | Cache entry time-to-live | `300` | `600` |\n| `CACHE_MAX_ENTRIES` | Maximum cached entries (LRU eviction) | `100` | `50` |\n| `RESULTS_PER_PAGE` | Default pagination page size | `10` | `5` |\n\n### Configuration Example\n```bash\n# High-performance configuration\nexport CACHE_TTL_SECONDS=600\nexport RESULTS_PER_PAGE=5\nexport CACHE_MAX_ENTRIES=200\n\n# Disable caching for development/debugging\nexport CACHE_ENABLED=false\n```\n\n## Usage\n\n### Testing the Server\n\n```bash\n# For local development and testing\nnpm start\n\n# For development with auto-reload\nnpm run dev\n\n# Test the server directly (requires MCP client)\nnpx -y @andrewlwn77/app-store-mcp\n```\n\n**Note**: This server is designed to be used through MCP clients. Direct execution will wait for MCP protocol messages via stdin.\n\n### Available Tools\n\n#### 1. `app_store_autocomplete`\nGet app name suggestions based on a search term.\n\n**Parameters:**\n- `store` (required): \"apple\" or \"google\"\n- `term` (required): Search term for autocomplete\n- `language` (optional): Language code (default: \"en\")\n- `page` (optional): Page number, 1-based (default: 1)\n- `pageSize` (optional): Results per page (default: from `RESULTS_PER_PAGE`)\n\n#### 2. `app_store_search`\nSearch for apps in the app store.\n\n**Parameters:**\n- `store` (required): \"apple\" or \"google\"\n- `term` (required): Search term\n- `language` (optional): Language code (default: \"en\")\n- `page` (optional): Page number, 1-based (default: 1)\n- `pageSize` (optional): Results per page (default: from `RESULTS_PER_PAGE`)\n\n#### 3. `app_store_details`\nGet detailed information about a specific app.\n\n**Parameters:**\n- `store` (required): \"apple\" or \"google\"\n- `id` (required): App ID (bundle ID for iOS, package name for Android)\n- `language` (optional): Language code (default: \"en\")\n\n#### 4. `app_store_reviews`\nGet reviews for a specific app.\n\n**Parameters:**\n- `store` (required): \"apple\" or \"google\"\n- `id` (required): App ID (bundle ID for iOS, package name for Android)\n- `language` (optional): Language code (default: \"en\")\n- `page` (optional): Page number, 1-based (default: 1)\n- `pageSize` (optional): Results per page (default: from `RESULTS_PER_PAGE`)\n\n### Example Usage\n\nOnce configured with an MCP client, you can use natural language to interact with the tools:\n\n- \"Search for meditation apps on Google Play Store\"\n- \"Get details for Spotify on the Apple App Store\" \n- \"Show me recent reviews for Snapchat on Android\"\n- \"Find app suggestions for 'photo editing' on iOS\"\n\nThe server will automatically handle the API calls and return formatted results.\n\n## Configuration\n\nThe server can be configured using environment variables:\n\n- `APP_STORE_API_KEY`: Your RapidAPI key for the App Stores API (required)\n\n## Development\n\n### Project Structure\n\n```\napp-store-mcp/\n├── src/\n│   ├── index.ts      # Main MCP server implementation\n│   └── types.ts      # TypeScript type definitions\n├── package.json\n├── tsconfig.json\n├── .env.example\n└── README.md\n```\n\n### Type Safety\n\nThis server is written in TypeScript and provides full type safety for:\n- API parameters\n- API responses\n- Error handling\n- Store validation (only accepts \"apple\" or \"google\")\n\n## License\n\nMIT","readmeFilename":"README.md"}