keywordgraph-mcp-server 1.6.1

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 (228) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +629 -0
  3. package/bin/infranodus-mcp-server.js +8 -0
  4. package/bin/keywordgraph-mcp-server.js +8 -0
  5. package/bin/mcp-server.js +56 -0
  6. package/dist/api/client.d.ts +3 -0
  7. package/dist/api/client.d.ts.map +1 -0
  8. package/dist/api/client.js +30 -0
  9. package/dist/api/client.js.map +1 -0
  10. package/dist/api/config-store.d.ts +4 -0
  11. package/dist/api/config-store.d.ts.map +1 -0
  12. package/dist/api/config-store.js +12 -0
  13. package/dist/api/config-store.js.map +1 -0
  14. package/dist/auth/oauth-provider.d.ts +56 -0
  15. package/dist/auth/oauth-provider.d.ts.map +1 -0
  16. package/dist/auth/oauth-provider.js +295 -0
  17. package/dist/auth/oauth-provider.js.map +1 -0
  18. package/dist/auth/types.d.ts +93 -0
  19. package/dist/auth/types.d.ts.map +1 -0
  20. package/dist/auth/types.js +5 -0
  21. package/dist/auth/types.js.map +1 -0
  22. package/dist/config/brand.d.ts +58 -0
  23. package/dist/config/brand.d.ts.map +1 -0
  24. package/dist/config/brand.js +97 -0
  25. package/dist/config/brand.js.map +1 -0
  26. package/dist/config/index.d.ts +26 -0
  27. package/dist/config/index.d.ts.map +1 -0
  28. package/dist/config/index.js +20 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/http-server.d.ts +6 -0
  31. package/dist/http-server.d.ts.map +1 -0
  32. package/dist/http-server.js +907 -0
  33. package/dist/http-server.js.map +1 -0
  34. package/dist/index.d.ts +29 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +136 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/instructions.d.ts +11 -0
  39. package/dist/instructions.d.ts.map +1 -0
  40. package/dist/instructions.js +38 -0
  41. package/dist/instructions.js.map +1 -0
  42. package/dist/prompts/index.d.ts +24 -0
  43. package/dist/prompts/index.d.ts.map +1 -0
  44. package/dist/prompts/index.js +394 -0
  45. package/dist/prompts/index.js.map +1 -0
  46. package/dist/resources/about.d.ts +17 -0
  47. package/dist/resources/about.d.ts.map +1 -0
  48. package/dist/resources/about.js +64 -0
  49. package/dist/resources/about.js.map +1 -0
  50. package/dist/resources/llms-txt.d.ts +33 -0
  51. package/dist/resources/llms-txt.d.ts.map +1 -0
  52. package/dist/resources/llms-txt.js +65 -0
  53. package/dist/resources/llms-txt.js.map +1 -0
  54. package/dist/schemas/index.d.ts +1178 -0
  55. package/dist/schemas/index.d.ts.map +1 -0
  56. package/dist/schemas/index.js +1121 -0
  57. package/dist/schemas/index.js.map +1 -0
  58. package/dist/tools/addMemory.d.ts +36 -0
  59. package/dist/tools/addMemory.d.ts.map +1 -0
  60. package/dist/tools/addMemory.js +82 -0
  61. package/dist/tools/addMemory.js.map +1 -0
  62. package/dist/tools/analyzeExistingGraph.d.ts +37 -0
  63. package/dist/tools/analyzeExistingGraph.d.ts.map +1 -0
  64. package/dist/tools/analyzeExistingGraph.js +85 -0
  65. package/dist/tools/analyzeExistingGraph.js.map +1 -0
  66. package/dist/tools/analyzeLlmResults.d.ts +37 -0
  67. package/dist/tools/analyzeLlmResults.d.ts.map +1 -0
  68. package/dist/tools/analyzeLlmResults.js +165 -0
  69. package/dist/tools/analyzeLlmResults.js.map +1 -0
  70. package/dist/tools/analyzeText.d.ts +36 -0
  71. package/dist/tools/analyzeText.d.ts.map +1 -0
  72. package/dist/tools/analyzeText.js +97 -0
  73. package/dist/tools/analyzeText.js.map +1 -0
  74. package/dist/tools/createKnowledgeGraph.d.ts +36 -0
  75. package/dist/tools/createKnowledgeGraph.d.ts.map +1 -0
  76. package/dist/tools/createKnowledgeGraph.js +105 -0
  77. package/dist/tools/createKnowledgeGraph.js.map +1 -0
  78. package/dist/tools/developConceptualBridges.d.ts +34 -0
  79. package/dist/tools/developConceptualBridges.d.ts.map +1 -0
  80. package/dist/tools/developConceptualBridges.js +107 -0
  81. package/dist/tools/developConceptualBridges.js.map +1 -0
  82. package/dist/tools/developLatentConcepts copy.d.ts +27 -0
  83. package/dist/tools/developLatentConcepts copy.d.ts.map +1 -0
  84. package/dist/tools/developLatentConcepts copy.js +68 -0
  85. package/dist/tools/developLatentConcepts copy.js.map +1 -0
  86. package/dist/tools/developLatentConcepts.d.ts +27 -0
  87. package/dist/tools/developLatentConcepts.d.ts.map +1 -0
  88. package/dist/tools/developLatentConcepts.js +68 -0
  89. package/dist/tools/developLatentConcepts.js.map +1 -0
  90. package/dist/tools/developLatentTopics.d.ts +34 -0
  91. package/dist/tools/developLatentTopics.d.ts.map +1 -0
  92. package/dist/tools/developLatentTopics.js +107 -0
  93. package/dist/tools/developLatentTopics.js.map +1 -0
  94. package/dist/tools/developTextTool.d.ts +39 -0
  95. package/dist/tools/developTextTool.d.ts.map +1 -0
  96. package/dist/tools/developTextTool.js +210 -0
  97. package/dist/tools/developTextTool.js.map +1 -0
  98. package/dist/tools/generateContentGaps.d.ts +32 -0
  99. package/dist/tools/generateContentGaps.d.ts.map +1 -0
  100. package/dist/tools/generateContentGaps.js +96 -0
  101. package/dist/tools/generateContentGaps.js.map +1 -0
  102. package/dist/tools/generateContextualHint.d.ts +33 -0
  103. package/dist/tools/generateContextualHint.d.ts.map +1 -0
  104. package/dist/tools/generateContextualHint.js +99 -0
  105. package/dist/tools/generateContextualHint.js.map +1 -0
  106. package/dist/tools/generateDifferenceGraphFromTexts.d.ts +52 -0
  107. package/dist/tools/generateDifferenceGraphFromTexts.d.ts.map +1 -0
  108. package/dist/tools/generateDifferenceGraphFromTexts.js +160 -0
  109. package/dist/tools/generateDifferenceGraphFromTexts.js.map +1 -0
  110. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts +37 -0
  111. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts.map +1 -0
  112. package/dist/tools/generateGoogleResultsVsQueriesGraph.js +84 -0
  113. package/dist/tools/generateGoogleResultsVsQueriesGraph.js.map +1 -0
  114. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts +39 -0
  115. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts.map +1 -0
  116. package/dist/tools/generateGoogleSearchQueriesGraph.js +88 -0
  117. package/dist/tools/generateGoogleSearchQueriesGraph.js.map +1 -0
  118. package/dist/tools/generateGoogleSearchResultsGraph.d.ts +38 -0
  119. package/dist/tools/generateGoogleSearchResultsGraph.d.ts.map +1 -0
  120. package/dist/tools/generateGoogleSearchResultsGraph.js +88 -0
  121. package/dist/tools/generateGoogleSearchResultsGraph.js.map +1 -0
  122. package/dist/tools/generateKnowledgeGraph.d.ts +35 -0
  123. package/dist/tools/generateKnowledgeGraph.d.ts.map +1 -0
  124. package/dist/tools/generateKnowledgeGraph.js +105 -0
  125. package/dist/tools/generateKnowledgeGraph.js.map +1 -0
  126. package/dist/tools/generateMergedGraphFromTexts.d.ts +52 -0
  127. package/dist/tools/generateMergedGraphFromTexts.d.ts.map +1 -0
  128. package/dist/tools/generateMergedGraphFromTexts.js +160 -0
  129. package/dist/tools/generateMergedGraphFromTexts.js.map +1 -0
  130. package/dist/tools/generateOntologyGraph.d.ts +36 -0
  131. package/dist/tools/generateOntologyGraph.d.ts.map +1 -0
  132. package/dist/tools/generateOntologyGraph.js +171 -0
  133. package/dist/tools/generateOntologyGraph.js.map +1 -0
  134. package/dist/tools/generateOverlapGraphFromTexts.d.ts +52 -0
  135. package/dist/tools/generateOverlapGraphFromTexts.d.ts.map +1 -0
  136. package/dist/tools/generateOverlapGraphFromTexts.js +159 -0
  137. package/dist/tools/generateOverlapGraphFromTexts.js.map +1 -0
  138. package/dist/tools/generateResearchIdeas.d.ts +39 -0
  139. package/dist/tools/generateResearchIdeas.d.ts.map +1 -0
  140. package/dist/tools/generateResearchIdeas.js +117 -0
  141. package/dist/tools/generateResearchIdeas.js.map +1 -0
  142. package/dist/tools/generateResearchQuestions.d.ts +37 -0
  143. package/dist/tools/generateResearchQuestions.d.ts.map +1 -0
  144. package/dist/tools/generateResearchQuestions.js +111 -0
  145. package/dist/tools/generateResearchQuestions.js.map +1 -0
  146. package/dist/tools/generateResearchQuestionsFromGraph.d.ts +34 -0
  147. package/dist/tools/generateResearchQuestionsFromGraph.d.ts.map +1 -0
  148. package/dist/tools/generateResearchQuestionsFromGraph.js +75 -0
  149. package/dist/tools/generateResearchQuestionsFromGraph.js.map +1 -0
  150. package/dist/tools/generateResponses.d.ts +35 -0
  151. package/dist/tools/generateResponses.d.ts.map +1 -0
  152. package/dist/tools/generateResponses.js +112 -0
  153. package/dist/tools/generateResponses.js.map +1 -0
  154. package/dist/tools/generateResponsesFromGraph.d.ts +33 -0
  155. package/dist/tools/generateResponsesFromGraph.d.ts.map +1 -0
  156. package/dist/tools/generateResponsesFromGraph.js +74 -0
  157. package/dist/tools/generateResponsesFromGraph.js.map +1 -0
  158. package/dist/tools/generateSEOGraphTool.d.ts +39 -0
  159. package/dist/tools/generateSEOGraphTool.d.ts.map +1 -0
  160. package/dist/tools/generateSEOGraphTool.js +235 -0
  161. package/dist/tools/generateSEOGraphTool.js.map +1 -0
  162. package/dist/tools/generateTextOverview.d.ts +31 -0
  163. package/dist/tools/generateTextOverview.d.ts.map +1 -0
  164. package/dist/tools/generateTextOverview.js +68 -0
  165. package/dist/tools/generateTextOverview.js.map +1 -0
  166. package/dist/tools/generateTopicalClusters.d.ts +34 -0
  167. package/dist/tools/generateTopicalClusters.d.ts.map +1 -0
  168. package/dist/tools/generateTopicalClusters.js +134 -0
  169. package/dist/tools/generateTopicalClusters.js.map +1 -0
  170. package/dist/tools/getMemory.d.ts +32 -0
  171. package/dist/tools/getMemory.d.ts.map +1 -0
  172. package/dist/tools/getMemory.js +121 -0
  173. package/dist/tools/getMemory.js.map +1 -0
  174. package/dist/tools/index.d.ts +30 -0
  175. package/dist/tools/index.d.ts.map +1 -0
  176. package/dist/tools/index.js +30 -0
  177. package/dist/tools/index.js.map +1 -0
  178. package/dist/tools/listGraphs.d.ts +37 -0
  179. package/dist/tools/listGraphs.d.ts.map +1 -0
  180. package/dist/tools/listGraphs.js +127 -0
  181. package/dist/tools/listGraphs.js.map +1 -0
  182. package/dist/tools/optimizeTextStructure.d.ts +34 -0
  183. package/dist/tools/optimizeTextStructure.d.ts.map +1 -0
  184. package/dist/tools/optimizeTextStructure.js +108 -0
  185. package/dist/tools/optimizeTextStructure.js.map +1 -0
  186. package/dist/tools/retrieveContextForPromptFromGraph.d.ts +37 -0
  187. package/dist/tools/retrieveContextForPromptFromGraph.d.ts.map +1 -0
  188. package/dist/tools/retrieveContextForPromptFromGraph.js +80 -0
  189. package/dist/tools/retrieveContextForPromptFromGraph.js.map +1 -0
  190. package/dist/tools/searchGraph.d.ts +27 -0
  191. package/dist/tools/searchGraph.d.ts.map +1 -0
  192. package/dist/tools/searchGraph.js +57 -0
  193. package/dist/tools/searchGraph.js.map +1 -0
  194. package/dist/tools/searchGraphs.d.ts +33 -0
  195. package/dist/tools/searchGraphs.d.ts.map +1 -0
  196. package/dist/tools/searchGraphs.js +67 -0
  197. package/dist/tools/searchGraphs.js.map +1 -0
  198. package/dist/tools/searchGraphsFetch.d.ts +31 -0
  199. package/dist/tools/searchGraphsFetch.d.ts.map +1 -0
  200. package/dist/tools/searchGraphsFetch.js +78 -0
  201. package/dist/tools/searchGraphsFetch.js.map +1 -0
  202. package/dist/tools/sequentialThinking.d.ts +71 -0
  203. package/dist/tools/sequentialThinking.d.ts.map +1 -0
  204. package/dist/tools/sequentialThinking.js +218 -0
  205. package/dist/tools/sequentialThinking.js.map +1 -0
  206. package/dist/types/index.d.ts +378 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/index.js +2 -0
  209. package/dist/types/index.js.map +1 -0
  210. package/dist/utils/progress.d.ts +21 -0
  211. package/dist/utils/progress.d.ts.map +1 -0
  212. package/dist/utils/progress.js +50 -0
  213. package/dist/utils/progress.js.map +1 -0
  214. package/dist/utils/transformers.d.ts +31 -0
  215. package/dist/utils/transformers.d.ts.map +1 -0
  216. package/dist/utils/transformers.js +484 -0
  217. package/dist/utils/transformers.js.map +1 -0
  218. package/dist/utils/urlContent.d.ts +35 -0
  219. package/dist/utils/urlContent.d.ts.map +1 -0
  220. package/dist/utils/urlContent.js +87 -0
  221. package/dist/utils/urlContent.js.map +1 -0
  222. package/llms-full.infranodus.txt +469 -0
  223. package/llms-full.keywordgraph.txt +469 -0
  224. package/llms-full.txt +469 -0
  225. package/llms.infranodus.txt +64 -0
  226. package/llms.keywordgraph.txt +64 -0
  227. package/llms.txt +64 -0
  228. package/package.json +78 -0
@@ -0,0 +1,394 @@
1
+ // Prompts for common use cases
2
+ import { brand } from "../config/brand.js";
3
+ export const prompts = [
4
+ {
5
+ name: "analyze-text",
6
+ definition: {
7
+ title: "Analyze text as a knowledge graph",
8
+ description: "Generate a knowledge graph from text to identify main topics, concepts, and gaps",
9
+ arguments: [
10
+ {
11
+ name: "text",
12
+ description: "The text to analyze",
13
+ required: true,
14
+ },
15
+ ],
16
+ },
17
+ handler: async (args) => {
18
+ const text = args.text;
19
+ return {
20
+ messages: [
21
+ {
22
+ role: "user",
23
+ content: {
24
+ type: "text",
25
+ text: `Please analyze the following text using ${brand.name} to generate a knowledge graph. Show me the main topics, topical clusters, key concepts, relationships, and any structural gaps you identify:
26
+
27
+ ${text}
28
+
29
+ Use the generate_knowledge_graph tool to get a detailed analysis.`,
30
+ },
31
+ },
32
+ ],
33
+ };
34
+ },
35
+ },
36
+ {
37
+ name: "gap-analysis",
38
+ definition: {
39
+ title: "Find the gaps in a text",
40
+ description: "Find the gaps in a text based on the knowledge graph analysis",
41
+ arguments: [
42
+ {
43
+ name: "text",
44
+ description: "The text to find the gaps in",
45
+ required: true,
46
+ },
47
+ ],
48
+ },
49
+ handler: async (args) => {
50
+ const text = args.text;
51
+ return {
52
+ messages: [
53
+ {
54
+ role: "user",
55
+ content: {
56
+ type: "text",
57
+ text: `Please analyze the following text using ${brand.name} to find the gaps within it that could be bridged to improve the content and generate new ideas:
58
+
59
+ ${text}
60
+
61
+ Use the generate_content_gaps tool to get a detailed analysis.`,
62
+ },
63
+ },
64
+ ],
65
+ };
66
+ },
67
+ },
68
+ {
69
+ name: "topic-analysis",
70
+ definition: {
71
+ title: "Find the topics in a text",
72
+ description: "Find the main topics and topical clusters in a text based on the knowledge graph analysis",
73
+ arguments: [
74
+ {
75
+ name: "text",
76
+ description: "The text to find the topics in",
77
+ required: true,
78
+ },
79
+ ],
80
+ },
81
+ handler: async (args) => {
82
+ const text = args.text;
83
+ return {
84
+ messages: [
85
+ {
86
+ role: "user",
87
+ content: {
88
+ type: "text",
89
+ text: `Please analyze the following text using ${brand.name} to find the gaps within it that could be bridged to improve the content and generate new ideas:
90
+
91
+ ${text}
92
+
93
+ Use the generate_topical_clusters tool to get a detailed analysis.`,
94
+ },
95
+ },
96
+ ],
97
+ };
98
+ },
99
+ },
100
+ {
101
+ name: "compare-texts",
102
+ definition: {
103
+ title: "Compare two texts",
104
+ description: "Find overlaps and differences between two texts using knowledge graphs",
105
+ arguments: [
106
+ {
107
+ name: "text1",
108
+ description: "The main text to find similarities and find the differences: what's in the first text that is not in the second one.",
109
+ required: true,
110
+ },
111
+ {
112
+ name: "text2",
113
+ description: "The second text to compare for similarities and differences: the content in the first text that is not in the second.",
114
+ required: true,
115
+ },
116
+ ],
117
+ },
118
+ handler: async (args) => {
119
+ const text1 = args.text1;
120
+ const text2 = args.text2;
121
+ return {
122
+ messages: [
123
+ {
124
+ role: "user",
125
+ content: {
126
+ type: "text",
127
+ text: `Please compare these two texts using ${brand.name}:
128
+
129
+ Text 1:
130
+ ${text1}
131
+
132
+ Text 2:
133
+ ${text2}
134
+
135
+ First, use the overlap_between_texts tool to find common themes and concepts.
136
+ Then, use the difference_between_texts tool to identify what's present in the first text that is not in the second one.
137
+ Provide a summary of the main similarities and differences.`,
138
+ },
139
+ },
140
+ ],
141
+ };
142
+ },
143
+ },
144
+ {
145
+ name: "research-ideas",
146
+ definition: {
147
+ title: "Generate research ideas",
148
+ description: "Generate research questions and ideas from text or existing graph",
149
+ arguments: [
150
+ {
151
+ name: "text",
152
+ description: "The text to generate research ideas from",
153
+ required: true,
154
+ },
155
+ {
156
+ name: "graphName",
157
+ description: "Optional: name of existing graph to use if no text is provided",
158
+ required: false,
159
+ },
160
+ ],
161
+ },
162
+ handler: async (args) => {
163
+ const text = args.text;
164
+ const graphName = args.graphName;
165
+ if (graphName) {
166
+ return {
167
+ messages: [
168
+ {
169
+ role: "user",
170
+ content: {
171
+ type: "text",
172
+ text: `Please generate research ideas for the graph "${graphName}":
173
+
174
+ 1. Use the generate_research_questions tool (with graphName parameter) to create research questions
175
+ 2. Use the generate_responses_from_graph tool to generate potential responses
176
+
177
+ Provide a comprehensive research agenda based on the analysis.`,
178
+ },
179
+ },
180
+ ],
181
+ };
182
+ }
183
+ return {
184
+ messages: [
185
+ {
186
+ role: "user",
187
+ content: {
188
+ type: "text",
189
+ text: `Please help me generate research ideas based on this text:
190
+ "${text}"
191
+
192
+ Use the develop_text tool to generate research ideas based on the content gaps, conceptual bridges, and latent topics identified in the text.
193
+
194
+ Provide a structured research plan with key questions and areas to investigate.`,
195
+ },
196
+ },
197
+ ],
198
+ };
199
+ },
200
+ },
201
+ {
202
+ name: "seo-topic-analysis",
203
+ definition: {
204
+ title: "SEO analysis of a topic",
205
+ description: "Analyze search queries and results to identify search intent, the main topics for topical authority, and high-volume search queries that are not adequately served by search results",
206
+ arguments: [
207
+ {
208
+ name: "queries",
209
+ description: "The most likely search queries to analyze for a given topic, comma-separated list",
210
+ required: true,
211
+ },
212
+ ],
213
+ },
214
+ handler: async (args) => {
215
+ const queries = args.queries;
216
+ const basePrompt = `Please perform an SEO analysis for the following search queries: "${queries}"
217
+
218
+ 1. First, use the generate_google_search_queries_graph tool to analyze related search queries
219
+ 2. Then, use the generate_google_search_results_graph tool to analyze the top search results
220
+ 3. Use the generate_google_results_vs_queries_graph tool to find gaps between queries and results`;
221
+ return {
222
+ messages: [
223
+ {
224
+ role: "user",
225
+ content: {
226
+ type: "text",
227
+ text: basePrompt +
228
+ `
229
+
230
+ Provide insights about the search landscape and content opportunities based on the gaps identified.`,
231
+ },
232
+ },
233
+ ],
234
+ };
235
+ },
236
+ },
237
+ {
238
+ name: "seo-content-analysis",
239
+ definition: {
240
+ title: "SEO analysis of a content",
241
+ description: "Analyze the content to identify SEO opportunities and gaps",
242
+ arguments: [
243
+ {
244
+ name: "content",
245
+ description: "The content to analyze for SEO opportunities and gaps, can be a text or the text content of a website",
246
+ required: true,
247
+ },
248
+ ],
249
+ },
250
+ handler: async (args) => {
251
+ const content = args.content;
252
+ const basePrompt = `Please perform an SEO analysis for the following content:
253
+
254
+ ${content}
255
+
256
+ Use the generate_seo_report tool to provide full report on the SEO opportunities and gaps identified in the content`;
257
+ return {
258
+ messages: [
259
+ {
260
+ role: "user",
261
+ content: {
262
+ type: "text",
263
+ text: basePrompt +
264
+ `
265
+
266
+ Provide insights about the main topics for topical authority, high-volume search queries, content gaps and other SEO opportunities.`,
267
+ },
268
+ },
269
+ ],
270
+ };
271
+ },
272
+ },
273
+ {
274
+ name: "seo-competition-analysis",
275
+ definition: {
276
+ title: "SEO analysis of the competition",
277
+ description: "Analyze the highest-ranking websites of your competition to identify their main topics and gaps and see what you can focus on to improve your ranking",
278
+ arguments: [
279
+ {
280
+ name: "yourWebsite",
281
+ description: "The URL of your website to analyze",
282
+ required: true,
283
+ },
284
+ {
285
+ name: "competitionWebsites",
286
+ description: "The URLs of the highest-ranking websites of your competition to analyze, comma-separated list",
287
+ required: true,
288
+ },
289
+ ],
290
+ },
291
+ handler: async (args) => {
292
+ const yourWebsite = args.yourWebsite;
293
+ const competitionWebsites = args.competitionWebsites;
294
+ const basePrompt = `Extract the content of the main and highest-ranking pages on Google for my website "${yourWebsite}" and the content of the highest ranking pages on Googlefollowing websites of my competition: "${competitionWebsites}"
295
+
296
+ Then use the difference_between_texts tool to keyword combinations that are present in the competitors' websites that is not in my website.
297
+
298
+ Then use the analyze_related_search_queries tool with these keyword combinations to identify the high-volume, low-competition search queries.
299
+
300
+ Then use the generate_seo_report tool to analyze the content of competitors content and see what they are missing.
301
+
302
+ Then run the analyze_google_search_results tool on the gaps identified to extract the main topics to target to improve topical authority.
303
+
304
+ Provide a comprensive advice on how to improve my website's SEO based on this analysis.
305
+
306
+ `;
307
+ return {
308
+ messages: [
309
+ {
310
+ role: "user",
311
+ content: {
312
+ type: "text",
313
+ text: basePrompt,
314
+ },
315
+ },
316
+ ],
317
+ };
318
+ },
319
+ },
320
+ {
321
+ name: "develop-text",
322
+ definition: {
323
+ title: "Develop and expand text",
324
+ description: "Develop text using knowledge graph analysis to fill gaps and expand ideas",
325
+ arguments: [
326
+ {
327
+ name: "text",
328
+ description: "The text to develop and expand",
329
+ required: true,
330
+ },
331
+ ],
332
+ },
333
+ handler: async (args) => {
334
+ const text = args.text;
335
+ const focus = args.focus;
336
+ let prompt = `Please help me develop and expand this text using ${brand.name}:
337
+
338
+ ${text}
339
+
340
+ Use the develop_text tool to generate research ideas based on the content gaps, conceptual bridges, and latent topics identified in the text.
341
+ `;
342
+ return {
343
+ messages: [
344
+ {
345
+ role: "user",
346
+ content: {
347
+ type: "text",
348
+ text: prompt,
349
+ },
350
+ },
351
+ ],
352
+ };
353
+ },
354
+ },
355
+ {
356
+ name: "save-memory",
357
+ definition: {
358
+ title: `Save text to ${brand.name} memory`,
359
+ description: `Save important information to your ${brand.name} knowledge base`,
360
+ arguments: [
361
+ {
362
+ name: "graphName",
363
+ description: "Name for the saved graph",
364
+ required: true,
365
+ },
366
+ {
367
+ name: "text",
368
+ description: "The text to save",
369
+ required: true,
370
+ },
371
+ ],
372
+ },
373
+ handler: async (args) => {
374
+ const graphName = args.graphName;
375
+ const text = args.text;
376
+ return {
377
+ messages: [
378
+ {
379
+ role: "user",
380
+ content: {
381
+ type: "text",
382
+ text: `Please save the following text to my ${brand.name} memory with the name "${graphName}":
383
+
384
+ ${text}
385
+
386
+ Use the memory_add_relations tool to save this information.`,
387
+ },
388
+ },
389
+ ],
390
+ };
391
+ },
392
+ },
393
+ ];
394
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const aboutResource: {
2
+ name: string;
3
+ uri: string;
4
+ definition: {
5
+ name: string;
6
+ description: string;
7
+ mimeType: string;
8
+ };
9
+ handler: () => Promise<{
10
+ contents: {
11
+ uri: string;
12
+ mimeType: string;
13
+ text: string;
14
+ }[];
15
+ }>;
16
+ };
17
+ //# sourceMappingURL=about.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../src/resources/about.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CA6DzB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { brand } from "../config/brand.js";
2
+ export const aboutResource = {
3
+ name: "about",
4
+ uri: "info://about",
5
+ definition: {
6
+ name: `About ${brand.name} MCP Server`,
7
+ description: `${brand.name} MCP server can generate knowledge graphs and perform text analysis. It can work with your existing ${brand.name} graphs or with the text you submit via your LLM workflows or Claude desktop client. ${brand.name} MCP can extract the main topics and identify the content gaps in any text and use the built-in AI with the model of your choice (no additional keys needed) to generate research questions that can be used as prompts to augment your LLM's responses.`,
8
+ mimeType: "text/plain",
9
+ },
10
+ handler: async () => {
11
+ return {
12
+ contents: [
13
+ {
14
+ uri: "info://about",
15
+ mimeType: "text/plain",
16
+ text: `${brand.name} MCP Server
17
+
18
+ This server provides tools for text analysis and knowledge graph generation using the ${brand.name} API.
19
+
20
+ Available Tools:
21
+ 1. analyze_existing_graph_by_name - Retrieve and analyze graphs content from your ${brand.name} account
22
+ 2. analyze_text - Analyze a text, URL, or YouTube transcript; extract and analyze a graph from text or URL (provide either text or url)
23
+ 3. generate_content_gaps - Generate content gaps from text
24
+ 4. generate_topical_clusters - Generate topics and clusters of keywords from text using knowledge graph analysis; by default also returns AI-generated summaries of each topical cluster (topicalClusterSummaries, useful for SEO-optimized content creation) — set generateTopicalSummaries: false to increase processing speed or if the summary request fails
25
+ 5. optimize_text_structure - Analyze the level of bias and coherence in text; if too biased, develop the represented topics; if focused or diversified, develop the content gaps; if dispersed, focus the most common gap topics
26
+ 6. develop_text_tool - Comprehensive text analysis combining research questions, latent topics, and content gaps with progress tracking
27
+ 7. create_knowledge_graph - Create a knowledge graph in ${brand.name} from text and provide a link to it
28
+ 8. overlap_between_texts - Create knowledge graphs from two or more texts and find the overlap (similarities) between them
29
+ 9. merged_graph_from_texts - Build a graph of all the texts, URLs, and existing graphs provided, providing topical clusters and gaps present in the merged graph generated from all the texts
30
+ 10. difference_between_texts - Create knowledge graphs from two or more text and find what's not present in the first graph that's present in the others
31
+ 11. analyze_llm_results - Ask an LLM to describe a topic and turn its answer into a knowledge graph that reveals how the model frames it (main concepts, clusters, content gaps, relations). Useful for probing model bias or comparing how different models describe the same topic. Default model: claude-opus-4.6. Saves by default; returns analytics by default and omits raw graph (includeGraph: false) to keep responses compact
32
+ 12. analyze_google_search_results - Generate a Google search results graph from search queries
33
+ 13. analyze_related_search_queries - Generate a graph of search requests related to search queries provided
34
+ 14. search_queries_vs_search_results - Find what people search for but don't yet find
35
+ 15. generate_seo_report - Analyze content for SEO optimization by comparing it with Google search results and search queries
36
+ 16. list_graphs - List all graphs for the currently logged in user with optional filtering by name, type, date, language, or favorite status
37
+ 17. search - Search through existing ${brand.name} graphs
38
+ 18. fetch - Fetch a specific search result from a ${brand.name} graph
39
+
40
+ Key Features:
41
+ - Topic modeling and clustering
42
+ - Content gap detection (finding missing connections)
43
+ - Network statistics (modularity, centrality, etc.)
44
+ - AI-powered topic naming (optional)
45
+ - Entity detection for cleaner graphs
46
+
47
+ Configuration:
48
+ - Requires ${brand.envPrefix}_API_KEY environment variable
49
+ - Get your API key at: https://${brand.domain}/api-access
50
+
51
+ ${brand.name} uses advanced graph theory algorithms to:
52
+ - Identify clusters of related ideas
53
+ - Highlight influential concepts
54
+ - Reveal gaps in discourse
55
+ - Generate research questions
56
+ - Optimize knowledge base structure
57
+
58
+ Learn more: https://${brand.domain}`,
59
+ },
60
+ ],
61
+ };
62
+ },
63
+ };
64
+ //# sourceMappingURL=about.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/resources/about.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,cAAc;IACnB,UAAU,EAAE;QACX,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,aAAa;QACtC,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,uGAAuG,KAAK,CAAC,IAAI,wFAAwF,KAAK,CAAC,IAAI,0PAA0P;QACve,QAAQ,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,IAAI,EAAE;QACnB,OAAO;YACN,QAAQ,EAAE;gBACT;oBACC,GAAG,EAAE,cAAc;oBACnB,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI;;wFAEgE,KAAK,CAAC,IAAI;;;oFAGd,KAAK,CAAC,IAAI;;;;;;0DAMpC,KAAK,CAAC,IAAI;;;;;;;;;;uCAU7B,KAAK,CAAC,IAAI;oDACG,KAAK,CAAC,IAAI;;;;;;;;;;aAUjD,KAAK,CAAC,SAAS;iCACK,KAAK,CAAC,MAAM;;EAE3C,KAAK,CAAC,IAAI;;;;;;;sBAOU,KAAK,CAAC,MAAM,EAAE;iBAC/B;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC"}
@@ -0,0 +1,33 @@
1
+ export declare const llmsTxtResource: {
2
+ name: string;
3
+ uri: string;
4
+ definition: {
5
+ name: string;
6
+ description: string;
7
+ mimeType: string;
8
+ };
9
+ handler: () => Promise<{
10
+ contents: {
11
+ uri: string;
12
+ mimeType: string;
13
+ text: string;
14
+ }[];
15
+ }>;
16
+ };
17
+ export declare const llmsFullTxtResource: {
18
+ name: string;
19
+ uri: string;
20
+ definition: {
21
+ name: string;
22
+ description: string;
23
+ mimeType: string;
24
+ };
25
+ handler: () => Promise<{
26
+ contents: {
27
+ uri: string;
28
+ mimeType: string;
29
+ text: string;
30
+ }[];
31
+ }>;
32
+ };
33
+ //# sourceMappingURL=llms-txt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../../src/resources/llms-txt.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;CAmB/B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { fileURLToPath } from "url";
4
+ import { brand } from "../config/brand.js";
5
+ // Resolve a static doc to the active brand's variant, e.g.
6
+ // "llms.txt" -> "llms.infranodus.txt" / "llms.keywordgraph.txt", falling back
7
+ // to the generic filename if no brand-specific variant exists.
8
+ function readStaticFile(filename) {
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ const root = path.resolve(__dirname, "../../");
11
+ const dot = filename.indexOf(".");
12
+ const branded = dot === -1
13
+ ? `${filename}.${brand.id}`
14
+ : `${filename.slice(0, dot)}.${brand.id}${filename.slice(dot)}`;
15
+ for (const candidate of [branded, filename]) {
16
+ try {
17
+ return fs.readFileSync(path.resolve(root, candidate), "utf-8");
18
+ }
19
+ catch {
20
+ // try next candidate
21
+ }
22
+ }
23
+ return `File ${filename} not found.`;
24
+ }
25
+ export const llmsTxtResource = {
26
+ name: "llms-txt",
27
+ uri: "info://llms.txt",
28
+ definition: {
29
+ name: `llms.txt — ${brand.name} MCP Server`,
30
+ description: `Concise index of ${brand.name} MCP server documentation, tools, and links following the llms.txt standard for LLM-accessible documentation.`,
31
+ mimeType: "text/markdown",
32
+ },
33
+ handler: async () => {
34
+ return {
35
+ contents: [
36
+ {
37
+ uri: "info://llms.txt",
38
+ mimeType: "text/markdown",
39
+ text: readStaticFile("llms.txt"),
40
+ },
41
+ ],
42
+ };
43
+ },
44
+ };
45
+ export const llmsFullTxtResource = {
46
+ name: "llms-full-txt",
47
+ uri: "info://llms-full.txt",
48
+ definition: {
49
+ name: `llms-full.txt — ${brand.name} MCP Server`,
50
+ description: `Comprehensive documentation of all ${brand.name} MCP tools with parameters, return values, workflow patterns, and key concepts. Optimized for LLM consumption.`,
51
+ mimeType: "text/markdown",
52
+ },
53
+ handler: async () => {
54
+ return {
55
+ contents: [
56
+ {
57
+ uri: "info://llms-full.txt",
58
+ mimeType: "text/markdown",
59
+ text: readStaticFile("llms-full.txt"),
60
+ },
61
+ ],
62
+ };
63
+ },
64
+ };
65
+ //# sourceMappingURL=llms-txt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../../src/resources/llms-txt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,2DAA2D;AAC3D,8EAA8E;AAC9E,+DAA+D;AAC/D,SAAS,cAAc,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GACZ,GAAG,KAAK,CAAC,CAAC;QACT,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE;QAC3B,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAClE,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC;YACJ,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACR,qBAAqB;QACtB,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,QAAQ,aAAa,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,iBAAiB;IACtB,UAAU,EAAE;QACX,IAAI,EAAE,cAAc,KAAK,CAAC,IAAI,aAAa;QAC3C,WAAW,EAAE,oBAAoB,KAAK,CAAC,IAAI,+GAA+G;QAC1J,QAAQ,EAAE,eAAe;KACzB;IACD,OAAO,EAAE,KAAK,IAAI,EAAE;QACnB,OAAO;YACN,QAAQ,EAAE;gBACT;oBACC,GAAG,EAAE,iBAAiB;oBACtB,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC;iBAChC;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,sBAAsB;IAC3B,UAAU,EAAE;QACX,IAAI,EAAE,mBAAmB,KAAK,CAAC,IAAI,aAAa;QAChD,WAAW,EAAE,sCAAsC,KAAK,CAAC,IAAI,gHAAgH;QAC7K,QAAQ,EAAE,eAAe;KACzB;IACD,OAAO,EAAE,KAAK,IAAI,EAAE;QACnB,OAAO;YACN,QAAQ,EAAE;gBACT;oBACC,GAAG,EAAE,sBAAsB;oBAC3B,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC;iBACrC;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC"}