@heyseo/mcp-server 0.2.0 → 0.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.
Files changed (82) hide show
  1. package/README.md +234 -60
  2. package/dist/index.js +872 -293
  3. package/dist/index.js.map +1 -1
  4. package/dist/prompts/index.d.ts.map +1 -1
  5. package/dist/prompts/index.js +93 -0
  6. package/dist/prompts/index.js.map +1 -1
  7. package/dist/resources/index.d.ts +1 -1
  8. package/dist/resources/index.d.ts.map +1 -1
  9. package/dist/resources/index.js +135 -4
  10. package/dist/resources/index.js.map +1 -1
  11. package/dist/tools/chat.d.ts +44 -0
  12. package/dist/tools/chat.d.ts.map +1 -0
  13. package/dist/tools/chat.js +37 -0
  14. package/dist/tools/chat.js.map +1 -0
  15. package/dist/tools/comparison.d.ts +1 -1
  16. package/dist/tools/conversations.d.ts +95 -0
  17. package/dist/tools/conversations.d.ts.map +1 -0
  18. package/dist/tools/conversations.js +110 -0
  19. package/dist/tools/conversations.js.map +1 -0
  20. package/dist/tools/dataforseo.d.ts +49 -0
  21. package/dist/tools/dataforseo.d.ts.map +1 -0
  22. package/dist/tools/dataforseo.js +37 -0
  23. package/dist/tools/dataforseo.js.map +1 -0
  24. package/dist/tools/index.d.ts +1126 -4
  25. package/dist/tools/index.d.ts.map +1 -1
  26. package/dist/tools/index.js +146 -6
  27. package/dist/tools/index.js.map +1 -1
  28. package/dist/tools/indexing.d.ts +228 -0
  29. package/dist/tools/indexing.d.ts.map +1 -0
  30. package/dist/tools/indexing.js +262 -0
  31. package/dist/tools/indexing.js.map +1 -0
  32. package/dist/tools/insights.d.ts +61 -0
  33. package/dist/tools/insights.d.ts.map +1 -0
  34. package/dist/tools/insights.js +85 -0
  35. package/dist/tools/insights.js.map +1 -0
  36. package/dist/tools/knowledge.d.ts +98 -0
  37. package/dist/tools/knowledge.d.ts.map +1 -0
  38. package/dist/tools/knowledge.js +69 -0
  39. package/dist/tools/knowledge.js.map +1 -0
  40. package/dist/tools/memory.d.ts +602 -0
  41. package/dist/tools/memory.d.ts.map +1 -0
  42. package/dist/tools/memory.js +395 -0
  43. package/dist/tools/memory.js.map +1 -0
  44. package/dist/tools/notifications.d.ts +75 -0
  45. package/dist/tools/notifications.d.ts.map +1 -0
  46. package/dist/tools/notifications.js +62 -0
  47. package/dist/tools/notifications.js.map +1 -0
  48. package/dist/tools/onpage.d.ts +71 -0
  49. package/dist/tools/onpage.d.ts.map +1 -0
  50. package/dist/tools/onpage.js +75 -0
  51. package/dist/tools/onpage.js.map +1 -0
  52. package/dist/tools/pagespeed.d.ts +39 -0
  53. package/dist/tools/pagespeed.d.ts.map +1 -1
  54. package/dist/tools/pagespeed.js +29 -0
  55. package/dist/tools/pagespeed.js.map +1 -1
  56. package/dist/tools/reports.d.ts +248 -0
  57. package/dist/tools/reports.d.ts.map +1 -0
  58. package/dist/tools/reports.js +234 -0
  59. package/dist/tools/reports.js.map +1 -0
  60. package/dist/tools/serp.d.ts +138 -0
  61. package/dist/tools/serp.d.ts.map +1 -0
  62. package/dist/tools/serp.js +105 -0
  63. package/dist/tools/serp.js.map +1 -0
  64. package/dist/tools/site.d.ts +47 -0
  65. package/dist/tools/site.d.ts.map +1 -1
  66. package/dist/tools/site.js +88 -1
  67. package/dist/tools/site.js.map +1 -1
  68. package/dist/tools/sitemaps.d.ts +72 -0
  69. package/dist/tools/sitemaps.d.ts.map +1 -0
  70. package/dist/tools/sitemaps.js +100 -0
  71. package/dist/tools/sitemaps.js.map +1 -0
  72. package/dist/tools/tasks.d.ts +70 -16
  73. package/dist/tools/tasks.d.ts.map +1 -1
  74. package/dist/tools/tasks.js +46 -0
  75. package/dist/tools/tasks.js.map +1 -1
  76. package/dist/types.d.ts +138 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/utils/api-client.d.ts +103 -1
  79. package/dist/utils/api-client.d.ts.map +1 -1
  80. package/dist/utils/api-client.js +400 -1
  81. package/dist/utils/api-client.js.map +1 -1
  82. package/package.json +2 -1
package/README.md CHANGED
@@ -3,7 +3,9 @@
3
3
 
4
4
  # HeySeo MCP Server
5
5
 
6
- Connect your LLM to your SEO data. Query Google Search Console, Google Analytics 4, and PageSpeed Insights directly from Claude, ChatGPT, Cursor, or any MCP-compatible client.
6
+ Connect your LLM to your SEO data. Query Google Search Console, Google Analytics 4, PageSpeed Insights, SERP data, indexing health, AI insights, and more - directly from Claude, ChatGPT, Cursor, or any MCP-compatible client.
7
+
8
+ **72 tools** | **10 resources** | **12 prompts**
7
9
  </div>
8
10
 
9
11
  ## Quick Start
@@ -157,6 +159,9 @@ Restart Claude Desktop, Cursor, or your MCP client to load the new server.
157
159
  | `heyseo_list_sites` | List all available sites and their connection status (GSC/GA4) |
158
160
  | `heyseo_select_site` | Select a specific site for all subsequent operations |
159
161
  | `heyseo_get_current_site` | Get information about the currently selected site |
162
+ | `heyseo_update_site` | Update site settings (name, URL) |
163
+ | `heyseo_delete_site` | Delete a site from your account |
164
+ | `heyseo_sync_analytics` | Trigger an analytics data sync for a site |
160
165
 
161
166
  ### Google Search Console
162
167
 
@@ -181,6 +186,7 @@ Restart Claude Desktop, Cursor, or your MCP client to load the new server.
181
186
  |------|-------------|
182
187
  | `heyseo_pagespeed` | Run PageSpeed Insights analysis with Core Web Vitals |
183
188
  | `heyseo_pagespeed_bulk` | Analyze multiple pages at once |
189
+ | `heyseo_pagespeed_history` | Get PageSpeed analysis history for a site |
184
190
 
185
191
  ### Comparison & Opportunities
186
192
 
@@ -199,9 +205,117 @@ Restart Claude Desktop, Cursor, or your MCP client to load the new server.
199
205
  | `heyseo_get_task` | Get detailed information about a specific task |
200
206
  | `heyseo_update_task` | Update task title, description, status, priority, or category |
201
207
  | `heyseo_delete_task` | Delete a task from the Kanban board |
208
+ | `heyseo_move_task` | Move or reorder a task on the Kanban board |
202
209
  | `heyseo_bulk_create_tasks` | Create multiple tasks at once (up to 10) |
203
210
  | `heyseo_bulk_update_tasks` | Update multiple tasks at once (up to 10) |
204
211
 
212
+ ### Reports
213
+
214
+ | Tool | Description |
215
+ |------|-------------|
216
+ | `heyseo_list_reports` | List AI-generated SEO reports (weekly/monthly) |
217
+ | `heyseo_get_report` | Get full report details including metrics and AI analysis |
218
+ | `heyseo_generate_report` | Generate a new SEO report on demand |
219
+ | `heyseo_delete_report` | Delete a report |
220
+ | `heyseo_report_settings` | Get report schedule settings for a site |
221
+ | `heyseo_update_report_settings` | Update report schedule (day, time, frequency) |
222
+ | `heyseo_send_test_report` | Send a test report email to verify setup |
223
+
224
+ ### Indexing Health
225
+
226
+ | Tool | Description |
227
+ |------|-------------|
228
+ | `heyseo_indexing_status` | Get indexing health summary (indexed/not-indexed counts, health score) |
229
+ | `heyseo_indexing_pages` | List pages with their indexing verdict and coverage state |
230
+ | `heyseo_submit_for_indexing` | Submit a page to Google's Indexing API for faster indexing |
231
+ | `heyseo_indexing_check` | Trigger an indexing check for all monitored pages |
232
+ | `heyseo_indexing_history` | Get indexing check history over time |
233
+ | `heyseo_indexing_settings` | Get indexing monitoring settings |
234
+ | `heyseo_update_indexing_settings` | Update indexing monitoring settings |
235
+ | `heyseo_indexing_submissions` | Get indexing submission history |
236
+ | `heyseo_remove_indexing_page` | Remove a page from indexing monitoring |
237
+
238
+ ### SEO Memory
239
+
240
+ | Tool | Description |
241
+ |------|-------------|
242
+ | `heyseo_get_memory` | Get full SEO memory context (strategy, goals, learnings, health trend) |
243
+ | `heyseo_update_strategy` | Update SEO strategy summary |
244
+ | `heyseo_record_action` | Record an SEO action with hypothesis and metrics to track |
245
+ | `heyseo_add_learning` | Add a key fact or success pattern to site memory |
246
+ | `heyseo_delete_goal` | Delete a goal |
247
+ | `heyseo_memory_snapshots` | Get performance snapshots over time |
248
+ | `heyseo_generate_snapshot` | Generate a new performance snapshot |
249
+ | `heyseo_queue_action` | Queue an action for future implementation |
250
+ | `heyseo_update_queued_action` | Update a queued action's status or priority |
251
+
252
+ ### AI Insights
253
+
254
+ | Tool | Description |
255
+ |------|-------------|
256
+ | `heyseo_get_insights` | Get AI-generated insights (anomalies, opportunities, alerts, trends) |
257
+ | `heyseo_generate_insights` | Generate new AI insights on demand |
258
+
259
+ ### AI Knowledge
260
+
261
+ | Tool | Description |
262
+ |------|-------------|
263
+ | `heyseo_get_knowledge` | Get the AI knowledge base for a site |
264
+ | `heyseo_update_knowledge` | Update AI knowledge (business context, competitors, goals) |
265
+
266
+ ### AI Chat
267
+
268
+ | Tool | Description |
269
+ |------|-------------|
270
+ | `heyseo_chat` | Send a message to the AI assistant about your SEO data |
271
+
272
+ ### Conversations
273
+
274
+ | Tool | Description |
275
+ |------|-------------|
276
+ | `heyseo_list_conversations` | List AI chat conversations |
277
+ | `heyseo_get_conversation` | Get a conversation with all messages |
278
+ | `heyseo_create_conversation` | Create a new conversation |
279
+ | `heyseo_delete_conversation` | Delete a conversation |
280
+
281
+ ### On-Page Audit
282
+
283
+ | Tool | Description |
284
+ |------|-------------|
285
+ | `heyseo_onpage_audit` | Run a full on-page SEO audit on any URL |
286
+ | `heyseo_onpage_history` | Get on-page audit history for a site |
287
+
288
+ ### SERP Analysis
289
+
290
+ | Tool | Description |
291
+ |------|-------------|
292
+ | `heyseo_serp_search` | Search Google SERP for a keyword with organic results, featured snippets, and PAA |
293
+ | `heyseo_serp_history` | Get SERP search history |
294
+ | `heyseo_serp_batch` | Batch SERP preview for multiple keywords at once |
295
+
296
+ ### Sitemaps
297
+
298
+ | Tool | Description |
299
+ |------|-------------|
300
+ | `heyseo_list_sitemaps` | List sitemaps registered in Google Search Console |
301
+ | `heyseo_submit_sitemap` | Submit a sitemap to Google Search Console |
302
+ | `heyseo_delete_sitemap` | Delete a sitemap from Google Search Console |
303
+
304
+ ### DataForSEO
305
+
306
+ | Tool | Description |
307
+ |------|-------------|
308
+ | `heyseo_keyword_volume` | Get keyword search volume data for one or more keywords |
309
+
310
+ ### Notifications
311
+
312
+ | Tool | Description |
313
+ |------|-------------|
314
+ | `heyseo_notification_settings` | Get notification settings |
315
+ | `heyseo_update_notification_settings` | Update notification preferences |
316
+
317
+ ---
318
+
205
319
  ## Resources
206
320
 
207
321
  Access your SEO data as readable resources:
@@ -210,9 +324,16 @@ Access your SEO data as readable resources:
210
324
  |-----|-------------|
211
325
  | `heyseo://sites` | List all connected sites |
212
326
  | `heyseo://sites/{id}` | Site details |
213
- | `heyseo://sites/{id}/overview` | Current metrics overview |
327
+ | `heyseo://sites/{id}/overview` | Current metrics overview (last 28 days) |
214
328
  | `heyseo://sites/{id}/keywords` | Top 50 keywords |
215
329
  | `heyseo://sites/{id}/pages` | Top 50 pages |
330
+ | `heyseo://sites/{id}/reports` | Recent AI-generated SEO reports |
331
+ | `heyseo://sites/{id}/indexing` | Indexing health summary |
332
+ | `heyseo://sites/{id}/insights` | AI-generated insights |
333
+ | `heyseo://sites/{id}/memory` | SEO memory context (strategy, goals, learnings) |
334
+ | `heyseo://sites/{id}/sitemaps` | GSC sitemaps |
335
+
336
+ ---
216
337
 
217
338
  ## Prompts
218
339
 
@@ -228,7 +349,10 @@ Pre-built prompts for common SEO tasks:
228
349
  | `traffic_analysis` | Traffic patterns and sources |
229
350
  | `quick_wins` | Low-effort, high-impact opportunities |
230
351
  | `ranking_changes` | Recent ranking changes analysis |
231
- | `task_review` | Review and prioritize SEO tasks for a site |
352
+ | `task_review` | Review and prioritize SEO tasks |
353
+ | `indexing_audit` | Indexing health audit with fix recommendations |
354
+ | `strategy_review` | Review and update SEO strategy based on memory |
355
+ | `insights_briefing` | Summarize recent insights and suggest actions |
232
356
 
233
357
  ---
234
358
 
@@ -243,80 +367,130 @@ Before performing any SEO operations, you must select a site:
243
367
 
244
368
  **Select a site:**
245
369
  > "Select the site with ID: abc123def456"
246
- >
247
- > Or ask Claude to list sites and select one for you
248
-
249
- **Check current site:**
250
- > "What site am I currently working with?"
251
-
252
- ### SEO Operations
253
370
 
254
- Once a site is selected, you can perform SEO operations:
371
+ ### Performance Analysis
255
372
 
256
- **Get top keywords:**
257
373
  > "What are my top 10 keywords this month?"
258
374
 
259
- **Run an SEO audit:**
260
- > "Run an SEO audit on my site"
261
-
262
- **Compare performance:**
263
375
  > "How did we do this week vs last week?"
264
376
 
265
- **Analyze page speed:**
266
377
  > "Check the page speed for our homepage"
267
378
 
268
- **Find opportunities:**
379
+ > "How has my ranking for 'best seo tools' changed over the last 30 days?"
380
+
381
+ ### Audits & Opportunities
382
+
383
+ > "Run an SEO audit on my site"
384
+
269
385
  > "Find quick win SEO opportunities"
270
386
 
271
- **Track keyword ranking history:**
272
- > "How has my ranking for 'best seo tools' changed over the last 30 days?"
387
+ > "Run an on-page audit on https://example.com/blog/post"
388
+
389
+ > "Search Google for 'best project management tools' and show me the SERP"
390
+
391
+ ### Indexing Health
392
+
393
+ > "What's my indexing health status?"
394
+
395
+ > "Show me pages that aren't indexed"
396
+
397
+ > "Submit my /new-landing-page for indexing"
398
+
399
+ > "Run an indexing check on all monitored pages"
400
+
401
+ > "Show me the indexing submission history"
402
+
403
+ ### Reports & Insights
404
+
405
+ > "Show me my latest SEO reports"
406
+
407
+ > "Generate a new weekly report"
408
+
409
+ > "What AI insights do you have for my site?"
410
+
411
+ > "Generate fresh insights for my site"
412
+
413
+ ### Strategy & Memory
414
+
415
+ > "What's our current SEO strategy?"
416
+
417
+ > "Update the strategy summary to focus on technical SEO improvements"
418
+
419
+ > "Create a goal to increase organic clicks by 20% by Q3"
420
+
421
+ > "Record that we optimized all meta descriptions today"
422
+
423
+ > "Add a learning: long-form guides rank better for informational queries"
424
+
425
+ > "Take a performance snapshot"
426
+
427
+ > "Queue an action to rewrite our FAQ page"
428
+
429
+ ### AI Chat & Knowledge
430
+
431
+ > "Chat with the AI about my site's SEO performance"
432
+
433
+ > "Show me the AI knowledge base for this site"
434
+
435
+ > "Update the knowledge base with our business context"
436
+
437
+ ### Task Management
273
438
 
274
- **Review and prioritize tasks:**
275
439
  > "Review my SEO tasks and help me prioritize them"
276
440
 
277
- **Create tasks from audit findings:**
278
441
  > "Create tasks for the top 5 issues you found in the audit"
279
442
 
280
- **Bulk update task status:**
281
443
  > "Mark all the technical tasks as done"
282
444
 
445
+ > "Move the title tag task to in-progress"
446
+
447
+ ### Keyword Research
448
+
449
+ > "Get search volume for 'seo tools', 'seo software', 'seo platform'"
450
+
451
+ ### Sitemaps
452
+
453
+ > "List my sitemaps from Google Search Console"
454
+
455
+ > "Submit a new sitemap at /sitemap.xml"
456
+
283
457
  ---
284
458
 
285
- ## Site Selection Workflow
286
-
287
- The HeySeo MCP server uses explicit site selection to prevent data isolation issues:
288
-
289
- ### Typical Workflow
290
-
291
- 1. **Initialize**: User starts a conversation with Claude
292
- 2. **List Sites**: User asks to see available sites
293
- ```
294
- heyseo_list_sites
295
- Returns all available sites with IDs and connection status
296
- ```
297
- 3. **Select Site**: User chooses which site to work with
298
- ```
299
- heyseo_select_site { siteId: "your-site-id" }
300
- Confirms selection and shows site details
301
- ```
302
- 4. **Verify Selection**: (Optional) User confirms the current site
303
- ```
304
- heyseo_get_current_site
305
- Returns details of the selected site
306
- ```
307
- 5. **Perform Operations**: All subsequent SEO operations use the selected site
308
- ```
309
- heyseo_query_gsc { siteId: <auto-filled>, ... }
310
- heyseo_top_keywords { siteId: <auto-filled>, ... }
311
- etc.
312
- ```
313
-
314
- ### Benefits
315
-
316
- - **Data Isolation**: Prevents accidentally querying wrong site's data
317
- - **Explicit Selection**: User clearly knows which site they're working with
318
- - **Session Persistence**: Selection persists across multiple operations
319
- - **Safety**: Perfect for users managing multiple sites
459
+ ## API Key Scopes
460
+
461
+ When creating an API key, you can restrict access to specific features:
462
+
463
+ | Scope | Description |
464
+ |-------|-------------|
465
+ | `sites:read` | Read site information |
466
+ | `sites:write` | Update or delete sites |
467
+ | `gsc:read` | Read Google Search Console data |
468
+ | `ga4:read` | Read Google Analytics 4 data |
469
+ | `pagespeed:read` | Run PageSpeed analyses and view history |
470
+ | `tasks:read` | Read tasks |
471
+ | `tasks:write` | Create, update, delete, move tasks |
472
+ | `reports:read` | Read AI-generated reports and settings |
473
+ | `reports:write` | Generate, delete reports and update settings |
474
+ | `indexing:read` | Read indexing status, pages, history, settings |
475
+ | `indexing:write` | Submit for indexing, run checks, update settings, remove pages |
476
+ | `memory:read` | Read SEO memory, snapshots |
477
+ | `memory:write` | Update strategy, goals, actions, learnings, snapshots |
478
+ | `insights:read` | Read AI-generated insights |
479
+ | `insights:write` | Generate new insights |
480
+ | `knowledge:read` | Read AI knowledge base |
481
+ | `knowledge:write` | Update AI knowledge |
482
+ | `onpage:read` | Run on-page audits and view history |
483
+ | `serp:read` | Search Google SERP and view history |
484
+ | `sitemaps:read` | Read GSC sitemaps |
485
+ | `sitemaps:write` | Submit or delete GSC sitemaps |
486
+ | `chat:write` | Send messages to AI assistant |
487
+ | `conversations:read` | Read conversations |
488
+ | `conversations:write` | Create or delete conversations |
489
+ | `notifications:read` | Read notification settings |
490
+ | `notifications:write` | Update notification settings |
491
+ | `dataforseo:read` | Access keyword volume data |
492
+
493
+ Use `all` scope for full access.
320
494
 
321
495
  ---
322
496
 
@@ -325,7 +499,7 @@ The HeySeo MCP server uses explicit site selection to prevent data isolation iss
325
499
  | Variable | Required | Default | Description |
326
500
  |----------|----------|---------|-------------|
327
501
  | `HEYSEO_API_KEY` | Yes | - | Your HeySeo API key |
328
- | `HEYSEO_API_URL` | No | `https://www.heyseo.app` | Custom API URL |
502
+ | `HEYSEO_API_URL` | No | `https://my.heyseo.app` | Custom API URL |
329
503
 
330
504
  ## Rate Limits
331
505
 
@@ -341,4 +515,4 @@ MIT
341
515
  ## Support
342
516
 
343
517
  - Website: [heyseo.app](https://heyseo.app)
344
- - Email: support@heyseo.app
518
+ - Email: hello@heyseo.app