infranodus-mcp-server 1.6.1 → 1.6.2

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 (114) hide show
  1. package/README.md +113 -118
  2. package/bin/infranodus-mcp-server.js +7 -53
  3. package/bin/keywordgraph-mcp-server.js +8 -0
  4. package/bin/mcp-server.js +56 -0
  5. package/dist/api/client.d.ts.map +1 -1
  6. package/dist/api/client.js +2 -1
  7. package/dist/api/client.js.map +1 -1
  8. package/dist/api/config-store.d.ts.map +1 -1
  9. package/dist/api/config-store.js +3 -2
  10. package/dist/api/config-store.js.map +1 -1
  11. package/dist/auth/oauth-provider.d.ts +3 -3
  12. package/dist/auth/oauth-provider.d.ts.map +1 -1
  13. package/dist/auth/oauth-provider.js +7 -6
  14. package/dist/auth/oauth-provider.js.map +1 -1
  15. package/dist/config/brand.d.ts +71 -0
  16. package/dist/config/brand.d.ts.map +1 -0
  17. package/dist/config/brand.js +118 -0
  18. package/dist/config/brand.js.map +1 -0
  19. package/dist/config/index.d.ts +2 -0
  20. package/dist/config/index.d.ts.map +1 -1
  21. package/dist/config/index.js +7 -5
  22. package/dist/config/index.js.map +1 -1
  23. package/dist/http-server.d.ts +1 -1
  24. package/dist/http-server.js +17 -16
  25. package/dist/http-server.js.map +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +47 -33
  28. package/dist/index.js.map +1 -1
  29. package/dist/instructions.d.ts +1 -1
  30. package/dist/instructions.d.ts.map +1 -1
  31. package/dist/instructions.js +3 -2
  32. package/dist/instructions.js.map +1 -1
  33. package/dist/prompts/index.d.ts.map +1 -1
  34. package/dist/prompts/index.js +10 -9
  35. package/dist/prompts/index.js.map +1 -1
  36. package/dist/resources/about.d.ts.map +1 -1
  37. package/dist/resources/about.js +28 -35
  38. package/dist/resources/about.js.map +1 -1
  39. package/dist/resources/llms-txt.d.ts.map +1 -1
  40. package/dist/resources/llms-txt.js +21 -10
  41. package/dist/resources/llms-txt.js.map +1 -1
  42. package/dist/schemas/index.d.ts +122 -21
  43. package/dist/schemas/index.d.ts.map +1 -1
  44. package/dist/schemas/index.js +192 -21
  45. package/dist/schemas/index.js.map +1 -1
  46. package/dist/tools/addMemory.d.ts.map +1 -1
  47. package/dist/tools/addMemory.js +3 -2
  48. package/dist/tools/addMemory.js.map +1 -1
  49. package/dist/tools/analyzeExistingGraph.d.ts.map +1 -1
  50. package/dist/tools/analyzeExistingGraph.js +3 -2
  51. package/dist/tools/analyzeExistingGraph.js.map +1 -1
  52. package/dist/tools/analyzeLlmResults.d.ts +37 -0
  53. package/dist/tools/analyzeLlmResults.d.ts.map +1 -0
  54. package/dist/tools/analyzeLlmResults.js +192 -0
  55. package/dist/tools/analyzeLlmResults.js.map +1 -0
  56. package/dist/tools/analyzeText.d.ts.map +1 -1
  57. package/dist/tools/analyzeText.js +2 -1
  58. package/dist/tools/analyzeText.js.map +1 -1
  59. package/dist/tools/createKnowledgeGraph.d.ts.map +1 -1
  60. package/dist/tools/createKnowledgeGraph.js +3 -2
  61. package/dist/tools/createKnowledgeGraph.js.map +1 -1
  62. package/dist/tools/generateDifferenceGraphFromTexts.d.ts.map +1 -1
  63. package/dist/tools/generateDifferenceGraphFromTexts.js +2 -1
  64. package/dist/tools/generateDifferenceGraphFromTexts.js.map +1 -1
  65. package/dist/tools/generateMergedGraphFromTexts.d.ts.map +1 -1
  66. package/dist/tools/generateMergedGraphFromTexts.js +2 -1
  67. package/dist/tools/generateMergedGraphFromTexts.js.map +1 -1
  68. package/dist/tools/generateOntologyGraph.d.ts +36 -0
  69. package/dist/tools/generateOntologyGraph.d.ts.map +1 -0
  70. package/dist/tools/generateOntologyGraph.js +194 -0
  71. package/dist/tools/generateOntologyGraph.js.map +1 -0
  72. package/dist/tools/generateResponses.d.ts.map +1 -1
  73. package/dist/tools/generateResponses.js +2 -1
  74. package/dist/tools/generateResponses.js.map +1 -1
  75. package/dist/tools/generateTopicalClusters.d.ts +1 -0
  76. package/dist/tools/generateTopicalClusters.d.ts.map +1 -1
  77. package/dist/tools/generateTopicalClusters.js +36 -1
  78. package/dist/tools/generateTopicalClusters.js.map +1 -1
  79. package/dist/tools/generateYoutubeSearchResultsGraph.d.ts +42 -0
  80. package/dist/tools/generateYoutubeSearchResultsGraph.d.ts.map +1 -0
  81. package/dist/tools/generateYoutubeSearchResultsGraph.js +97 -0
  82. package/dist/tools/generateYoutubeSearchResultsGraph.js.map +1 -0
  83. package/dist/tools/getMemory.d.ts.map +1 -1
  84. package/dist/tools/getMemory.js +3 -2
  85. package/dist/tools/getMemory.js.map +1 -1
  86. package/dist/tools/index.d.ts +3 -0
  87. package/dist/tools/index.d.ts.map +1 -1
  88. package/dist/tools/index.js +3 -0
  89. package/dist/tools/index.js.map +1 -1
  90. package/dist/tools/listGraphs.d.ts.map +1 -1
  91. package/dist/tools/listGraphs.js +2 -1
  92. package/dist/tools/listGraphs.js.map +1 -1
  93. package/dist/tools/retrieveContextForPromptFromGraph.d.ts.map +1 -1
  94. package/dist/tools/retrieveContextForPromptFromGraph.js +3 -2
  95. package/dist/tools/retrieveContextForPromptFromGraph.js.map +1 -1
  96. package/dist/tools/searchGraphs.d.ts.map +1 -1
  97. package/dist/tools/searchGraphs.js +3 -2
  98. package/dist/tools/searchGraphs.js.map +1 -1
  99. package/dist/tools/searchGraphsFetch.d.ts.map +1 -1
  100. package/dist/tools/searchGraphsFetch.js +2 -1
  101. package/dist/tools/searchGraphsFetch.js.map +1 -1
  102. package/dist/types/index.d.ts +39 -0
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/utils/transformers.d.ts +3 -1
  105. package/dist/utils/transformers.d.ts.map +1 -1
  106. package/dist/utils/transformers.js +36 -1
  107. package/dist/utils/transformers.js.map +1 -1
  108. package/dist/utils/urlContent.d.ts +1 -1
  109. package/dist/utils/urlContent.js +1 -1
  110. package/llms-full.infranodus.txt +469 -0
  111. package/llms-full.keywordgraph.txt +469 -0
  112. package/llms.infranodus.txt +64 -0
  113. package/llms.keywordgraph.txt +64 -0
  114. package/package.json +14 -3
package/README.md CHANGED
@@ -1,18 +1,18 @@
1
- # InfraNodus MCP Server
1
+ # KeywordGraph MCP Server
2
2
 
3
- A Model Context Protocol (MCP) server that integrates InfraNodus knowledge graph and text network analysis capabilities into LLM workflows and AI assistants like Claude Desktop.
3
+ A Model Context Protocol (MCP) server that integrates KeywordGraph knowledge graph and text network analysis capabilities into LLM workflows and AI assistants like Claude Desktop.
4
4
 
5
5
  ## Overview
6
6
 
7
- InfraNodus MCP Server enables LLM workflows and AI assistants to analyze text using advanced network science algorithms, generate knowledge graphs, detect content gaps, and identify key topics and concepts. It transforms unstructured text into structured insights using graph theory and network analysis.
7
+ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text using advanced network science algorithms, generate knowledge graphs, detect content gaps, and identify key topics and concepts. It transforms unstructured text into structured insights using graph theory and network analysis.
8
8
 
9
- ![InfraNodus MCP Server](https://infranodus.com/images/front/infranodus-overview.jpg)
9
+ ![KeywordGraph MCP Server](https://keywordgraph.com/images/front/keywordgraph-overview.jpg)
10
10
 
11
11
  ## Features
12
12
 
13
13
  ### You Can Use It To
14
14
 
15
- - Connect your existing InfraNodus knowledge graphs to your LLM workflows and AI chats
15
+ - Connect your existing KeywordGraph knowledge graphs to your LLM workflows and AI chats
16
16
  - Identify the main topical clusters in discourse without missing the important nuances (works better than standard LLM workflows)
17
17
  - Identify the content gaps in any discourse (helpful for content creation and research)
18
18
  - Generate new knowledge graphs from any text and use them to augment your LLM responses
@@ -21,7 +21,6 @@ InfraNodus MCP Server enables LLM workflows and AI assistants to analyze text us
21
21
  ### Available Tools
22
22
 
23
23
  1. **generate_knowledge_graph**
24
-
25
24
  - Convert any text into a visual knowledge graph
26
25
  - Extract topics, concepts, and their relationships
27
26
  - Identify structural patterns and clusters
@@ -29,52 +28,45 @@ InfraNodus MCP Server enables LLM workflows and AI assistants to analyze text us
29
28
  - Perform entity detection for cleaner graphs
30
29
 
31
30
  2. **analyze_existing_graph_by_name**
32
-
33
- - Retrieve and analyze existing graphs from your InfraNodus account
31
+ - Retrieve and analyze existing graphs from your KeywordGraph account
34
32
  - Access previously saved analyses
35
33
  - Export graph data with full statistics
36
34
 
37
35
  3. **analyze_text**
38
-
39
36
  - Analyze a text, URL, or YouTube transcript
40
37
  - Extract and analyze a graph from text or URL; provide either text or url
41
38
  - Get topics, clusters, statements, graph structure, and AI summary as requested
42
39
 
43
40
  4. **generate_content_gaps**
44
-
45
41
  - Detect missing connections in discourse
46
42
  - Identify underexplored topics
47
43
  - Generate research questions
48
44
  - Suggest content development opportunities
49
45
 
50
46
  5. **generate_topical_clusters**
51
-
52
47
  - Generate topics and clusters of keywords from text using knowledge graph analysis
53
48
  - Make sure to beyond genetic insights and detect smaller topics
54
49
  - Use the topical clusters to establish topical authority for SEO
50
+ - Returns AI-generated overviews of the topical clusters (`topicalClusterSummaries`), summarizing the discourse each cluster represents — useful for SEO-optimized content creation. Enabled by default; set `generateTopicalSummaries: false` to increase processing speed or if the summary request fails
55
51
 
56
52
  6. **generate_contextual_hint**
57
-
58
53
  - Generate a topical overview of a text and provide insights for LLMs to generate better responses
59
54
  - Use it to get a high-level understanding of a text
60
55
  - Use it to augment prompts in your LLM workflows and AI assistants
61
56
 
62
57
  7. **generate_research_questions**
63
-
64
- - Generate research questions that bridge content gaps from text, URL, or an existing InfraNodus graph
58
+ - Generate research questions that bridge content gaps from text, URL, or an existing KeywordGraph graph
65
59
  - Use them as prompts in your LLM models and AI workflows
66
- - Use any AI model (included in InfraNodus API)
60
+ - Use any AI model (included in KeywordGraph API)
67
61
  - Content gaps are identified based on topical clustering
68
62
 
69
63
  8. **generate_research_ideas**
70
-
71
64
  - Generate innovative research ideas based on content gaps identified in the text
72
65
  - Get actionable ideas to improve the text and develop the discourse
73
- - Use any AI model (included in InfraNodus API)
66
+ - Use any AI model (included in KeywordGraph API)
74
67
  - Ideas are generated from gaps between topical clusters
75
68
 
76
69
  9. **optimize_text_structure**
77
-
78
70
  - Analyze the level of bias and coherence in text using knowledge graph analysis
79
71
  - If the text is too biased, develop the represented topics to balance the discourse
80
72
  - If the text is focused or diversified, develop the content gaps to deepen the analysis
@@ -82,28 +74,24 @@ InfraNodus MCP Server enables LLM workflows and AI assistants to analyze text us
82
74
  - Choose response type: response, idea, question, or transcend
83
75
 
84
76
  10. **generate_responses_from_graph**
85
-
86
- - Generate responses based on an existing InfraNodus graph
77
+ - Generate responses based on an existing KeywordGraph graph
87
78
  - Integrate them into your LLM workflows and AI assistants
88
- - Use any AI model (included in InfraNodus API)
79
+ - Use any AI model (included in KeywordGraph API)
89
80
  - Use any prompt
90
81
 
91
82
  11. **develop_conceptual_bridges**
92
-
93
83
  - Analyze text and develop latent ideas based on concepts that connect this text to a broader discourse
94
84
  - Discover hidden themes and patterns that link your text to wider contexts
95
- - Use any AI model (included in InfraNodus API)
85
+ - Use any AI model (included in KeywordGraph API)
96
86
  - Generate insights that help develop the discourse
97
87
 
98
88
  12. **develop_latent_topics**
99
-
100
89
  - Analyze text and extract underdeveloped topics with ideas on how to develop them
101
90
  - Identify topics that need more attention and elaboration
102
- - Use any AI model (included in InfraNodus API)
91
+ - Use any AI model (included in KeywordGraph API)
103
92
  - Get actionable suggestions for content expansion
104
93
 
105
94
  13. **develop_text_tool**
106
-
107
95
  - Comprehensive text analysis combining content gap ideas, latent topics, and conceptual bridges
108
96
  - Executes multiple analyses in sequence with progress tracking
109
97
  - Generates research ideas based on content gaps
@@ -111,79 +99,85 @@ InfraNodus MCP Server enables LLM workflows and AI assistants to analyze text us
111
99
  - Finds content gaps for deeper exploration
112
100
 
113
101
  14. **create_knowledge_graph**
114
-
115
- - Create a knowledge graph in InfraNodus from text and provide a link to it
116
- - Use it to create a knowledge graph in InfraNodus from text
117
-
118
- 15. **overlap_between_texts**
119
-
102
+ - Create a knowledge graph in KeywordGraph from text and provide a link to it
103
+ - Use it to create a knowledge graph in KeywordGraph from text
104
+
105
+ 15. **generate_ontology_graph**
106
+ - Use AI to generate a reasoning ontology graph (entities and the relations between them) from a topic, prompt, or text — e.g. "build an ontology on AI attention mechanisms"
107
+ - Saved as a persistent KeywordGraph graph by default and a link is returned; set `saveGraph: false` if the user asks not to save, or when you only need a one-off AI ontology overview of a topic for the current context that won't be reused later (the generated statements are returned directly without persisting)
108
+ - `modelToUse` defaults to `claude-opus-4.6` for richer ontologies; pick `-mini`/`-lite` variants (or `gpt-4o-mini`) for faster, cheaper generation
109
+ - Returns the compact graph structure (`knowledgeGraph`) and analytics (main topical clusters, content gaps, top influential nodes, top relations, statistics) by default. Set `includeGraph: false` to save context space when only the ontology statements or insights are needed. Set `includeAnalytics: false` if you just need the raw ontology without graph-derived insights — keep it on whenever you want to understand the structure, gaps, or key concepts
110
+
111
+ 16. **analyze_llm_results**
112
+ - Ask an LLM to describe a topic and turn its response into a knowledge graph that reveals how the model frames it — main concepts, clusters, content gaps, and the relations between them
113
+ - Use it to probe model bias, surface the implicit structure of an LLM's view on a subject, or compare how different models describe the same topic
114
+ - `modelToUse` defaults to `claude-opus-4.6`; pick the model you actually want to study
115
+ - `modifyAnalyzedText` controls how the LLM output is parsed: `'detectEntities'` (default — mixed entities + words), `'extractEntitiesOnly'` (entity-only graph), or `'none'` (plain co-occurrence)
116
+ - Saves the graph by default; set `saveGraph: false` for a one-off probe. Returns analytics by default and omits the raw graph (`includeGraph: false`) to keep responses compact — enable `includeGraph` when you also need nodes/edges
117
+
118
+ 17. **overlap_between_texts**
120
119
  - Create knowledge graphs from two or more texts and find the overlap (similarities) between them
121
120
  - Use it to find similar topics and keywords across different texts
122
121
 
123
- 16. **merged_graph_from_texts**
124
-
122
+ 18. **merged_graph_from_texts**
125
123
  - Build a graph of all the texts and URLs provided, providing topical clusters and gaps present in the merged graph generated from all the texts
126
124
  - Use it to combine multiple sources into one graph and see clusters and content gaps across the merged content
127
125
 
128
- 17. **difference_between_texts**
129
-
126
+ 19. **difference_between_texts**
130
127
  - Compare knowledge graphs from two or more texts and find what's not present in the first graph that's present in the others
131
128
  - Use it to find how one text can be enriched with the others
132
129
 
133
- 18. **analyze_google_search_results**
134
-
130
+ 20. **analyze_google_search_results**
135
131
  - Generate a graph with keywords and topics for Google search results for a certain query
136
132
  - Use it to understand the current informational supply (what people find)
137
133
 
138
- 19. **analyze_related_search_queries**
134
+ 21. **analyze_youtube_search_results**
135
+ - Generate a graph with keywords and topics from YouTube results for a query, channel, or playlist
136
+ - Choose what to pull via `searchMode`: `search` (video metadata for a search term), `comments` (comments on a video), `channel` (a channel's videos — pass a username, URL, or @handle), `playlist` (a playlist's videos — pass a playlist ID or a URL with `list=`), `subtitles` / `subtitlesChannel` / `subtitlesPlaylist` (transcribed subtitles of a video / channel / playlist), or `searchVideos` (analyzes the content of the videos found — limit hard-capped to 20)
137
+ - Control results with `limit` (default 100, max 2000), `sortBy` (`Popular` / `Oldest` / `Latest`), `excludeDescriptions`, `importLanguage`, and `importRegion`
138
+ - Use it to understand the topics, clusters, and content gaps in the discourse around a video, channel, playlist, or search term on YouTube
139
139
 
140
+ 22. **analyze_related_search_queries**
140
141
  - Generate a graph from the search queries suggested by Google for a certain query
141
142
  - Use it to understand the current informational demand (what people are looking for)
142
143
 
143
- 20. **search_queries_vs_search_results**
144
-
144
+ 23. **search_queries_vs_search_results**
145
145
  - Generate a graph of keyword combinations and topics people tend to search for that do not readily appear in the search results for the same queries
146
146
  - Use it to understand what people search for but don't yet find
147
147
 
148
- 21. **generate_seo_report**
149
-
148
+ 24. **generate_seo_report**
150
149
  - Analyze content for SEO optimization by comparing it with Google search results and search queries
151
150
  - Identify content gaps and opportunities for better search visibility
152
151
  - Get comprehensive analysis of what's in search results but not in your text
153
152
  - Discover what people search for but don't find in current results
154
153
 
155
- 22. **memory_add_relations**
156
-
157
- - Add relations to the InfraNodus memory from text
154
+ 25. **memory_add_relations**
155
+ - Add relations to the KeywordGraph memory from text
158
156
  - Automatically detect entities or use [[wikilinks]] syntax to mark them
159
157
  - Save memory to a specified graph name for future retrieval
160
158
  - Support automatic entity extraction or manual entity marking
161
159
  - Provide links to created memory graphs for easy access
162
160
 
163
- 23. **memory_get_relations**
164
-
165
- - Retrieve relations from InfraNodus memory for specific entities
161
+ 26. **memory_get_relations**
162
+ - Retrieve relations from KeywordGraph memory for specific entities
166
163
  - Search for entity relations using [[wikilinks]] syntax
167
164
  - Query specific memory contexts or search across all memory graphs
168
165
  - Extract statements and relationships from stored knowledge graphs
169
166
  - Support both entity-specific searches and full context retrieval
170
167
 
171
- 24. **retrieve_from_knowledge_base**
172
-
173
- - Retrieve context from an existing InfraNodus knowledge graph using GraphRAG
168
+ 27. **retrieve_from_knowledge_base**
169
+ - Retrieve context from an existing KeywordGraph knowledge graph using GraphRAG
174
170
  - Query your knowledge base with a natural language prompt to get relevant statements
175
171
  - Include graph summaries for quick overviews of the knowledge structure
176
172
  - Optionally retrieve the full graph, statements, or extended analysis
177
173
  - Ideal for augmenting LLM responses with domain-specific knowledge
178
174
 
179
- 25. **search**
180
-
181
- - Search through existing InfraNodus graphs
175
+ 28. **search**
176
+ - Search through existing KeywordGraph graphs
182
177
  - Also use it to search through the public graphs of a specific user
183
178
  - Compatible with ChatGPT Deep Research mode via Developer Mode > Connectors
184
179
 
185
- 26. **fetch**
186
-
180
+ 29. **fetch**
187
181
  - Fetch a specific search result for a graph
188
182
  - Can be used in ChatGPT Deep Research mode via Developer Mode > Connectors
189
183
 
@@ -201,17 +195,17 @@ _More capabilites coming soon!_
201
195
 
202
196
  ## Knowledge Graph Memory Use Advice
203
197
 
204
- InfraNodus represents any text as a network graph in order to identify the main clusters of ideas and gaps between them. This helps generate advanced insights based on the text's structure. The network is effectively a knowledge graph that can also be used to retrieve complex ontological relations between different entities and concepts. This process is automated in InfraNodus using the `search` and `fetch` tools along with the other tools that analyze the underlying network.
198
+ KeywordGraph represents any text as a network graph in order to identify the main clusters of ideas and gaps between them. This helps generate advanced insights based on the text's structure. The network is effectively a knowledge graph that can also be used to retrieve complex ontological relations between different entities and concepts. This process is automated in KeywordGraph using the `search` and `fetch` tools along with the other tools that analyze the underlying network.
205
199
 
206
- However, you can also easily use InfraNodus as a more traditional memory server to save and retrieve relations. We use [[wikilinks]] to highlight entities in your text to make your content and graphs compatible with markup syntax and PKM tools such as Obsidian. By default, InfraNodus will generate the name of the memory graph for you based on the context of the conversation. However, you can modify this default behavior by adding a **system prompt** or **project instruction** into your LLM client.
200
+ However, you can also easily use KeywordGraph as a more traditional memory server to save and retrieve relations. We use [[wikilinks]] to highlight entities in your text to make your content and graphs compatible with markup syntax and PKM tools such as Obsidian. By default, KeywordGraph will generate the name of the memory graph for you based on the context of the conversation. However, you can modify this default behavior by adding a **system prompt** or **project instruction** into your LLM client.
207
201
 
208
202
  Specifically you can specify to always use a speciic knowlege graph for memories to store everything in one place:
209
203
 
210
204
  ```
211
- Save all memories in the `my-memories` graph in InfraNodus.
205
+ Save all memories in the `my-memories` graph in KeywordGraph.
212
206
  ```
213
207
 
214
- Or you can ask InfraNodus to only save certain entities, e.g. for building social networks:
208
+ Or you can ask KeywordGraph to only save certain entities, e.g. for building social networks:
215
209
 
216
210
  ```
217
211
  When generating entities, only extract people, companies, and organizations. Ignore everything else.
@@ -219,41 +213,41 @@ When generating entities, only extract people, companies, and organizations. Ign
219
213
 
220
214
  ## Installation
221
215
 
222
- The easiest and the fastest way to launch the InfraNodus MCP server is to either use our server URL `https://mcp.infranodus.com` for the remote / web applications or to add a manual configuration to your LLM apps if you're running them locally.
216
+ The easiest and the fastest way to launch the KeywordGraph MCP server is to either use our server URL `https://mcp.keywordgraph.com` for the remote / web applications or to add a manual configuration to your LLM apps if you're running them locally.
223
217
 
224
- You can also install the server locally, so you have more control over it. In this case, you can also edit the source files and even create your tools based on the [InfraNodus API](https://infranodus.com/api).
218
+ You can also install the server locally, so you have more control over it. In this case, you can also edit the source files and even create your tools based on the [KeywordGraph API](https://keywordgraph.com/api).
225
219
 
226
- Below we describe the two different ways to set up your InfraNodus MCP server.
220
+ Below we describe the two different ways to set up your KeywordGraph MCP server.
227
221
 
228
- ### 1. Easiest Setup: InfraNodus MCP Server (via HTTP/SSE)
222
+ ### 1. Easiest Setup: KeywordGraph MCP Server (via HTTP/SSE)
229
223
 
230
224
  0. **Prerequisites**
231
225
 
232
- - Create an account on [InfraNodus](https://infranodus.com) if you don't have it already and get your [InfraNodus API Key](https://infranodus.com/api-access). We offer 14-day free trials.
226
+ - Create an account on [KeywordGraph](https://keywordgraph.com) if you don't have it already and get your [KeywordGraph API Key](https://keywordgraph.com/api-access). We offer 14-day free trials.
233
227
 
234
228
  1. **Get the URL**
235
229
 
236
230
  - We currently use the following URL for our MCP server deployed in our infrastructure:
237
231
 
238
232
  ```bash
239
- https://mcp.infranodus.com
233
+ https://mcp.keywordgraph.com
240
234
  ```
241
235
 
242
- 2. **Add the MCP server URL to the Client Tool Where You Want to Use InfraNodus**
236
+ 2. **Add the MCP server URL to the Client Tool Where You Want to Use KeywordGraph**
243
237
 
244
- - Once you add the URL above to your tool, it will automatically prompt you to authenticate using OAuth in order to be able to access the InfraNodus MCP hosted on it.
238
+ - Once you add the URL above to your tool, it will automatically prompt you to authenticate using OAuth in order to be able to access the KeywordGraph MCP hosted on it.
245
239
 
246
- 4. **Using InfraNodus Tools in Your Calls**
240
+ 4. **Using KeywordGraph Tools in Your Calls**
247
241
 
248
- - To use InfraNodus, see the tools available and simply call them through the chat interface (e.g. "show me the graphs where I talk about this topic" or "get the content gaps from the document I uploaded")
242
+ - To use KeywordGraph, see the tools available and simply call them through the chat interface (e.g. "show me the graphs where I talk about this topic" or "get the content gaps from the document I uploaded")
249
243
 
250
- - If your client is not using InfraNodus for some actions, add the instruction to use InfraNodus explicitly.
244
+ - If your client is not using KeywordGraph for some actions, add the instruction to use KeywordGraph explicitly.
251
245
 
252
246
  ### 2. Manual Setup: via NPX
253
247
 
254
- You can deploy the InfraNodus server manually via `npx` — a package that allows to execute local and remote Node.Js packages on your computer.
248
+ You can deploy the KeywordGraph server manually via `npx` — a package that allows to execute local and remote Node.Js packages on your computer.
255
249
 
256
- The InfraNodus MCP server is available as an npm package at [https://www.npmjs.com/package/infranodus-mcp-server](https://www.npmjs.com/package/infranodus-mcp-server) from where you can launch it remotely on your local computer with npx. It will expose its tools to the MCP client that will be using this command to launch the server
250
+ The KeywordGraph MCP server is available as an npm package at [https://www.npmjs.com/package/keywordgraph-mcp-server](https://www.npmjs.com/package/keywordgraph-mcp-server) from where you can launch it remotely on your local computer with npx. It will expose its tools to the MCP client that will be using this command to launch the server
257
251
 
258
252
  #### For Claude Desktop / Cursor IDE:
259
253
 
@@ -262,11 +256,11 @@ Just add this in your Claude's configuration file (Settings > Developer > Edit C
262
256
  ```json
263
257
  {
264
258
  "mcpServers": {
265
- "infranodus": {
259
+ "keywordgraph": {
266
260
  "command": "npx",
267
- "args": ["-y", "infranodus-mcp-server"],
261
+ "args": ["-y", "keywordgraph-mcp-server"],
268
262
  "env": {
269
- "INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
263
+ "KEYWORDGRAPH_API_KEY": "YOUR_KEYWORDGRAPH_API_KEY"
270
264
  }
271
265
  }
272
266
  }
@@ -275,12 +269,12 @@ Just add this in your Claude's configuration file (Settings > Developer > Edit C
275
269
 
276
270
  #### For Claude Code
277
271
 
278
- To connect the InfraNodus MCP server to your Claude code, you can use this command. Make sure to provide the correct InfraNodus API key for your account:
272
+ To connect the KeywordGraph MCP server to your Claude code, you can use this command. Make sure to provide the correct KeywordGraph API key for your account:
279
273
 
280
274
  ```bash
281
- claude mcp add infranodus -s user \
282
- -- env INFRANODUS_API_KEY=YOUR_INRANODUS_KEY \
283
- npx -y infranodus-mcp-server
275
+ claude mcp add keywordgraph -s user \
276
+ -- env KEYWORDGRAPH_API_KEY=YOUR_INRANODUS_KEY \
277
+ npx -y keywordgraph-mcp-server
284
278
  ```
285
279
 
286
280
  ### 3. Manual Setup: Launching MCP as a Local Server (for inspection & development)
@@ -288,15 +282,16 @@ claude mcp add infranodus -s user \
288
282
  0. **Prerequisites**
289
283
 
290
284
  - Node.js 18+ installed
291
- - InfraNodus API key (get yours at [https://infranodus.com/api-access](https://infranodus.com/api-access))
285
+ - KeywordGraph API key (get yours at [https://keywordgraph.com/api-access](https://keywordgraph.com/api-access))
292
286
 
293
287
  1. **Clone and build the server:**
294
288
 
295
289
  ```bash
296
- git clone https://github.com/yourusername/mcp-server-infranodus.git
297
- cd mcp-server-infranodus
290
+ git clone https://github.com/yourusername/mcp-server-keywordgraph.git
291
+ cd mcp-server-keywordgraph
298
292
  npm install
299
293
  npm run build:inspect
294
+ npm run inspect
300
295
  ```
301
296
 
302
297
  Note that `build:inspect` will generate the `dist/index.js` file which you will then use in your server setup. The standard `npm run build` command will only build a Smithery file.
@@ -306,7 +301,7 @@ Note that `build:inspect` will generate the `dist/index.js` file which you will
306
301
  Create a `.env` file in the project root:
307
302
 
308
303
  ```
309
- INFRANODUS_API_KEY=your-api-key-here
304
+ KEYWORDGRAPH_API_KEY=your-api-key-here
310
305
  ```
311
306
 
312
307
  3. **Inspect the MCP:**
@@ -323,18 +318,18 @@ Note that `build:inspect` will generate the `dist/index.js` file which you will
323
318
  open ~/Library/Application\ Support/Claude/claude_desktop_config.json
324
319
  ```
325
320
 
326
- 2. Add the InfraNodus server configuration:
321
+ 2. Add the KeywordGraph server configuration:
327
322
 
328
323
  a. remote launch via `npx`:
329
324
 
330
325
  ```json
331
326
  {
332
327
  "mcpServers": {
333
- "infranodus": {
328
+ "keywordgraph": {
334
329
  "command": "npx",
335
- "args": ["-y", "infranodus-mcp-server"],
330
+ "args": ["-y", "keywordgraph-mcp-server"],
336
331
  "env": {
337
- "INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
332
+ "KEYWORDGRAPH_API_KEY": "YOUR_KEYWORDGRAPH_API_KEY"
338
333
  }
339
334
  }
340
335
  }
@@ -346,18 +341,18 @@ b. launch this repo with `node`, specify the absolute path to the repo + `/dist/
346
341
  ```json
347
342
  {
348
343
  "mcpServers": {
349
- "infranodus": {
344
+ "keywordgraph": {
350
345
  "command": "node",
351
- "args": ["/absolute/path/to/mcp-server-infranodus/dist/index.js"],
346
+ "args": ["/absolute/path/to/mcp-server-keywordgraph/dist/index.js"],
352
347
  "env": {
353
- "INFRANODUS_API_KEY": "your-api-key-here"
348
+ "KEYWORDGRAPH_API_KEY": "your-api-key-here"
354
349
  }
355
350
  }
356
351
  }
357
352
  }
358
353
  ```
359
354
 
360
- **Note:** you can leave the `INFRANODUS_API_KEY` empty in which case you can make 70 free requests after which you will hit quota and will need to add your API key.
355
+ **Note:** you can leave the `KEYWORDGRAPH_API_KEY` empty in which case you can make 70 free requests after which you will hit quota and will need to add your API key.
361
356
 
362
357
  3. Restart Claude Desktop to load the new server.
363
358
 
@@ -369,18 +364,18 @@ b. launch this repo with `node`, specify the absolute path to the repo + `/dist/
369
364
  %APPDATA%\Claude\claude_desktop_config.json
370
365
  ```
371
366
 
372
- 2. Add the InfraNodus server configuration:
367
+ 2. Add the KeywordGraph server configuration:
373
368
 
374
369
  a. remote launch via `npx`:
375
370
 
376
371
  ```json
377
372
  {
378
373
  "mcpServers": {
379
- "infranodus": {
374
+ "keywordgraph": {
380
375
  "command": "npx",
381
- "args": ["-y", "infranodus-mcp-server"],
376
+ "args": ["-y", "keywordgraph-mcp-server"],
382
377
  "env": {
383
- "INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
378
+ "KEYWORDGRAPH_API_KEY": "YOUR_KEYWORDGRAPH_API_KEY"
384
379
  }
385
380
  }
386
381
  }
@@ -392,11 +387,11 @@ b. launch this repo with `node`:
392
387
  ```json
393
388
  {
394
389
  "mcpServers": {
395
- "infranodus": {
390
+ "keywordgraph": {
396
391
  "command": "node",
397
- "args": ["C:\\path\\to\\mcp-server-infranodus\\dist\\index.js"],
392
+ "args": ["C:\\path\\to\\mcp-server-keywordgraph\\dist\\index.js"],
398
393
  "env": {
399
- "INFRANODUS_API_KEY": "your-api-key-here"
394
+ "KEYWORDGRAPH_API_KEY": "your-api-key-here"
400
395
  }
401
396
  }
402
397
  }
@@ -412,26 +407,26 @@ b. launch this repo with `node`:
412
407
  For other applications supporting MCP, use the following command to start the server via npx:
413
408
 
414
409
  ```bash
415
- INFRANODUS_API_KEY=your-api-key npx -y infranodus-mcp-server
410
+ KEYWORDGRAPH_API_KEY=your-api-key npx -y keywordgraph-mcp-server
416
411
  ```
417
412
 
418
413
  or locally
419
414
 
420
415
  ```bash
421
- INFRANODUS_API_KEY=your-api-key node /path/to/mcp-server-infranodus/dist/index.js
416
+ KEYWORDGRAPH_API_KEY=your-api-key node /path/to/mcp-server-keywordgraph/dist/index.js
422
417
  ```
423
418
 
424
419
  The server communicates via stdio, so configure your application to run this command and communicate through standard input/output.
425
420
 
426
421
  ### Legacy Setup via Smithery
427
422
 
428
- InfraNodus server is also available through Smithery: a repository of MCP servers that has an easy-to-follow installation process for most LLM clients. You will need a separate accout at Smithery though.
423
+ KeywordGraph server is also available through Smithery: a repository of MCP servers that has an easy-to-follow installation process for most LLM clients. You will need a separate accout at Smithery though.
429
424
 
430
425
  - Create an account on [Smithery.Ai](https://smithery.ai/) (it's free and you can use your Google or GitHub login)
431
426
 
432
- - Then go to the [Smithery InfraNodus Server](https://smithery.ai/server/@infranodus/mcp-server-infranodus), click "Configure" at the top right, and add your InfraNodus API key there.
427
+ - Then go to the [Smithery KeywordGraph Server](https://smithery.ai/server/@keywordgraph/mcp-server-keywordgraph), click "Configure" at the top right, and add your KeywordGraph API key there.
433
428
 
434
- - Go to [Smithery InfraNodus Server](https://smithery.ai/server/@infranodus/mcp-server-infranodus) and get the URL link from Smithery [https://server.smithery.ai/@infranodus/mcp-server-infranodus/mcp](https://server.smithery.ai/@infranodus/mcp-server-infranodus/mcp) for the server or use one of their automatic setup tools for Claude or Cursor.
429
+ - Go to [Smithery KeywordGraph Server](https://smithery.ai/server/@keywordgraph/mcp-server-keywordgraph) and get the URL link from Smithery [https://server.smithery.ai/@keywordgraph/mcp-server-keywordgraph/mcp](https://server.smithery.ai/@keywordgraph/mcp-server-keywordgraph/mcp) for the server or use one of their automatic setup tools for Claude or Cursor.
435
430
 
436
431
  - You may need to get your separate Smithery API key and Smithery proile link to make this work.
437
432
 
@@ -440,9 +435,9 @@ InfraNodus server is also available through Smithery: a repository of MCP server
440
435
  ```json
441
436
  // e.g. Cursor will access directly the server via Smithery
442
437
  "mcpServers": {
443
- "mcp-server-infranodus": {
438
+ "mcp-server-keywordgraph": {
444
439
  "type": "http",
445
- "url": "https://server.smithery.ai/@infranodus/mcp-server-infranodus/mcp?api_key=YOUR_SMITHERY_KEY&profile=YOUR_SMITHERY_PROFILE",
440
+ "url": "https://server.smithery.ai/@keywordgraph/mcp-server-keywordgraph/mcp?api_key=YOUR_SMITHERY_KEY&profile=YOUR_SMITHERY_PROFILE",
446
441
  "headers": {}
447
442
  }
448
443
  }
@@ -454,13 +449,13 @@ InfraNodus server is also available through Smithery: a repository of MCP server
454
449
  // Claude uses a slightly different implementation
455
450
  // Fot this, it launches the MCP server on your local machine
456
451
  "mcpServers": {
457
- "mcp-server-infranodus": {
452
+ "mcp-server-keywordgraph": {
458
453
  "command": "npx",
459
454
  "args": [
460
455
  "-y",
461
456
  "@smithery/cli@latest",
462
457
  "run",
463
- "@infranodus/mcp-server-infranodus",
458
+ "@keywordgraph/mcp-server-keywordgraph",
464
459
  "--key",
465
460
  "YOUR_SMITHERY_KEY",
466
461
  "--profile",
@@ -470,16 +465,16 @@ InfraNodus server is also available through Smithery: a repository of MCP server
470
465
  }
471
466
  ```
472
467
 
473
- **Note**, in both cases, you'll automatically get the `YOUR_SMITHERY_KEY` and `YOUR_SMITHERY_PROFILE` values from Smithery when you copy the URL with credentials. These are not your InfraNodus API keys. You can use the InfraNodus API server without the API for the first 70 calls. Then you can add it to your Smithery profile and it will automatically connect to your account using the link above.
468
+ **Note**, in both cases, you'll automatically get the `YOUR_SMITHERY_KEY` and `YOUR_SMITHERY_PROFILE` values from Smithery when you copy the URL with credentials. These are not your KeywordGraph API keys. You can use the KeywordGraph API server without the API for the first 70 calls. Then you can add it to your Smithery profile and it will automatically connect to your account using the link above.
474
469
 
475
470
  ## Usage Examples
476
471
 
477
472
  Once installed, you can ask Claude to:
478
473
 
479
- - "Use InfraNodus to analyze this text and show me the main topics"
474
+ - "Use KeywordGraph to analyze this text and show me the main topics"
480
475
  - "Generate a knowledge graph from this document"
481
476
  - "Find content gaps in this article"
482
- - "Retrieve my existing graph called 'Research Notes' from InfraNodus"
477
+ - "Retrieve my existing graph called 'Research Notes' from KeywordGraph"
483
478
  - "What are the structural gaps in this text?"
484
479
  - "Identify the most influential concepts in this content"
485
480
 
@@ -527,7 +522,7 @@ Analyzes text and generates a knowledge graph.
527
522
 
528
523
  ### analyze_existing_graph_by_name
529
524
 
530
- Retrieves and analyzes an existing graph from your InfraNodus account.
525
+ Retrieves and analyzes an existing graph from your KeywordGraph account.
531
526
 
532
527
  **Parameters:**
533
528
 
@@ -606,7 +601,7 @@ The `generate_seo_report` tool demonstrates this pattern with 6 major progress c
606
601
 
607
602
  ### API Key Issues
608
603
 
609
- - Get your API key at: [https://infranodus.com/api-access](https://infranodus.com/api-access)
604
+ - Get your API key at: [https://keywordgraph.com/api-access](https://keywordgraph.com/api-access)
610
605
  - Ensure the key is correctly set in the configuration
611
606
  - Check that the key has not expired
612
607
 
@@ -621,9 +616,9 @@ npm run build
621
616
 
622
617
  ## Resources
623
618
 
624
- - [InfraNodus Website](https://infranodus.com)
625
- - [InfraNodus MCP](https://infranodus.com/mcp)
626
- - [InfraNodus API Documentation](https://infranodus.com/api-access)
619
+ - [KeywordGraph Website](https://keywordgraph.com)
620
+ - [KeywordGraph MCP](https://keywordgraph.com/mcp)
621
+ - [KeywordGraph API Documentation](https://keywordgraph.com/api-access)
627
622
  - [MCP Protocol Documentation](https://modelcontextprotocol.io)
628
623
  - [Graph Theory Concepts](https://noduslabs.com/research/)
629
624
 
@@ -636,5 +631,5 @@ MIT
636
631
  For issues related to:
637
632
 
638
633
  - This MCP server: Open an issue in this repository
639
- - InfraNodus API: Contact support@infranodus.com
634
+ - KeywordGraph API: Contact support@keywordgraph.com
640
635
  - MCP Protocol: Visit the [MCP community](https://modelcontextprotocol.io)
@@ -1,54 +1,8 @@
1
1
  #!/usr/bin/env node
2
-
3
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
- import * as dotenv from 'dotenv';
5
- import createServer from '../dist/index.js';
6
-
7
- // Main function for CLI execution
8
- async function main() {
9
- // Load environment variables
10
- dotenv.config();
11
-
12
- const config = {
13
- apiKey: process.env.INFRANODUS_API_KEY || "",
14
- apiBase: process.env.INFRANODUS_API_BASE || "https://infranodus.com/api/v1",
15
- };
16
-
17
- // Validate config
18
- if (!config.apiKey) {
19
- console.error(
20
- "WARNING: Set INFRANODUS_API_KEY in environment variables to ensure you don't hit the rate limit"
21
- );
22
- }
23
-
24
- // Create server with config
25
- const server = createServer({ config });
26
-
27
- // Create STDIO transport
28
- const transport = new StdioServerTransport();
29
-
30
- // Handle graceful shutdown
31
- process.on("SIGINT", async () => {
32
- await server.close();
33
- process.exit(0);
34
- });
35
-
36
- process.on("SIGTERM", async () => {
37
- await server.close();
38
- process.exit(0);
39
- });
40
-
41
- try {
42
- await server.connect(transport);
43
- // Server is running - no console output to avoid protocol interference
44
- } catch (error) {
45
- console.error("ERROR: MCP server failed to connect", error);
46
- process.exit(1);
47
- }
48
- }
49
-
50
- // Run the main function
51
- main().catch((error) => {
52
- console.error("ERROR: Fatal error of MCP server", error);
53
- process.exit(1);
54
- });
2
+ // Brand-specific entry for the published `infranodus-mcp-server` package.
3
+ // Bakes in BRAND so `npx infranodus-mcp-server` runs as InfraNodus without
4
+ // the caller needing to set any env var. An explicit BRAND still wins.
5
+ // NOTE: must use dynamic import — a static import would be hoisted and run
6
+ // before this assignment, so brand.js would read BRAND too early.
7
+ process.env.BRAND ||= "infranodus";
8
+ await import("./mcp-server.js");
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ // Brand-specific entry for the published `keywordgraph-mcp-server` package.
3
+ // Bakes in BRAND so `npx keywordgraph-mcp-server` runs as KeywordGraph without
4
+ // the caller needing to set any env var. An explicit BRAND still wins.
5
+ // NOTE: must use dynamic import — a static import would be hoisted and run
6
+ // before this assignment, so brand.js would read BRAND too early.
7
+ process.env.BRAND ||= "keywordgraph";
8
+ await import("./mcp-server.js");