sensor-tower-mcp-pro 1.2.10

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.
Files changed (47) hide show
  1. package/README.md +136 -0
  2. package/bin/sensortower-mcp.js +2 -0
  3. package/dist/client.d.ts +17 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +100 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +12 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +142 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +88 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/tools/app-analysis.d.ts +580 -0
  16. package/dist/tools/app-analysis.d.ts.map +1 -0
  17. package/dist/tools/app-analysis.js +451 -0
  18. package/dist/tools/app-analysis.js.map +1 -0
  19. package/dist/tools/index.d.ts +10 -0
  20. package/dist/tools/index.d.ts.map +1 -0
  21. package/dist/tools/index.js +19 -0
  22. package/dist/tools/index.js.map +1 -0
  23. package/dist/tools/market-analysis.d.ts +391 -0
  24. package/dist/tools/market-analysis.d.ts.map +1 -0
  25. package/dist/tools/market-analysis.js +298 -0
  26. package/dist/tools/market-analysis.js.map +1 -0
  27. package/dist/tools/search.d.ts +162 -0
  28. package/dist/tools/search.d.ts.map +1 -0
  29. package/dist/tools/search.js +126 -0
  30. package/dist/tools/search.js.map +1 -0
  31. package/dist/tools/store-marketing.d.ts +200 -0
  32. package/dist/tools/store-marketing.d.ts.map +1 -0
  33. package/dist/tools/store-marketing.js +170 -0
  34. package/dist/tools/store-marketing.js.map +1 -0
  35. package/dist/tools/utilities.d.ts +76 -0
  36. package/dist/tools/utilities.d.ts.map +1 -0
  37. package/dist/tools/utilities.js +140 -0
  38. package/dist/tools/utilities.js.map +1 -0
  39. package/dist/tools/your-metrics.d.ts +140 -0
  40. package/dist/tools/your-metrics.d.ts.map +1 -0
  41. package/dist/tools/your-metrics.js +121 -0
  42. package/dist/tools/your-metrics.js.map +1 -0
  43. package/dist/utils.d.ts +7 -0
  44. package/dist/utils.d.ts.map +1 -0
  45. package/dist/utils.js +64 -0
  46. package/dist/utils.js.map +1 -0
  47. package/package.json +54 -0
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ /**
3
+ * Store Marketing tools for Sensor Tower MCP
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerStoreMarketingTools = registerStoreMarketingTools;
7
+ const utils_1 = require("../utils");
8
+ function registerStoreMarketingTools(client) {
9
+ return {
10
+ get_featured_today_stories: {
11
+ description: 'Retrieve featured Today stories from the App Store.',
12
+ inputSchema: {
13
+ type: 'object',
14
+ properties: {
15
+ country: { type: 'string', description: 'ISO country code', default: 'US' },
16
+ start_date: { type: 'string', description: 'Start date (YYYY-MM-DD)' },
17
+ end_date: { type: 'string', description: 'End date (YYYY-MM-DD)' },
18
+ },
19
+ required: [],
20
+ },
21
+ handler: async (args) => {
22
+ const params = { country: args.country || 'US' };
23
+ if (args.start_date)
24
+ params.start_date = (0, utils_1.validateDateFormat)(args.start_date);
25
+ if (args.end_date)
26
+ params.end_date = (0, utils_1.validateDateFormat)(args.end_date);
27
+ return client.makeRequest('/v1/ios/featured/today/stories', params);
28
+ },
29
+ },
30
+ get_featured_apps: {
31
+ description: 'Retrieve featured apps on the App Store Apps & Games pages.',
32
+ inputSchema: {
33
+ type: 'object',
34
+ properties: {
35
+ category: { type: 'string', description: 'Category identifier' },
36
+ country: { type: 'string', description: 'ISO country code', default: 'US' },
37
+ start_date: { type: 'string', description: 'Start date (YYYY-MM-DD)' },
38
+ end_date: { type: 'string', description: 'End date (YYYY-MM-DD)' },
39
+ },
40
+ required: ['category'],
41
+ },
42
+ handler: async (args) => {
43
+ const params = {
44
+ category: args.category,
45
+ country: args.country || 'US',
46
+ };
47
+ if (args.start_date)
48
+ params.start_date = (0, utils_1.validateDateFormat)(args.start_date);
49
+ if (args.end_date)
50
+ params.end_date = (0, utils_1.validateDateFormat)(args.end_date);
51
+ return client.makeRequest('/v1/ios/featured/apps', params);
52
+ },
53
+ },
54
+ get_featured_creatives: {
55
+ description: 'Retrieve featured creatives and their positions over time.',
56
+ inputSchema: {
57
+ type: 'object',
58
+ properties: {
59
+ os: { type: 'string', enum: ['ios', 'android'], description: 'Operating system' },
60
+ app_id: { type: 'string', description: 'App identifier' },
61
+ countries: { type: 'string', description: 'Comma-separated country codes' },
62
+ types: { type: 'string', description: 'Comma-separated creative types' },
63
+ start_date: { type: 'string', description: 'Start date (YYYY-MM-DD)' },
64
+ end_date: { type: 'string', description: 'End date (YYYY-MM-DD)' },
65
+ },
66
+ required: ['os', 'app_id'],
67
+ },
68
+ handler: async (args) => {
69
+ const os = (0, utils_1.validateOsParameter)(args.os, ['ios', 'android']);
70
+ const params = { app_id: args.app_id };
71
+ if (args.countries)
72
+ params.countries = args.countries;
73
+ if (args.types)
74
+ params.types = args.types;
75
+ if (args.start_date)
76
+ params.start_date = (0, utils_1.validateDateFormat)(args.start_date);
77
+ if (args.end_date)
78
+ params.end_date = (0, utils_1.validateDateFormat)(args.end_date);
79
+ return client.makeRequest(`/v1/${os}/featured/creatives`, params);
80
+ },
81
+ },
82
+ get_keywords: {
83
+ description: 'Get current keyword rankings for an app.',
84
+ inputSchema: {
85
+ type: 'object',
86
+ properties: {
87
+ os: { type: 'string', enum: ['ios', 'android'], description: 'Operating system' },
88
+ app_id: { type: 'string', description: 'App identifier' },
89
+ country: { type: 'string', description: 'ISO country code', default: 'US' },
90
+ },
91
+ required: ['os', 'app_id'],
92
+ },
93
+ handler: async (args) => {
94
+ const os = (0, utils_1.validateOsParameter)(args.os, ['ios', 'android']);
95
+ return client.makeRequest(`/v1/${os}/keywords/get_current_keywords`, {
96
+ app_id: args.app_id,
97
+ country: args.country || 'US',
98
+ });
99
+ },
100
+ },
101
+ get_reviews: {
102
+ description: 'Get app reviews and ratings data.',
103
+ inputSchema: {
104
+ type: 'object',
105
+ properties: {
106
+ os: { type: 'string', enum: ['ios', 'android'], description: 'Operating system' },
107
+ app_id: { type: 'string', description: 'App identifier' },
108
+ country: { type: 'string', description: 'ISO country code' },
109
+ start_date: { type: 'string', description: 'Filter reviews from this date' },
110
+ end_date: { type: 'string', description: 'Filter reviews up to this date' },
111
+ rating_filter: { type: 'string', description: 'Filter by rating or sentiment' },
112
+ search_term: { type: 'string', description: 'Filter by review content' },
113
+ username: { type: 'string', description: 'Filter by reviewer username' },
114
+ limit: { type: 'number', description: 'Max reviews (1-200)', default: 50 },
115
+ page: { type: 'number', description: 'Page number', default: 1 },
116
+ },
117
+ required: ['os', 'app_id', 'country'],
118
+ },
119
+ handler: async (args) => {
120
+ const os = (0, utils_1.validateOsParameter)(args.os, ['ios', 'android']);
121
+ const params = {
122
+ app_id: args.app_id,
123
+ country: args.country,
124
+ };
125
+ if (args.start_date)
126
+ params.start_date = (0, utils_1.validateDateFormat)(args.start_date);
127
+ if (args.end_date)
128
+ params.end_date = (0, utils_1.validateDateFormat)(args.end_date);
129
+ if (args.rating_filter)
130
+ params.rating_filter = args.rating_filter;
131
+ if (args.search_term)
132
+ params.search_term = args.search_term;
133
+ if (args.username)
134
+ params.username = args.username;
135
+ if (args.limit)
136
+ params.limit = args.limit;
137
+ if (args.page)
138
+ params.page = args.page;
139
+ return client.makeRequest(`/v1/${os}/review/get_reviews`, params);
140
+ },
141
+ },
142
+ research_keyword: {
143
+ description: 'Retrieve keyword research metadata including related terms and difficulty.',
144
+ inputSchema: {
145
+ type: 'object',
146
+ properties: {
147
+ os: { type: 'string', enum: ['ios', 'android'], description: 'Operating system' },
148
+ term: { type: 'string', description: 'Keyword term to research' },
149
+ country: { type: 'string', description: 'ISO country code' },
150
+ app_id: { type: 'number', description: 'App ID for ranking prediction (iOS only)' },
151
+ page: { type: 'number', description: 'Page number' },
152
+ },
153
+ required: ['os', 'term', 'country'],
154
+ },
155
+ handler: async (args) => {
156
+ const os = (0, utils_1.validateOsParameter)(args.os, ['ios', 'android']);
157
+ const params = {
158
+ term: args.term,
159
+ country: args.country,
160
+ };
161
+ if (args.app_id)
162
+ params.app_id = args.app_id;
163
+ if (args.page)
164
+ params.page = args.page;
165
+ return client.makeRequest(`/v1/${os}/keywords/research_keyword`, params);
166
+ },
167
+ },
168
+ };
169
+ }
170
+ //# sourceMappingURL=store-marketing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-marketing.js","sourceRoot":"","sources":["../../src/tools/store-marketing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Utility tools for Sensor Tower MCP
3
+ */
4
+ export declare function registerUtilityTools(): {
5
+ get_country_codes: {
6
+ description: string;
7
+ inputSchema: {
8
+ type: string;
9
+ properties: {};
10
+ required: never[];
11
+ };
12
+ handler: () => Promise<{
13
+ countries: {
14
+ code: string;
15
+ name: string;
16
+ }[];
17
+ total_count: number;
18
+ }>;
19
+ };
20
+ get_category_ids: {
21
+ description: string;
22
+ inputSchema: {
23
+ type: string;
24
+ properties: {
25
+ os: {
26
+ type: string;
27
+ enum: string[];
28
+ description: string;
29
+ };
30
+ };
31
+ required: string[];
32
+ };
33
+ handler: (args: any) => Promise<{
34
+ categories: {
35
+ id: string;
36
+ name: string;
37
+ }[];
38
+ os: any;
39
+ total_count: number;
40
+ }>;
41
+ };
42
+ get_chart_types: {
43
+ description: string;
44
+ inputSchema: {
45
+ type: string;
46
+ properties: {};
47
+ required: never[];
48
+ };
49
+ handler: () => Promise<{
50
+ chart_types: {
51
+ topfreeapplications: string;
52
+ toppaidapplications: string;
53
+ topgrossingapplications: string;
54
+ topfreeipadapplications: string;
55
+ toppaidipadadapplications: string;
56
+ topgrossingipadadapplications: string;
57
+ };
58
+ }>;
59
+ };
60
+ health_check: {
61
+ description: string;
62
+ inputSchema: {
63
+ type: string;
64
+ properties: {};
65
+ required: never[];
66
+ };
67
+ handler: () => Promise<{
68
+ status: string;
69
+ service: string;
70
+ transport: string;
71
+ api_base_url: string;
72
+ tools_available: number;
73
+ }>;
74
+ };
75
+ };
76
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/tools/utilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8FR,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4C9B"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * Utility tools for Sensor Tower MCP
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerUtilityTools = registerUtilityTools;
7
+ function registerUtilityTools() {
8
+ // Country codes data
9
+ const countryCodes = [
10
+ { code: 'US', name: 'United States' },
11
+ { code: 'GB', name: 'United Kingdom' },
12
+ { code: 'CA', name: 'Canada' },
13
+ { code: 'AU', name: 'Australia' },
14
+ { code: 'DE', name: 'Germany' },
15
+ { code: 'FR', name: 'France' },
16
+ { code: 'JP', name: 'Japan' },
17
+ { code: 'KR', name: 'South Korea' },
18
+ { code: 'CN', name: 'China' },
19
+ { code: 'BR', name: 'Brazil' },
20
+ { code: 'IN', name: 'India' },
21
+ { code: 'MX', name: 'Mexico' },
22
+ { code: 'ES', name: 'Spain' },
23
+ { code: 'IT', name: 'Italy' },
24
+ { code: 'RU', name: 'Russia' },
25
+ { code: 'WW', name: 'Worldwide' },
26
+ ];
27
+ // iOS categories
28
+ const iosCategories = [
29
+ { id: '6000', name: 'Business' },
30
+ { id: '6001', name: 'Weather' },
31
+ { id: '6002', name: 'Utilities' },
32
+ { id: '6003', name: 'Travel' },
33
+ { id: '6004', name: 'Sports' },
34
+ { id: '6005', name: 'Social Networking' },
35
+ { id: '6006', name: 'Reference' },
36
+ { id: '6007', name: 'Productivity' },
37
+ { id: '6008', name: 'Photo & Video' },
38
+ { id: '6009', name: 'News' },
39
+ { id: '6010', name: 'Navigation' },
40
+ { id: '6011', name: 'Music' },
41
+ { id: '6012', name: 'Lifestyle' },
42
+ { id: '6013', name: 'Health & Fitness' },
43
+ { id: '6014', name: 'Games' },
44
+ { id: '6015', name: 'Finance' },
45
+ { id: '6016', name: 'Entertainment' },
46
+ { id: '6017', name: 'Education' },
47
+ { id: '6018', name: 'Books' },
48
+ { id: '6020', name: 'Medical' },
49
+ { id: '6021', name: 'Magazines & Newspapers' },
50
+ { id: '6022', name: 'Catalogs' },
51
+ { id: '6023', name: 'Food & Drink' },
52
+ { id: '6024', name: 'Shopping' },
53
+ ];
54
+ // Android categories
55
+ const androidCategories = [
56
+ { id: 'GAME', name: 'Games' },
57
+ { id: 'BUSINESS', name: 'Business' },
58
+ { id: 'COMMUNICATION', name: 'Communication' },
59
+ { id: 'EDUCATION', name: 'Education' },
60
+ { id: 'ENTERTAINMENT', name: 'Entertainment' },
61
+ { id: 'FINANCE', name: 'Finance' },
62
+ { id: 'HEALTH_AND_FITNESS', name: 'Health & Fitness' },
63
+ { id: 'LIFESTYLE', name: 'Lifestyle' },
64
+ { id: 'MUSIC_AND_AUDIO', name: 'Music & Audio' },
65
+ { id: 'NEWS_AND_MAGAZINES', name: 'News & Magazines' },
66
+ { id: 'PHOTOGRAPHY', name: 'Photography' },
67
+ { id: 'PRODUCTIVITY', name: 'Productivity' },
68
+ { id: 'SHOPPING', name: 'Shopping' },
69
+ { id: 'SOCIAL', name: 'Social' },
70
+ { id: 'SPORTS', name: 'Sports' },
71
+ { id: 'TOOLS', name: 'Tools' },
72
+ { id: 'TRAVEL_AND_LOCAL', name: 'Travel & Local' },
73
+ { id: 'VIDEO_PLAYERS', name: 'Video Players & Editors' },
74
+ { id: 'WEATHER', name: 'Weather' },
75
+ ];
76
+ return {
77
+ get_country_codes: {
78
+ description: 'Get list of available country codes for Sensor Tower API.',
79
+ inputSchema: {
80
+ type: 'object',
81
+ properties: {},
82
+ required: [],
83
+ },
84
+ handler: async () => {
85
+ return { countries: countryCodes, total_count: countryCodes.length };
86
+ },
87
+ },
88
+ get_category_ids: {
89
+ description: 'Get list of category IDs for iOS or Android.',
90
+ inputSchema: {
91
+ type: 'object',
92
+ properties: {
93
+ os: { type: 'string', enum: ['ios', 'android'], description: 'Operating system' },
94
+ },
95
+ required: ['os'],
96
+ },
97
+ handler: async (args) => {
98
+ const categories = args.os === 'ios' ? iosCategories : androidCategories;
99
+ return { categories, os: args.os, total_count: categories.length };
100
+ },
101
+ },
102
+ get_chart_types: {
103
+ description: 'List available ranking chart identifiers used by Sensor Tower.',
104
+ inputSchema: {
105
+ type: 'object',
106
+ properties: {},
107
+ required: [],
108
+ },
109
+ handler: async () => {
110
+ const chartTypes = {
111
+ topfreeapplications: 'Top Free Apps',
112
+ toppaidapplications: 'Top Paid Apps',
113
+ topgrossingapplications: 'Top Grossing Apps',
114
+ topfreeipadapplications: 'Top Free iPad Apps (iOS only)',
115
+ toppaidipadadapplications: 'Top Paid iPad Apps (iOS only)',
116
+ topgrossingipadadapplications: 'Top Grossing iPad Apps (iOS only)',
117
+ };
118
+ return { chart_types: chartTypes };
119
+ },
120
+ },
121
+ health_check: {
122
+ description: 'Lightweight status endpoint for monitoring and orchestration.',
123
+ inputSchema: {
124
+ type: 'object',
125
+ properties: {},
126
+ required: [],
127
+ },
128
+ handler: async () => {
129
+ return {
130
+ status: 'healthy',
131
+ service: 'Sensor Tower MCP Server (npm)',
132
+ transport: 'stdio',
133
+ api_base_url: 'https://api.sensortower.com',
134
+ tools_available: 43,
135
+ };
136
+ },
137
+ },
138
+ };
139
+ }
140
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/tools/utilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Your Metrics tools for Sensor Tower MCP (Connected Apps)
3
+ */
4
+ import { SensorTowerClient } from '../client';
5
+ export declare function registerYourMetricsTools(client: SensorTowerClient): {
6
+ analytics_metrics: {
7
+ description: string;
8
+ inputSchema: {
9
+ type: string;
10
+ properties: {
11
+ app_ids: {
12
+ type: string;
13
+ description: string;
14
+ };
15
+ countries: {
16
+ type: string;
17
+ description: string;
18
+ };
19
+ start_date: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ end_date: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ };
28
+ required: string[];
29
+ };
30
+ handler: (args: any) => Promise<unknown>;
31
+ };
32
+ sources_metrics: {
33
+ description: string;
34
+ inputSchema: {
35
+ type: string;
36
+ properties: {
37
+ app_ids: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ countries: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ start_date: {
46
+ type: string;
47
+ description: string;
48
+ };
49
+ end_date: {
50
+ type: string;
51
+ description: string;
52
+ };
53
+ limit: {
54
+ type: string;
55
+ description: string;
56
+ };
57
+ offset: {
58
+ type: string;
59
+ description: string;
60
+ };
61
+ };
62
+ required: string[];
63
+ };
64
+ handler: (args: any) => Promise<unknown>;
65
+ };
66
+ sales_reports: {
67
+ description: string;
68
+ inputSchema: {
69
+ type: string;
70
+ properties: {
71
+ os: {
72
+ type: string;
73
+ enum: string[];
74
+ description: string;
75
+ };
76
+ app_ids: {
77
+ type: string;
78
+ description: string;
79
+ };
80
+ countries: {
81
+ type: string;
82
+ description: string;
83
+ };
84
+ date_granularity: {
85
+ type: string;
86
+ enum: string[];
87
+ };
88
+ start_date: {
89
+ type: string;
90
+ description: string;
91
+ };
92
+ end_date: {
93
+ type: string;
94
+ description: string;
95
+ };
96
+ };
97
+ required: string[];
98
+ };
99
+ handler: (args: any) => Promise<unknown>;
100
+ };
101
+ unified_sales_reports: {
102
+ description: string;
103
+ inputSchema: {
104
+ type: string;
105
+ properties: {
106
+ start_date: {
107
+ type: string;
108
+ description: string;
109
+ };
110
+ end_date: {
111
+ type: string;
112
+ description: string;
113
+ };
114
+ date_granularity: {
115
+ type: string;
116
+ enum: string[];
117
+ };
118
+ unified_app_ids: {
119
+ type: string;
120
+ description: string;
121
+ };
122
+ itunes_app_ids: {
123
+ type: string;
124
+ description: string;
125
+ };
126
+ android_app_ids: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ countries: {
131
+ type: string;
132
+ description: string;
133
+ };
134
+ };
135
+ required: string[];
136
+ };
137
+ handler: (args: any) => Promise<unknown>;
138
+ };
139
+ };
140
+ //# sourceMappingURL=your-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"your-metrics.d.ts","sourceRoot":"","sources":["../../src/tools/your-metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;wBActC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwBH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BH,GAAG;;EAiB9B"}