@superagnt/seo-data 2.0.5 → 2.0.7

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
@@ -10,17 +10,11 @@ openclaw plugins install @superagnt/seo-data
10
10
 
11
11
  This package is the official **OpenClaw** plugin for **SEO** social and public data via [superagnt](https://superagnt.com). Pair it with the [documentation](https://superagnt.com/docs) and your superagnt API key.
12
12
 
13
- ## Want the live MCP surface instead?
13
+ ## What this plugin contains
14
14
 
15
- This plugin ships a fixed, baked-in toolset that only needs your
16
- `SUPERAGNT_API_KEY`. For the live workspace tool surface — the full value
17
- layer (data sources plus workspace Postgres, schedules, canvases,
18
- enrichment), growing server-side with no plugin update — install the
19
- primary superagnt plugin instead:
15
+ A fixed, baked-in toolset for the **SEO** endpoints listed below — nothing else. It authenticates with your `SUPERAGNT_API_KEY` and calls the superagnt REST API directly. It does not add tools for other platforms and does not change after install; new capabilities only arrive through an explicit plugin update.
20
16
 
21
- ```bash
22
- openclaw plugins install @superagnt/superagnt
23
- ```
17
+ Prefer MCP? The `@superagnt/superagnt` plugin connects the workspace MCP server instead, whose tool surface is managed by the user in the superagnt app.
24
18
 
25
19
  ## Overview
26
20
 
@@ -48,7 +42,7 @@ SEO and search intelligence through the superagnt unified API.
48
42
 
49
43
  ## Authentication
50
44
 
51
- Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in your environment, or complete browser login when the gateway prompts you. Create and manage keys in the [superagnt dashboard](https://app.superagnt.com/dashboard).
45
+ Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in your environment, or complete browser login when the gateway prompts you. Create and manage keys in the [superagnt app](https://app.superagnt.com/dashboard).
52
46
 
53
47
  ## API coverage
54
48
 
@@ -56,19 +50,19 @@ Use a single **superagnt API key** (Bearer token). Set `SUPERAGNT_API_KEY` in yo
56
50
  | --- | --- |
57
51
  | **Platform** | `seo` |
58
52
  | **REST base** | `https://api.superagnt.com/v1/data/seo` |
59
- | **OpenAPI operations** | 16 |
60
- | **OpenClaw tools** | 16 |
53
+ | **OpenAPI operations** | 22 |
54
+ | **OpenClaw tools** | 22 |
61
55
 
62
56
  ## Documentation
63
57
 
64
58
  - [Documentation](https://superagnt.com/docs) — getting started and concepts
65
59
  - [API reference (SEO)](https://superagnt.com/docs/apis/seo) — endpoints and schemas
66
- - [Dashboard](https://app.superagnt.com/dashboard) — API keys and usage
60
+ - [superagnt app](https://app.superagnt.com/dashboard) — API keys and usage
67
61
 
68
62
  ## Related
69
63
 
70
- - **Skill (curl-oriented):** `clawhub install seo-data` on [ClawHub](https://clawhub.ai/superagnt/skills/seo-data)
71
- - **All platforms plugin:** `@superagnt/openclaw-agnt-data` if you need LinkedIn, YouTube, TikTok, X, Instagram, Reddit, and Facebook in one package.
64
+ - **Skill (curl-oriented):** `clawhub install superagnt/seo-data` on [ClawHub](https://clawhub.ai/superagnt/skills/seo-data)
65
+ - **All platforms plugin:** `@superagnt/social-data` if you need LinkedIn, YouTube, TikTok, X, Instagram, Reddit, and Facebook in one package.
72
66
 
73
67
  ## License
74
68
 
package/index.js CHANGED
@@ -118,6 +118,10 @@ export default function register(api) {
118
118
  "depth": {
119
119
  "type": "integer",
120
120
  "description": "Number of results to return, in steps of 10. Default 10 (cheapest). Each additional 10 results bills as one more results page."
121
+ },
122
+ "load_async_ai_overview": {
123
+ "type": "boolean",
124
+ "description": "Set to true to load AI Overviews that Google renders asynchronously, so the `ai_overview` item comes back with its text and cited sources (`markdown`, `items`, `references`). Left off, an async overview still appears, flagged `asynchronous_ai_overview: true`, but with those fields null: you can tell an overview exists, not what it cites. In the default markdown view, the overview row lists its cited sources as `cited_domains`. Adds up to about 0.36 cents per call (roughly double the default-depth price), charged only when an overview actually had to be loaded; the response's `meta.costCents` shows what the call billed. Default false."
121
125
  }
122
126
  },
123
127
  "required": [
@@ -599,6 +603,222 @@ export default function register(api) {
599
603
  },
600
604
  })
601
605
 
606
+ api.registerTool({
607
+ name: 'superagnt_seo_chatgpt_app_answer',
608
+ description: "ChatGPT app answer",
609
+ parameters: {
610
+ "type": "object",
611
+ "properties": {
612
+ "keyword": {
613
+ "type": "string",
614
+ "description": "The question to ask ChatGPT, as a user would type it."
615
+ },
616
+ "location_code": {
617
+ "type": "integer",
618
+ "description": "Geo target as a location code. Common values: 2840 United States (default), 2826 United Kingdom, 2124 Canada, 2036 Australia, 2276 Germany."
619
+ },
620
+ "language_code": {
621
+ "type": "string",
622
+ "description": "Two-letter language code, e.g. 'en' (default)."
623
+ },
624
+ "force_web_search": {
625
+ "type": "boolean",
626
+ "description": "Push ChatGPT to search the web and cite current sources. Citations are still not guaranteed."
627
+ }
628
+ },
629
+ "required": [
630
+ "keyword"
631
+ ]
632
+ },
633
+ execute: async (_toolCallId, input) => {
634
+ const key = ensureApiKey()
635
+ const params = parseToolInput(input)
636
+ return callSuperagnt(key, 'POST', '/chatgpt-app-answer', undefined, params)
637
+ },
638
+ })
639
+
640
+ api.registerTool({
641
+ name: 'superagnt_seo_gemini_app_answer',
642
+ description: "Gemini app answer",
643
+ parameters: {
644
+ "type": "object",
645
+ "properties": {
646
+ "keyword": {
647
+ "type": "string",
648
+ "description": "The question to ask Gemini, as a user would type it."
649
+ },
650
+ "location_code": {
651
+ "type": "integer",
652
+ "description": "Geo target as a location code. Common values: 2840 United States (default), 2826 United Kingdom, 2124 Canada, 2036 Australia, 2276 Germany."
653
+ },
654
+ "language_code": {
655
+ "type": "string",
656
+ "description": "Two-letter language code, e.g. 'en' (default)."
657
+ }
658
+ },
659
+ "required": [
660
+ "keyword"
661
+ ]
662
+ },
663
+ execute: async (_toolCallId, input) => {
664
+ const key = ensureApiKey()
665
+ const params = parseToolInput(input)
666
+ return callSuperagnt(key, 'POST', '/gemini-app-answer', undefined, params)
667
+ },
668
+ })
669
+
670
+ api.registerTool({
671
+ name: 'superagnt_seo_chatgpt_api_answer',
672
+ description: "OpenAI API answer with citations",
673
+ parameters: {
674
+ "type": "object",
675
+ "properties": {
676
+ "user_prompt": {
677
+ "type": "string",
678
+ "description": "The question to ask the model."
679
+ },
680
+ "model_name": {
681
+ "type": "string",
682
+ "description": "The model to ask: gpt-4o-mini, gpt-4o, gpt-5-mini (default gpt-4o-mini)."
683
+ },
684
+ "max_output_tokens": {
685
+ "type": "integer",
686
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it. gpt-5-mini needs at least 1024."
687
+ },
688
+ "web_search": {
689
+ "type": "boolean",
690
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
691
+ },
692
+ "force_web_search": {
693
+ "type": "boolean",
694
+ "description": "Push the model to search the web before answering. Needs `web_search`; citations are still not guaranteed."
695
+ },
696
+ "web_search_country_iso_code": {
697
+ "type": "string",
698
+ "description": "Two-letter country code the web search runs from, e.g. 'US'."
699
+ }
700
+ },
701
+ "required": [
702
+ "user_prompt"
703
+ ]
704
+ },
705
+ execute: async (_toolCallId, input) => {
706
+ const key = ensureApiKey()
707
+ const params = parseToolInput(input)
708
+ return callSuperagnt(key, 'POST', '/chatgpt-api-answer', undefined, params)
709
+ },
710
+ })
711
+
712
+ api.registerTool({
713
+ name: 'superagnt_seo_claude_api_answer',
714
+ description: "Claude API answer with citations",
715
+ parameters: {
716
+ "type": "object",
717
+ "properties": {
718
+ "user_prompt": {
719
+ "type": "string",
720
+ "description": "The question to ask the model."
721
+ },
722
+ "model_name": {
723
+ "type": "string",
724
+ "description": "The model to ask: claude-haiku-4-5, claude-sonnet-4-5 (default claude-haiku-4-5)."
725
+ },
726
+ "max_output_tokens": {
727
+ "type": "integer",
728
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
729
+ },
730
+ "web_search": {
731
+ "type": "boolean",
732
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
733
+ },
734
+ "force_web_search": {
735
+ "type": "boolean",
736
+ "description": "Push the model to search the web before answering. Needs `web_search`; citations are still not guaranteed."
737
+ },
738
+ "web_search_country_iso_code": {
739
+ "type": "string",
740
+ "description": "Two-letter country code the web search runs from, e.g. 'US'."
741
+ }
742
+ },
743
+ "required": [
744
+ "user_prompt"
745
+ ]
746
+ },
747
+ execute: async (_toolCallId, input) => {
748
+ const key = ensureApiKey()
749
+ const params = parseToolInput(input)
750
+ return callSuperagnt(key, 'POST', '/claude-api-answer', undefined, params)
751
+ },
752
+ })
753
+
754
+ api.registerTool({
755
+ name: 'superagnt_seo_gemini_api_answer',
756
+ description: "Gemini API answer with citations",
757
+ parameters: {
758
+ "type": "object",
759
+ "properties": {
760
+ "user_prompt": {
761
+ "type": "string",
762
+ "description": "The question to ask the model."
763
+ },
764
+ "model_name": {
765
+ "type": "string",
766
+ "description": "The model to ask: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-2.0-flash (default gemini-2.5-flash-lite)."
767
+ },
768
+ "max_output_tokens": {
769
+ "type": "integer",
770
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
771
+ },
772
+ "web_search": {
773
+ "type": "boolean",
774
+ "description": "Let the model search the web and cite sources (default true). Citations are still not guaranteed."
775
+ }
776
+ },
777
+ "required": [
778
+ "user_prompt"
779
+ ]
780
+ },
781
+ execute: async (_toolCallId, input) => {
782
+ const key = ensureApiKey()
783
+ const params = parseToolInput(input)
784
+ return callSuperagnt(key, 'POST', '/gemini-api-answer', undefined, params)
785
+ },
786
+ })
787
+
788
+ api.registerTool({
789
+ name: 'superagnt_seo_perplexity_api_answer',
790
+ description: "Perplexity API answer with citations",
791
+ parameters: {
792
+ "type": "object",
793
+ "properties": {
794
+ "user_prompt": {
795
+ "type": "string",
796
+ "description": "The question to ask the model."
797
+ },
798
+ "model_name": {
799
+ "type": "string",
800
+ "description": "The model to ask: sonar, sonar-pro (default sonar)."
801
+ },
802
+ "max_output_tokens": {
803
+ "type": "integer",
804
+ "description": "Cap on the answer's length in tokens, 16-2048 (default 1024). Web search can push a model slightly past it."
805
+ },
806
+ "web_search_country_iso_code": {
807
+ "type": "string",
808
+ "description": "Two-letter country code the web search runs from, e.g. 'US'. Sonar models always search the web."
809
+ }
810
+ },
811
+ "required": [
812
+ "user_prompt"
813
+ ]
814
+ },
815
+ execute: async (_toolCallId, input) => {
816
+ const key = ensureApiKey()
817
+ const params = parseToolInput(input)
818
+ return callSuperagnt(key, 'POST', '/perplexity-api-answer', undefined, params)
819
+ },
820
+ })
821
+
602
822
  api.registerTool({
603
823
  name: 'superagnt_seo_tech_stack',
604
824
  description: "Technologies a website runs",
@@ -2,7 +2,7 @@
2
2
  "id": "seo-data",
3
3
  "name": "SEO Data",
4
4
  "description": "SEO and search intelligence through the superagnt unified API.",
5
- "version": "2.0.5",
5
+ "version": "2.0.7",
6
6
  "contracts": {
7
7
  "tools": [
8
8
  "superagnt_seo_google_search",
@@ -19,6 +19,12 @@
19
19
  "superagnt_seo_backlink_gap",
20
20
  "superagnt_seo_page_audit",
21
21
  "superagnt_seo_ai_visibility",
22
+ "superagnt_seo_chatgpt_app_answer",
23
+ "superagnt_seo_gemini_app_answer",
24
+ "superagnt_seo_chatgpt_api_answer",
25
+ "superagnt_seo_claude_api_answer",
26
+ "superagnt_seo_gemini_api_answer",
27
+ "superagnt_seo_perplexity_api_answer",
22
28
  "superagnt_seo_tech_stack",
23
29
  "superagnt_seo_tech_search"
24
30
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superagnt/seo-data",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "type": "module",
5
5
  "description": "SEO and search intelligence through the superagnt unified API.",
6
6
  "main": "index.js",