keywordgraph-mcp-server 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -89
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +2 -1
- package/dist/api/client.js.map +1 -1
- package/dist/config/brand.d.ts +13 -0
- package/dist/config/brand.d.ts.map +1 -1
- package/dist/config/brand.js +21 -0
- package/dist/config/brand.js.map +1 -1
- package/dist/http-server.js +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/resources/about.d.ts.map +1 -1
- package/dist/resources/about.js +7 -6
- package/dist/resources/about.js.map +1 -1
- package/dist/schemas/index.d.ts +46 -6
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +91 -20
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/analyzeLlmResults.d.ts +1 -1
- package/dist/tools/analyzeLlmResults.d.ts.map +1 -1
- package/dist/tools/analyzeLlmResults.js +46 -19
- package/dist/tools/analyzeLlmResults.js.map +1 -1
- package/dist/tools/generateOntologyGraph.d.ts +1 -1
- package/dist/tools/generateOntologyGraph.d.ts.map +1 -1
- package/dist/tools/generateOntologyGraph.js +44 -21
- package/dist/tools/generateOntologyGraph.js.map +1 -1
- package/dist/tools/generateYoutubeSearchResultsGraph.d.ts +42 -0
- package/dist/tools/generateYoutubeSearchResultsGraph.d.ts.map +1 -0
- package/dist/tools/generateYoutubeSearchResultsGraph.js +97 -0
- package/dist/tools/generateYoutubeSearchResultsGraph.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/transformers.d.ts +1 -1
- package/dist/utils/transformers.d.ts.map +1 -1
- package/dist/utils/transformers.js +7 -1
- package/dist/utils/transformers.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#
|
|
1
|
+
# InfraNodus MCP Server
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) server that integrates
|
|
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.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
|
|
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.
|
|
8
8
|
|
|
9
|
-

|
|
10
10
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
13
13
|
### You Can Use It To
|
|
14
14
|
|
|
15
|
-
- Connect your existing
|
|
15
|
+
- Connect your existing InfraNodus 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
|
|
@@ -28,7 +28,7 @@ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text
|
|
|
28
28
|
- Perform entity detection for cleaner graphs
|
|
29
29
|
|
|
30
30
|
2. **analyze_existing_graph_by_name**
|
|
31
|
-
- Retrieve and analyze existing graphs from your
|
|
31
|
+
- Retrieve and analyze existing graphs from your InfraNodus account
|
|
32
32
|
- Access previously saved analyses
|
|
33
33
|
- Export graph data with full statistics
|
|
34
34
|
|
|
@@ -55,15 +55,15 @@ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text
|
|
|
55
55
|
- Use it to augment prompts in your LLM workflows and AI assistants
|
|
56
56
|
|
|
57
57
|
7. **generate_research_questions**
|
|
58
|
-
- Generate research questions that bridge content gaps from text, URL, or an existing
|
|
58
|
+
- Generate research questions that bridge content gaps from text, URL, or an existing InfraNodus graph
|
|
59
59
|
- Use them as prompts in your LLM models and AI workflows
|
|
60
|
-
- Use any AI model (included in
|
|
60
|
+
- Use any AI model (included in InfraNodus API)
|
|
61
61
|
- Content gaps are identified based on topical clustering
|
|
62
62
|
|
|
63
63
|
8. **generate_research_ideas**
|
|
64
64
|
- Generate innovative research ideas based on content gaps identified in the text
|
|
65
65
|
- Get actionable ideas to improve the text and develop the discourse
|
|
66
|
-
- Use any AI model (included in
|
|
66
|
+
- Use any AI model (included in InfraNodus API)
|
|
67
67
|
- Ideas are generated from gaps between topical clusters
|
|
68
68
|
|
|
69
69
|
9. **optimize_text_structure**
|
|
@@ -74,21 +74,21 @@ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text
|
|
|
74
74
|
- Choose response type: response, idea, question, or transcend
|
|
75
75
|
|
|
76
76
|
10. **generate_responses_from_graph**
|
|
77
|
-
- Generate responses based on an existing
|
|
77
|
+
- Generate responses based on an existing InfraNodus graph
|
|
78
78
|
- Integrate them into your LLM workflows and AI assistants
|
|
79
|
-
- Use any AI model (included in
|
|
79
|
+
- Use any AI model (included in InfraNodus API)
|
|
80
80
|
- Use any prompt
|
|
81
81
|
|
|
82
82
|
11. **develop_conceptual_bridges**
|
|
83
83
|
- Analyze text and develop latent ideas based on concepts that connect this text to a broader discourse
|
|
84
84
|
- Discover hidden themes and patterns that link your text to wider contexts
|
|
85
|
-
- Use any AI model (included in
|
|
85
|
+
- Use any AI model (included in InfraNodus API)
|
|
86
86
|
- Generate insights that help develop the discourse
|
|
87
87
|
|
|
88
88
|
12. **develop_latent_topics**
|
|
89
89
|
- Analyze text and extract underdeveloped topics with ideas on how to develop them
|
|
90
90
|
- Identify topics that need more attention and elaboration
|
|
91
|
-
- Use any AI model (included in
|
|
91
|
+
- Use any AI model (included in InfraNodus API)
|
|
92
92
|
- Get actionable suggestions for content expansion
|
|
93
93
|
|
|
94
94
|
13. **develop_text_tool**
|
|
@@ -99,12 +99,12 @@ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text
|
|
|
99
99
|
- Finds content gaps for deeper exploration
|
|
100
100
|
|
|
101
101
|
14. **create_knowledge_graph**
|
|
102
|
-
- Create a knowledge graph in
|
|
103
|
-
- Use it to create a knowledge graph in
|
|
102
|
+
- Create a knowledge graph in InfraNodus from text and provide a link to it
|
|
103
|
+
- Use it to create a knowledge graph in InfraNodus from text
|
|
104
104
|
|
|
105
105
|
15. **generate_ontology_graph**
|
|
106
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
|
|
107
|
+
- Saved as a persistent InfraNodus 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
108
|
- `modelToUse` defaults to `claude-opus-4.6` for richer ontologies; pick `-mini`/`-lite` variants (or `gpt-4o-mini`) for faster, cheaper generation
|
|
109
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
110
|
|
|
@@ -131,47 +131,53 @@ KeywordGraph MCP Server enables LLM workflows and AI assistants to analyze text
|
|
|
131
131
|
- Generate a graph with keywords and topics for Google search results for a certain query
|
|
132
132
|
- Use it to understand the current informational supply (what people find)
|
|
133
133
|
|
|
134
|
-
21. **
|
|
134
|
+
21. **analyze_youtube_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
|
+
|
|
140
|
+
22. **analyze_related_search_queries**
|
|
135
141
|
- Generate a graph from the search queries suggested by Google for a certain query
|
|
136
142
|
- Use it to understand the current informational demand (what people are looking for)
|
|
137
143
|
|
|
138
|
-
|
|
144
|
+
23. **search_queries_vs_search_results**
|
|
139
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
|
|
140
146
|
- Use it to understand what people search for but don't yet find
|
|
141
147
|
|
|
142
|
-
|
|
148
|
+
24. **generate_seo_report**
|
|
143
149
|
- Analyze content for SEO optimization by comparing it with Google search results and search queries
|
|
144
150
|
- Identify content gaps and opportunities for better search visibility
|
|
145
151
|
- Get comprehensive analysis of what's in search results but not in your text
|
|
146
152
|
- Discover what people search for but don't find in current results
|
|
147
153
|
|
|
148
|
-
|
|
149
|
-
- Add relations to the
|
|
154
|
+
25. **memory_add_relations**
|
|
155
|
+
- Add relations to the InfraNodus memory from text
|
|
150
156
|
- Automatically detect entities or use [[wikilinks]] syntax to mark them
|
|
151
157
|
- Save memory to a specified graph name for future retrieval
|
|
152
158
|
- Support automatic entity extraction or manual entity marking
|
|
153
159
|
- Provide links to created memory graphs for easy access
|
|
154
160
|
|
|
155
|
-
|
|
156
|
-
- Retrieve relations from
|
|
161
|
+
26. **memory_get_relations**
|
|
162
|
+
- Retrieve relations from InfraNodus memory for specific entities
|
|
157
163
|
- Search for entity relations using [[wikilinks]] syntax
|
|
158
164
|
- Query specific memory contexts or search across all memory graphs
|
|
159
165
|
- Extract statements and relationships from stored knowledge graphs
|
|
160
166
|
- Support both entity-specific searches and full context retrieval
|
|
161
167
|
|
|
162
|
-
|
|
163
|
-
- Retrieve context from an existing
|
|
168
|
+
27. **retrieve_from_knowledge_base**
|
|
169
|
+
- Retrieve context from an existing InfraNodus knowledge graph using GraphRAG
|
|
164
170
|
- Query your knowledge base with a natural language prompt to get relevant statements
|
|
165
171
|
- Include graph summaries for quick overviews of the knowledge structure
|
|
166
172
|
- Optionally retrieve the full graph, statements, or extended analysis
|
|
167
173
|
- Ideal for augmenting LLM responses with domain-specific knowledge
|
|
168
174
|
|
|
169
|
-
|
|
170
|
-
- Search through existing
|
|
175
|
+
28. **search**
|
|
176
|
+
- Search through existing InfraNodus graphs
|
|
171
177
|
- Also use it to search through the public graphs of a specific user
|
|
172
178
|
- Compatible with ChatGPT Deep Research mode via Developer Mode > Connectors
|
|
173
179
|
|
|
174
|
-
|
|
180
|
+
29. **fetch**
|
|
175
181
|
- Fetch a specific search result for a graph
|
|
176
182
|
- Can be used in ChatGPT Deep Research mode via Developer Mode > Connectors
|
|
177
183
|
|
|
@@ -189,17 +195,17 @@ _More capabilites coming soon!_
|
|
|
189
195
|
|
|
190
196
|
## Knowledge Graph Memory Use Advice
|
|
191
197
|
|
|
192
|
-
|
|
198
|
+
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.
|
|
193
199
|
|
|
194
|
-
However, you can also easily use
|
|
200
|
+
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.
|
|
195
201
|
|
|
196
202
|
Specifically you can specify to always use a speciic knowlege graph for memories to store everything in one place:
|
|
197
203
|
|
|
198
204
|
```
|
|
199
|
-
Save all memories in the `my-memories` graph in
|
|
205
|
+
Save all memories in the `my-memories` graph in InfraNodus.
|
|
200
206
|
```
|
|
201
207
|
|
|
202
|
-
Or you can ask
|
|
208
|
+
Or you can ask InfraNodus to only save certain entities, e.g. for building social networks:
|
|
203
209
|
|
|
204
210
|
```
|
|
205
211
|
When generating entities, only extract people, companies, and organizations. Ignore everything else.
|
|
@@ -207,41 +213,41 @@ When generating entities, only extract people, companies, and organizations. Ign
|
|
|
207
213
|
|
|
208
214
|
## Installation
|
|
209
215
|
|
|
210
|
-
The easiest and the fastest way to launch the
|
|
216
|
+
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.
|
|
211
217
|
|
|
212
|
-
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 [
|
|
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 [InfraNodus API](https://infranodus.com/api).
|
|
213
219
|
|
|
214
|
-
Below we describe the two different ways to set up your
|
|
220
|
+
Below we describe the two different ways to set up your InfraNodus MCP server.
|
|
215
221
|
|
|
216
|
-
### 1. Easiest Setup:
|
|
222
|
+
### 1. Easiest Setup: InfraNodus MCP Server (via HTTP/SSE)
|
|
217
223
|
|
|
218
224
|
0. **Prerequisites**
|
|
219
225
|
|
|
220
|
-
- Create an account on [
|
|
226
|
+
- 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.
|
|
221
227
|
|
|
222
228
|
1. **Get the URL**
|
|
223
229
|
|
|
224
230
|
- We currently use the following URL for our MCP server deployed in our infrastructure:
|
|
225
231
|
|
|
226
232
|
```bash
|
|
227
|
-
https://mcp.
|
|
233
|
+
https://mcp.infranodus.com
|
|
228
234
|
```
|
|
229
235
|
|
|
230
|
-
2. **Add the MCP server URL to the Client Tool Where You Want to Use
|
|
236
|
+
2. **Add the MCP server URL to the Client Tool Where You Want to Use InfraNodus**
|
|
231
237
|
|
|
232
|
-
- 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
|
|
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 InfraNodus MCP hosted on it.
|
|
233
239
|
|
|
234
|
-
4. **Using
|
|
240
|
+
4. **Using InfraNodus Tools in Your Calls**
|
|
235
241
|
|
|
236
|
-
- To use
|
|
242
|
+
- 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")
|
|
237
243
|
|
|
238
|
-
- If your client is not using
|
|
244
|
+
- If your client is not using InfraNodus for some actions, add the instruction to use InfraNodus explicitly.
|
|
239
245
|
|
|
240
246
|
### 2. Manual Setup: via NPX
|
|
241
247
|
|
|
242
|
-
You can deploy the
|
|
248
|
+
You can deploy the InfraNodus server manually via `npx` — a package that allows to execute local and remote Node.Js packages on your computer.
|
|
243
249
|
|
|
244
|
-
The
|
|
250
|
+
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
|
|
245
251
|
|
|
246
252
|
#### For Claude Desktop / Cursor IDE:
|
|
247
253
|
|
|
@@ -250,11 +256,11 @@ Just add this in your Claude's configuration file (Settings > Developer > Edit C
|
|
|
250
256
|
```json
|
|
251
257
|
{
|
|
252
258
|
"mcpServers": {
|
|
253
|
-
"
|
|
259
|
+
"infranodus": {
|
|
254
260
|
"command": "npx",
|
|
255
|
-
"args": ["-y", "
|
|
261
|
+
"args": ["-y", "infranodus-mcp-server"],
|
|
256
262
|
"env": {
|
|
257
|
-
"
|
|
263
|
+
"INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
|
|
258
264
|
}
|
|
259
265
|
}
|
|
260
266
|
}
|
|
@@ -263,12 +269,12 @@ Just add this in your Claude's configuration file (Settings > Developer > Edit C
|
|
|
263
269
|
|
|
264
270
|
#### For Claude Code
|
|
265
271
|
|
|
266
|
-
To connect the
|
|
272
|
+
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:
|
|
267
273
|
|
|
268
274
|
```bash
|
|
269
|
-
claude mcp add
|
|
270
|
-
-- env
|
|
271
|
-
npx -y
|
|
275
|
+
claude mcp add infranodus -s user \
|
|
276
|
+
-- env INFRANODUS_API_KEY=YOUR_INRANODUS_KEY \
|
|
277
|
+
npx -y infranodus-mcp-server
|
|
272
278
|
```
|
|
273
279
|
|
|
274
280
|
### 3. Manual Setup: Launching MCP as a Local Server (for inspection & development)
|
|
@@ -276,13 +282,13 @@ claude mcp add keywordgraph -s user \
|
|
|
276
282
|
0. **Prerequisites**
|
|
277
283
|
|
|
278
284
|
- Node.js 18+ installed
|
|
279
|
-
-
|
|
285
|
+
- InfraNodus API key (get yours at [https://infranodus.com/api-access](https://infranodus.com/api-access))
|
|
280
286
|
|
|
281
287
|
1. **Clone and build the server:**
|
|
282
288
|
|
|
283
289
|
```bash
|
|
284
|
-
git clone https://github.com/yourusername/mcp-server-
|
|
285
|
-
cd mcp-server-
|
|
290
|
+
git clone https://github.com/yourusername/mcp-server-infranodus.git
|
|
291
|
+
cd mcp-server-infranodus
|
|
286
292
|
npm install
|
|
287
293
|
npm run build:inspect
|
|
288
294
|
npm run inspect
|
|
@@ -295,7 +301,7 @@ Note that `build:inspect` will generate the `dist/index.js` file which you will
|
|
|
295
301
|
Create a `.env` file in the project root:
|
|
296
302
|
|
|
297
303
|
```
|
|
298
|
-
|
|
304
|
+
INFRANODUS_API_KEY=your-api-key-here
|
|
299
305
|
```
|
|
300
306
|
|
|
301
307
|
3. **Inspect the MCP:**
|
|
@@ -312,18 +318,18 @@ Note that `build:inspect` will generate the `dist/index.js` file which you will
|
|
|
312
318
|
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
313
319
|
```
|
|
314
320
|
|
|
315
|
-
2. Add the
|
|
321
|
+
2. Add the InfraNodus server configuration:
|
|
316
322
|
|
|
317
323
|
a. remote launch via `npx`:
|
|
318
324
|
|
|
319
325
|
```json
|
|
320
326
|
{
|
|
321
327
|
"mcpServers": {
|
|
322
|
-
"
|
|
328
|
+
"infranodus": {
|
|
323
329
|
"command": "npx",
|
|
324
|
-
"args": ["-y", "
|
|
330
|
+
"args": ["-y", "infranodus-mcp-server"],
|
|
325
331
|
"env": {
|
|
326
|
-
"
|
|
332
|
+
"INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
|
|
327
333
|
}
|
|
328
334
|
}
|
|
329
335
|
}
|
|
@@ -335,18 +341,18 @@ b. launch this repo with `node`, specify the absolute path to the repo + `/dist/
|
|
|
335
341
|
```json
|
|
336
342
|
{
|
|
337
343
|
"mcpServers": {
|
|
338
|
-
"
|
|
344
|
+
"infranodus": {
|
|
339
345
|
"command": "node",
|
|
340
|
-
"args": ["/absolute/path/to/mcp-server-
|
|
346
|
+
"args": ["/absolute/path/to/mcp-server-infranodus/dist/index.js"],
|
|
341
347
|
"env": {
|
|
342
|
-
"
|
|
348
|
+
"INFRANODUS_API_KEY": "your-api-key-here"
|
|
343
349
|
}
|
|
344
350
|
}
|
|
345
351
|
}
|
|
346
352
|
}
|
|
347
353
|
```
|
|
348
354
|
|
|
349
|
-
**Note:** you can leave the `
|
|
355
|
+
**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.
|
|
350
356
|
|
|
351
357
|
3. Restart Claude Desktop to load the new server.
|
|
352
358
|
|
|
@@ -358,18 +364,18 @@ b. launch this repo with `node`, specify the absolute path to the repo + `/dist/
|
|
|
358
364
|
%APPDATA%\Claude\claude_desktop_config.json
|
|
359
365
|
```
|
|
360
366
|
|
|
361
|
-
2. Add the
|
|
367
|
+
2. Add the InfraNodus server configuration:
|
|
362
368
|
|
|
363
369
|
a. remote launch via `npx`:
|
|
364
370
|
|
|
365
371
|
```json
|
|
366
372
|
{
|
|
367
373
|
"mcpServers": {
|
|
368
|
-
"
|
|
374
|
+
"infranodus": {
|
|
369
375
|
"command": "npx",
|
|
370
|
-
"args": ["-y", "
|
|
376
|
+
"args": ["-y", "infranodus-mcp-server"],
|
|
371
377
|
"env": {
|
|
372
|
-
"
|
|
378
|
+
"INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"
|
|
373
379
|
}
|
|
374
380
|
}
|
|
375
381
|
}
|
|
@@ -381,11 +387,11 @@ b. launch this repo with `node`:
|
|
|
381
387
|
```json
|
|
382
388
|
{
|
|
383
389
|
"mcpServers": {
|
|
384
|
-
"
|
|
390
|
+
"infranodus": {
|
|
385
391
|
"command": "node",
|
|
386
|
-
"args": ["C:\\path\\to\\mcp-server-
|
|
392
|
+
"args": ["C:\\path\\to\\mcp-server-infranodus\\dist\\index.js"],
|
|
387
393
|
"env": {
|
|
388
|
-
"
|
|
394
|
+
"INFRANODUS_API_KEY": "your-api-key-here"
|
|
389
395
|
}
|
|
390
396
|
}
|
|
391
397
|
}
|
|
@@ -401,26 +407,26 @@ b. launch this repo with `node`:
|
|
|
401
407
|
For other applications supporting MCP, use the following command to start the server via npx:
|
|
402
408
|
|
|
403
409
|
```bash
|
|
404
|
-
|
|
410
|
+
INFRANODUS_API_KEY=your-api-key npx -y infranodus-mcp-server
|
|
405
411
|
```
|
|
406
412
|
|
|
407
413
|
or locally
|
|
408
414
|
|
|
409
415
|
```bash
|
|
410
|
-
|
|
416
|
+
INFRANODUS_API_KEY=your-api-key node /path/to/mcp-server-infranodus/dist/index.js
|
|
411
417
|
```
|
|
412
418
|
|
|
413
419
|
The server communicates via stdio, so configure your application to run this command and communicate through standard input/output.
|
|
414
420
|
|
|
415
421
|
### Legacy Setup via Smithery
|
|
416
422
|
|
|
417
|
-
|
|
423
|
+
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.
|
|
418
424
|
|
|
419
425
|
- Create an account on [Smithery.Ai](https://smithery.ai/) (it's free and you can use your Google or GitHub login)
|
|
420
426
|
|
|
421
|
-
- Then go to the [Smithery
|
|
427
|
+
- 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.
|
|
422
428
|
|
|
423
|
-
- Go to [Smithery
|
|
429
|
+
- 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.
|
|
424
430
|
|
|
425
431
|
- You may need to get your separate Smithery API key and Smithery proile link to make this work.
|
|
426
432
|
|
|
@@ -429,9 +435,9 @@ KeywordGraph server is also available through Smithery: a repository of MCP serv
|
|
|
429
435
|
```json
|
|
430
436
|
// e.g. Cursor will access directly the server via Smithery
|
|
431
437
|
"mcpServers": {
|
|
432
|
-
"mcp-server-
|
|
438
|
+
"mcp-server-infranodus": {
|
|
433
439
|
"type": "http",
|
|
434
|
-
"url": "https://server.smithery.ai/@
|
|
440
|
+
"url": "https://server.smithery.ai/@infranodus/mcp-server-infranodus/mcp?api_key=YOUR_SMITHERY_KEY&profile=YOUR_SMITHERY_PROFILE",
|
|
435
441
|
"headers": {}
|
|
436
442
|
}
|
|
437
443
|
}
|
|
@@ -443,13 +449,13 @@ KeywordGraph server is also available through Smithery: a repository of MCP serv
|
|
|
443
449
|
// Claude uses a slightly different implementation
|
|
444
450
|
// Fot this, it launches the MCP server on your local machine
|
|
445
451
|
"mcpServers": {
|
|
446
|
-
"mcp-server-
|
|
452
|
+
"mcp-server-infranodus": {
|
|
447
453
|
"command": "npx",
|
|
448
454
|
"args": [
|
|
449
455
|
"-y",
|
|
450
456
|
"@smithery/cli@latest",
|
|
451
457
|
"run",
|
|
452
|
-
"@
|
|
458
|
+
"@infranodus/mcp-server-infranodus",
|
|
453
459
|
"--key",
|
|
454
460
|
"YOUR_SMITHERY_KEY",
|
|
455
461
|
"--profile",
|
|
@@ -459,16 +465,16 @@ KeywordGraph server is also available through Smithery: a repository of MCP serv
|
|
|
459
465
|
}
|
|
460
466
|
```
|
|
461
467
|
|
|
462
|
-
**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
|
|
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 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.
|
|
463
469
|
|
|
464
470
|
## Usage Examples
|
|
465
471
|
|
|
466
472
|
Once installed, you can ask Claude to:
|
|
467
473
|
|
|
468
|
-
- "Use
|
|
474
|
+
- "Use InfraNodus to analyze this text and show me the main topics"
|
|
469
475
|
- "Generate a knowledge graph from this document"
|
|
470
476
|
- "Find content gaps in this article"
|
|
471
|
-
- "Retrieve my existing graph called 'Research Notes' from
|
|
477
|
+
- "Retrieve my existing graph called 'Research Notes' from InfraNodus"
|
|
472
478
|
- "What are the structural gaps in this text?"
|
|
473
479
|
- "Identify the most influential concepts in this content"
|
|
474
480
|
|
|
@@ -516,7 +522,7 @@ Analyzes text and generates a knowledge graph.
|
|
|
516
522
|
|
|
517
523
|
### analyze_existing_graph_by_name
|
|
518
524
|
|
|
519
|
-
Retrieves and analyzes an existing graph from your
|
|
525
|
+
Retrieves and analyzes an existing graph from your InfraNodus account.
|
|
520
526
|
|
|
521
527
|
**Parameters:**
|
|
522
528
|
|
|
@@ -595,7 +601,7 @@ The `generate_seo_report` tool demonstrates this pattern with 6 major progress c
|
|
|
595
601
|
|
|
596
602
|
### API Key Issues
|
|
597
603
|
|
|
598
|
-
- Get your API key at: [https://
|
|
604
|
+
- Get your API key at: [https://infranodus.com/api-access](https://infranodus.com/api-access)
|
|
599
605
|
- Ensure the key is correctly set in the configuration
|
|
600
606
|
- Check that the key has not expired
|
|
601
607
|
|
|
@@ -610,9 +616,9 @@ npm run build
|
|
|
610
616
|
|
|
611
617
|
## Resources
|
|
612
618
|
|
|
613
|
-
- [
|
|
614
|
-
- [
|
|
615
|
-
- [
|
|
619
|
+
- [InfraNodus Website](https://infranodus.com)
|
|
620
|
+
- [InfraNodus MCP](https://infranodus.com/mcp)
|
|
621
|
+
- [InfraNodus API Documentation](https://infranodus.com/api-access)
|
|
616
622
|
- [MCP Protocol Documentation](https://modelcontextprotocol.io)
|
|
617
623
|
- [Graph Theory Concepts](https://noduslabs.com/research/)
|
|
618
624
|
|
|
@@ -625,5 +631,5 @@ MIT
|
|
|
625
631
|
For issues related to:
|
|
626
632
|
|
|
627
633
|
- This MCP server: Open an issue in this repository
|
|
628
|
-
-
|
|
634
|
+
- InfraNodus API: Contact support@infranodus.com
|
|
629
635
|
- MCP Protocol: Visit the [MCP community](https://modelcontextprotocol.io)
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,GAAE,MAAe,GACrB,OAAO,CAAC,aAAa,CAAC,CAgCxB"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { getConfig } from "./config-store.js";
|
|
2
|
+
import { brandSource } from "../config/brand.js";
|
|
2
3
|
export async function makeInfraNodusRequest(endpoint, body, method = "POST") {
|
|
3
4
|
try {
|
|
4
5
|
const config = getConfig();
|
|
5
|
-
const requestBody = { ...body, modal: "mcp_server" };
|
|
6
|
+
const requestBody = { ...body, modal: "mcp_server", source: brandSource() };
|
|
6
7
|
const response = await fetch(`${config.apiBase}${endpoint}`, {
|
|
7
8
|
method,
|
|
8
9
|
headers: {
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAAgB,EAChB,IAAS,EACT,SAAiB,MAAM;IAEvB,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE;YAC5D,MAAM;YACN,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;aACxC;YACD,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,iCAAiC;QACjC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,wBAAwB,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,0DAA0D;QAC1D,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC"}
|
package/dist/config/brand.d.ts
CHANGED
|
@@ -53,6 +53,19 @@ export declare const brand: BrandDef;
|
|
|
53
53
|
export declare function brandApiKey(): string;
|
|
54
54
|
/** API base for the active brand: brand-specific env var, else the brand default. */
|
|
55
55
|
export declare function brandApiBase(): string;
|
|
56
|
+
/**
|
|
57
|
+
* Per-instance source tag sent to the API (as `source`) so analytics can tell
|
|
58
|
+
* deploys apart. Brand alone is not enough: e.g. the ExaltGrowth and
|
|
59
|
+
* KeywordGraph apps both run BRAND=keywordgraph, so they share a brand but are
|
|
60
|
+
* distinct instances.
|
|
61
|
+
*
|
|
62
|
+
* Resolution order:
|
|
63
|
+
* 1. MCP_SOURCE — explicit per-deploy override (set in each fly.*.toml).
|
|
64
|
+
* 2. FLY_APP_NAME — auto-injected by Fly; the trailing `-mcp-server` is
|
|
65
|
+
* stripped so e.g. `exaltgrowth-mcp-server` → `exaltgrowth`.
|
|
66
|
+
* 3. brand.id — final fallback for local/npm/smithery runs.
|
|
67
|
+
*/
|
|
68
|
+
export declare function brandSource(): string;
|
|
56
69
|
/** Whether a tool (by its MCP `name`) is exposed for the active brand. */
|
|
57
70
|
export declare function isToolEnabled(name: string): boolean;
|
|
58
71
|
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/config/brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,cAAc,CAAC;AAEpD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,GAAG,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACF;AAsED,eAAO,MAAM,KAAK,EAAE,QAAyB,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAOpC;AAED,qFAAqF;AACrF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/config/brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,cAAc,CAAC;AAEpD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,GAAG,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACF;AAsED,eAAO,MAAM,KAAK,EAAE,QAAyB,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAOpC;AAED,qFAAqF;AACrF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
package/dist/config/brand.js
CHANGED
|
@@ -90,6 +90,27 @@ export function brandApiKey() {
|
|
|
90
90
|
export function brandApiBase() {
|
|
91
91
|
return process.env[`${brand.envPrefix}_API_BASE`] || brand.apiBase;
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Per-instance source tag sent to the API (as `source`) so analytics can tell
|
|
95
|
+
* deploys apart. Brand alone is not enough: e.g. the ExaltGrowth and
|
|
96
|
+
* KeywordGraph apps both run BRAND=keywordgraph, so they share a brand but are
|
|
97
|
+
* distinct instances.
|
|
98
|
+
*
|
|
99
|
+
* Resolution order:
|
|
100
|
+
* 1. MCP_SOURCE — explicit per-deploy override (set in each fly.*.toml).
|
|
101
|
+
* 2. FLY_APP_NAME — auto-injected by Fly; the trailing `-mcp-server` is
|
|
102
|
+
* stripped so e.g. `exaltgrowth-mcp-server` → `exaltgrowth`.
|
|
103
|
+
* 3. brand.id — final fallback for local/npm/smithery runs.
|
|
104
|
+
*/
|
|
105
|
+
export function brandSource() {
|
|
106
|
+
const explicit = process.env.MCP_SOURCE?.trim();
|
|
107
|
+
if (explicit)
|
|
108
|
+
return explicit;
|
|
109
|
+
const flyApp = process.env.FLY_APP_NAME?.trim();
|
|
110
|
+
if (flyApp)
|
|
111
|
+
return flyApp.replace(/-mcp-server$/, "");
|
|
112
|
+
return brand.id;
|
|
113
|
+
}
|
|
93
114
|
/** Whether a tool (by its MCP `name`) is exposed for the active brand. */
|
|
94
115
|
export function isToolEnabled(name) {
|
|
95
116
|
return !brand.excludedTools.includes(name);
|
package/dist/config/brand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/config/brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsCH,MAAM,MAAM,GAA8B;IACzC,UAAU,EAAE;QACX,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,uBAAuB;QACnC,aAAa,EAAE,EAAE;QACjB,GAAG,EAAE;YACJ,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,uBAAuB;YAChC,WAAW,EACV,iGAAiG;YAClG,UAAU,EAAE,yDAAyD;YACrE,QAAQ,EAAE;gBACT,KAAK;gBACL,wBAAwB;gBACxB,YAAY;gBACZ,iBAAiB;gBACjB,kBAAkB;aAClB;SACD;KACD;IACD,YAAY,EAAE;QACb,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,iCAAiC;QAC1C,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,yBAAyB;QACrC,kEAAkE;QAClE,yEAAyE;QACzE,aAAa,EAAE;YACd,0BAA0B;YAC1B,yBAAyB;YACzB,sBAAsB;YACtB,sBAAsB;YACtB,6BAA6B;YAC7B,yBAAyB;YACzB,+BAA+B;YAC/B,4BAA4B;YAC5B,uBAAuB;YACvB,0BAA0B;YAC1B,8BAA8B;SAC9B;QACD,GAAG,EAAE;YACJ,WAAW,EAAE,yBAAyB;YACtC,OAAO,EAAE,yBAAyB;YAClC,WAAW,EACV,mGAAmG;YACpG,UAAU,EAAE,6DAA6D;YACzE,QAAQ,EAAE;gBACT,KAAK;gBACL,wBAAwB;gBACxB,cAAc;gBACd,iBAAiB;gBACjB,kBAAkB;aAClB;SACD;KACD;CACD,CAAC;AAEF,SAAS,YAAY;IACpB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAA4B,CAAC;IACpD,OAAO,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAa,YAAY,EAAE,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,UAAU,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,EAAE,CACF,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;AACpE,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/config/brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsCH,MAAM,MAAM,GAA8B;IACzC,UAAU,EAAE;QACX,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,uBAAuB;QACnC,aAAa,EAAE,EAAE;QACjB,GAAG,EAAE;YACJ,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,uBAAuB;YAChC,WAAW,EACV,iGAAiG;YAClG,UAAU,EAAE,yDAAyD;YACrE,QAAQ,EAAE;gBACT,KAAK;gBACL,wBAAwB;gBACxB,YAAY;gBACZ,iBAAiB;gBACjB,kBAAkB;aAClB;SACD;KACD;IACD,YAAY,EAAE;QACb,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,iCAAiC;QAC1C,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,yBAAyB;QACrC,kEAAkE;QAClE,yEAAyE;QACzE,aAAa,EAAE;YACd,0BAA0B;YAC1B,yBAAyB;YACzB,sBAAsB;YACtB,sBAAsB;YACtB,6BAA6B;YAC7B,yBAAyB;YACzB,+BAA+B;YAC/B,4BAA4B;YAC5B,uBAAuB;YACvB,0BAA0B;YAC1B,8BAA8B;SAC9B;QACD,GAAG,EAAE;YACJ,WAAW,EAAE,yBAAyB;YACtC,OAAO,EAAE,yBAAyB;YAClC,WAAW,EACV,mGAAmG;YACpG,UAAU,EAAE,6DAA6D;YACzE,QAAQ,EAAE;gBACT,KAAK;gBACL,wBAAwB;gBACxB,cAAc;gBACd,iBAAiB;gBACjB,kBAAkB;aAClB;SACD;KACD;CACD,CAAC;AAEF,SAAS,YAAY;IACpB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAA4B,CAAC;IACpD,OAAO,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAa,YAAY,EAAE,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,UAAU,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,EAAE,CACF,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAEtD,OAAO,KAAK,CAAC,EAAE,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/http-server.js
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAgD7D,OAAO,EAAE,YAAY,EAAE,CAAC;AAGxB,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACpC,MAAM,GACN,EAAE;IACF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACrC;;;;;;;;;;;;;;;;;;;;;;GAyGA"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { configSchema, serverInfo } from "./config/index.js";
|
|
4
|
-
import { brand, brandApiKey, brandApiBase, isToolEnabled } from "./config/brand.js";
|
|
5
|
-
import { generateKnowledgeGraphTool, createKnowledgeGraphTool, generateOntologyGraphTool, analyzeLlmResultsTool, addMemoryTool, getMemoryTool, analyzeExistingGraphTool, analyzeTextTool, generateContentGapsTool, generateTopicalClustersTool, generateResearchQuestionsTool, generateResearchIdeasTool, generateResponsesFromGraphTool, generateContextualHintTool, retrieveContextForPromptFromGraphTool, developConceptualBridgesTool, developLatentTopicsTool, optimizeTextStructureTool, listGraphsTool, searchExistingGraphsTool, searchExistingGraphsFetchTool, generateOverlapGraphFromTextsTool, generateMergedGraphFromTextsTool, generateDifferenceGraphFromTextsTool, generateGoogleSearchResultsGraphTool, generateGoogleSearchQueriesGraphTool, generateGoogleResultsVsQueriesGraphTool, generateSEOGraphTool, developTextTool, } from "./tools/index.js";
|
|
4
|
+
import { brand, brandApiKey, brandApiBase, isToolEnabled, } from "./config/brand.js";
|
|
5
|
+
import { generateKnowledgeGraphTool, createKnowledgeGraphTool, generateOntologyGraphTool, analyzeLlmResultsTool, addMemoryTool, getMemoryTool, analyzeExistingGraphTool, analyzeTextTool, generateContentGapsTool, generateTopicalClustersTool, generateResearchQuestionsTool, generateResearchIdeasTool, generateResponsesFromGraphTool, generateContextualHintTool, retrieveContextForPromptFromGraphTool, developConceptualBridgesTool, developLatentTopicsTool, optimizeTextStructureTool, listGraphsTool, searchExistingGraphsTool, searchExistingGraphsFetchTool, generateOverlapGraphFromTextsTool, generateMergedGraphFromTextsTool, generateDifferenceGraphFromTextsTool, generateGoogleSearchResultsGraphTool, generateYoutubeSearchResultsGraphTool, generateGoogleSearchQueriesGraphTool, generateGoogleResultsVsQueriesGraphTool, generateSEOGraphTool, developTextTool, } from "./tools/index.js";
|
|
6
6
|
import { aboutResource } from "./resources/about.js";
|
|
7
7
|
import { llmsTxtResource, llmsFullTxtResource } from "./resources/llms-txt.js";
|
|
8
8
|
import { prompts } from "./prompts/index.js";
|
|
@@ -36,7 +36,6 @@ export default function createServer({ config, }) {
|
|
|
36
36
|
generateKnowledgeGraphTool,
|
|
37
37
|
createKnowledgeGraphTool,
|
|
38
38
|
generateOntologyGraphTool,
|
|
39
|
-
analyzeLlmResultsTool,
|
|
40
39
|
addMemoryTool,
|
|
41
40
|
getMemoryTool,
|
|
42
41
|
analyzeExistingGraphTool,
|
|
@@ -59,8 +58,10 @@ export default function createServer({ config, }) {
|
|
|
59
58
|
generateMergedGraphFromTextsTool,
|
|
60
59
|
generateDifferenceGraphFromTextsTool,
|
|
61
60
|
generateGoogleSearchResultsGraphTool,
|
|
61
|
+
generateYoutubeSearchResultsGraphTool,
|
|
62
62
|
generateGoogleSearchQueriesGraphTool,
|
|
63
63
|
generateGoogleResultsVsQueriesGraphTool,
|
|
64
|
+
analyzeLlmResultsTool,
|
|
64
65
|
generateSEOGraphTool,
|
|
65
66
|
];
|
|
66
67
|
// Register tools enabled for the active brand
|