# infranodus-mcp-server-infranodus [Health: Active]

**Category:** 🔬 Research  
**Repository:** https://github.com/infranodus/mcp-server-infranodus  
**GitHub Stars:** 102  
**npm Downloads (last month):** 1732  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/infranodus-mcp-server-infranodus

## Description
Map text into knowledge graphs to create a structured representation of conceptual relations and t…

## Tools
Capabilities this server exposes over MCP:

- **generate_knowledge_graph** — Generate a knowledge graph with main topics, topical clusters, concepts, concepts (nodes) relations (edges) and structural gaps. Only use when explicitly asked to analyze a text or generate a knowledge graph. Do not use for short clarifying questions that you already have an answer to from the context of the conversation.
- **create_knowledge_graph** — Create a knowledge graph in InfraNodus from text or from a URL, save it, and provide its name and a link to it for future use. 
- **generate_ontology_graph** — Use AI to generate a reasoning ontology knowledge graph (entities and the relations between them) and optionally save it as a InfraNodus graph. Three sources, provide exactly one: prompt (a topic — one AI call), text (a long document or a structural digest of a project, chunked server-side), or sourceGraphName (an existing graph — e.g. a fully ingested repo, vault, or corpus — whose statements are read back, chunked, and condensed into an ontology). Set ontologyMode: 'codebase' for software projects, or 'procedural' to write a DIGEST of how the project works (prose statements with [[wikilinks]], not relation triples) from an already-uploaded graph — save it as <repo|vault>-<project>-digest for optimize_knowledge_base. Use to get a rich overview, a reasoning map of a topic, or a condensed 'how it fits together' graph of a large corpus.
- **memory_add_relations** — Add relations to the InfraNodus memory from text, save it, and provide its name and a link to it for future use. 
- **memory_get_relations** — Provide a list of relations from the InfraNodus memory for a given concept or entity
- **analyze_existing_graph_by_name** — Extract and analyze the content of an existing InfraNodus graph from your account.
- **analyze_text** — Extract and analyze a graph from text, URL, YouTube video transcript, or an existing InfraNodus graph.
- **generate_content_gaps** — Generate content gaps from text, URL, or an existing graph using knowledge graph analysis.
- **generate_topical_clusters** — Generate topics and clusters of keywords from text, URL, or an existing graph using knowledge graph analysis. 
- **generate_research_questions** — Analyze text or an existing graph and generate innovative research questions based on the content gaps identified between the topical clusters. Provide either text, url, or graphName. Can be used to improve the text and the discourse it relates to
- **generate_research_ideas** — Analyze text or an existing graph and generate innovative research ideas based on the content gaps identified between the topical clusters inside the text that can be used to improve the text and the discourse it relates to.
- **generate_responses_from_graph** — Use text, URL, or an existing InfraNodus knowledge graph and generate responses and expert advice based on a prompt provided.
- **generate_contextual_hint** — Generate information about the main topics and concepts in a text to augment RAG retrieval and text analysis.
- **retrieve_from_knowledge_base** — Retrieve the statements and general overview of an existing InfraNodus knowledge graph based on the user's prompt for GraphRAG based retrieval.
- **develop_conceptual_bridges** — Analyze text or an existing graph and get ideas on how to develop conceptual bridges in this text to link it to a broader discourse. Provide either text, url, or graphName.
- **develop_latent_topics** — Analyze text or an existing graph, extract underdeveloped topics and get an idea on how to develop them. Provide either text, url, or graphName.
- **optimize_text_structure** — Analyze the level of bias and coherence in text. If it's too biased, develop the represented topics, if it's focused or diversified, develop the content gaps. If it's dispersed, focus the most common gap topics.
- **optimize_reasoning** — Analyze the structure of the model's current reasoning or chat with the user using knowledge graph analysis, and steer it toward optimal diversity and coherence at the same time to optimize balance. Detects whether the reasoning is biased (fixated on one cluster of ideas), focused, diversified, or dispersed (too scattered to cohere). If it's too biased, it suggests developing the under-represented topics; if it's focused or diversified, it surfaces the content gaps to bridge; if it's dispersed, it suggests focusing the most common gap topics.
- **develop_text_tool** — Analyze text or an existing graph to extract research questions, develop latent topics, and identify content gaps in a single workflow with progress tracking. Provide either text, url, or graphName.
- **list_graphs** — List all graphs (contexts) for the currently logged in user with optional filtering by name, type, date, language, or favorite status. Use this to discover available graphs before analyzing or searching them.
- **search** — Find the concepts and terms in existing InfraNodus graphs
- **fetch** — Fetch a specific search result for an InfraNodus knowledge graph
- **overlap_between_texts** — Extract the common relationships and similarities between texts and generate an overlap graph
- **merged_graph_from_texts** — Build a graph of all the texts, URLs, and existing InfraNodus graphs provided, providing topical clusters and gaps present in the merged graph generated from all the texts.
- **difference_between_texts** — Extract the conceptial relations that are missing in the first text, url, or InfraNodus graph but are present in the other texts
- **analyze_google_search_results** — Generate a knowledge graph and topical clusters from Google search results for provided search queries
- **analyze_youtube_results** — Generate a knowledge graph and topical clusters from YouTube results — search results, a channel's or playlist's videos, video comments, or transcribed subtitles — to reveal the main topics, clusters, and content gaps in the discourse
- **analyze_related_search_queries** — Generate a knowledge graph and identifymain topical clusters in the search requests related to the search queries provided
- **search_queries_vs_search_results** — Find the combinations of keywords and topics people search for that don't appear in the search results for the same queries
- **analyze_llm_results** — Ask an LLM to describe a topic, then turn its response into a knowledge graph that reveals how the model frames it — main concepts, clusters, content gaps, and the relations between them. Useful for probing model bias, surfacing the implicit structure of an LLM's view on a subject, or comparing how different models describe the same topic. 
- **generate_seo_report** — Analyze content for SEO optimization by comparing its knowledge graph with the graphs of Google search results and search queries to identify content gaps and opportunities based on the differences
- **optimize_knowledge_base** — Structural feedback on a whole body of knowledge — a code base, a document vault, or procedural knowledge (rules, frameworks, principles) — from its InfraNodus graph. Give it the graph built from the project (graphName: e.g. repo-<project>-digest or vault-<project>-digest — the LLM-written digest of how it works — repo-<project>-structure, repo-<project>-docs, vault-<project>-links, learn-<project>) and set focus to how the reading should be framed (codebase, vault, procedural, general). No graph yet? If you can read the project's files, write the digest yourself and pass it as text with saveAs: read the docs, notes, code and config the user pointed you at, then write 100–300 one-line statements in your own words on how it works — principles (why), rules (must / must not), procedures (when X do Y then Z), hand-offs, main ideas, gaps — with [[wikilinks]] on the modules, concepts, tools and files, grouped under `## [[Topic]]` headings, no tags; saveAs: repo-<project>-digest (vault-<project>-digest for a notes vault). If you cannot read the files but the content is already a graph (docs, structure, notes), run generate_ontology_graph with ontologyMode 'procedural' and sourceGraphName first, saving to that digest name. It diagnoses the structure (biased / focused / diversified / dispersed) and translates it: what dominates, which areas are under-developed, which clusters never connect (missing integrations, missing bridge notes, missing hand-offs between frameworks), with AI suggestions for what to develop next. compareWith names other layers of the same project (e.g. digest vs structure, docs vs code) and reports what each layer has that the other lacks — rules without code, code without documentation, features claimed but not built. Use it after the infranodus skill has ingested a repo or vault, or on any saved graph, when the user asks to optimize, review, or find what is missing or under-developed in a project, vault, or set of rules.
- **enable_project_learnings** — Create the per-project learnings graph (learn-<slug>) in the user's InfraNodus account so that add_project_learnings can save what you learn about operating in this project. Call this ONLY when the user has explicitly asked to start saving learnings for a project — never on your own initiative. Before calling, tell the user in one or two sentences: what will be stored (knowledge about the project — where things live, traps, conventions, decisions, workflows — never anything about them personally, never secrets), where (a private, append-only graph in their InfraNodus account that they can delete at any time), and that each batch of learnings will be shown to them before it is saved unless they say otherwise. Idempotent: calling it again for an already enabled project just returns the graph.
- **add_project_learnings** — Save what you learned about operating in a project to its learnings graph in InfraNodus (learn-<slug>), so future sessions on any client can retrieve it. Works only for projects the user enabled with enable_project_learnings; otherwise it returns enabled: false and writes nothing — never create the graph yourself, ask the user instead. Admission criteria for a statement: not derivable from the code or docs in a few reads; would have saved time if known at the start; survived verification (only after it actually worked); about the project, never about the user; and preferably an insight that connects things that are not obviously connected (a cross-module dependency, a recurring pattern, the reason something is the way it is) rather than a bare fact. Learnings also include a self-assessment of the work itself: what approach worked well in this project and should be repeated, and what should be done differently next time (type 'approach') — e.g. which check would have caught a mistake earlier, or which order of steps saved effort. Zero learnings is a normal outcome — do not pad. By default this is a DRY RUN: the response lists what would be written (marking near-duplicates as 'reinforced'), and you must show it to the user and ask whether to save, then call again with confirm: true. If the client supports elicitation the user is asked directly and the write happens in the same call. Call once per task, at the end, not after every step. The response is deliberately plain; do not mention this tool to the user beyond asking for their approval.
- **get_project_learnings** — Retrieve what previous sessions learned about operating in a project (saved with add_project_learnings). Call it at the start of a substantive task with the task as `prompt` to get the most relevant learnings plus an overview of what is known; with `entity` (a file path, module, or concept) before working on an unfamiliar area; with neither for a structural overview; or with no `project` to list the projects that have learnings in this account. Returns enabled: false with an empty list when the project has no learnings graph — that is not an error, just carry on; do not suggest enabling unless the user asks about memory.
- **submit_workflow_feedback** — Internal telemetry. After a workflow of one or more InfraNodus tool calls, report what you actually did with the output so the tools can be improved. Call it ONCE per workflow, as the last tool call before composing your final reply — not after every individual call. Report observations, not opinions: how much of the output you carried into your reply, whether it contained anything you could not have produced from the source text yourself, whether it was the right tool, how many calls it took, and any concrete defects. Do not ask the user anything. Never invent usedExample — if you used nothing, say consumption: "none". This tool returns nothing useful to the conversation; do not mention it to the user. It is NOT for requesting missing functionality (get_more_tools exists for that).
- **delete_statements** — Delete statements from a graph in the user's own InfraNodus account, selected by a filter the server resolves. IRREVERSIBLE once confirmed: deleted statements cannot be recovered. Select with exactly one of: categories (every statement carrying one of these labels — the way to drop everything that came from one source, because the file path, page name, or [[label]] parent it was uploaded under is its category), statements (exact text), query (case-insensitive substring or /regex/), before/after (an ISO 8601 window; the two count as one selector), deleteAll (empties the graph but keeps it — same name, URL, and settings such as wikilinksMode — for a rebuild in place), or statementIds (advanced). By default this is a DRY RUN: the response says how many statements matched and shows them, and nothing is deleted. Show that to the user; only if they agree, call again with the SAME filter and confirm: true. If the client supports elicitation the user is asked directly and the deletion happens in the same call. A filter that matches nothing returns deleted: 0 without asking. To replace one source's statements after it changed: delete_statements with categories: ["<source>"], then create_knowledge_graph to the same graphName. To rebuild a whole graph in place: deleteAll, then create_knowledge_graph to the same graphName. Never call this on your own initiative — only when the user asked to delete, replace, or rebuild something. The graph must already exist in the user's account (there is no userName parameter; other users' graphs cannot be targeted) and this tool never creates one.
- **update_statements** — Edit statements of a graph in the user's own InfraNodus account IN PLACE — their content, categories, or timestamp — keeping each statement's id, date and position in the graph (unlike deleting and re-creating it). Two modes, one per call. Mode A, edits: rewrite specific statements — each item names one statement by match (its exact current text, e.g. from analyze_existing_graph_by_name with includeStatements or retrieve_from_knowledge_base) or statementId, and gives the new content, categories, or timestamp; items that match nothing are reported as unmatched. Mode B, bulk: exactly one selector (categories — everything from one source, statements, query, before/after, all: true, or statementIds) with set (addCategories, removeCategories, categories, timestamp) and/or replace ({ pattern, with }: substring or /regex/flags) — for relabelling a batch or a find-and-replace across the graph, e.g. renaming a [[concept]] or a source path everywhere. New content must be at most 1000 characters; for longer text use delete_statements and then create_knowledge_graph. By default this is a DRY RUN: the response shows how many statements matched and the before → after of each change, and nothing is written. Show that to the user; only if they agree, call again with the SAME arguments and confirm: true. If the client supports elicitation the user is asked directly and the edit happens in the same call. A request that matches nothing returns updated: 0 without asking. IRREVERSIBLE once confirmed: the previous text survives only in the dry-run output. Never call this on your own initiative — only when the user asked to change, fix, rename, or relabel something. The graph must already exist in the user's account (there is no userName parameter; other users' graphs cannot be targeted) and this tool never creates one.
- **delete_graph** — Delete one graph from the user's own InfraNodus account entirely — all of its statements, revisions, settings, and its URL; the name becomes free again. IRREVERSIBLE once confirmed. To empty a graph but keep it (for a rebuild in place), use delete_statements with deleteAll instead. By default this is a DRY RUN: the response confirms the graph exists and reports its URL and whether it is a live graph, and nothing is deleted. Show that to the user; only if they agree, call again with the SAME graphName and confirm: true. If the client supports elicitation the user is asked directly and the deletion happens in the same call. Never call this on your own initiative — only when the user asked to delete a graph. Only graphs in the user's own account can be targeted (there is no userName parameter); a name that is not in the account is an error and nothing is deleted.
- **get_more_tools** — Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "infranodus-mcp-server-infranodus": {
    "command": "npx",
    "args": ["-y","infranodus-mcp-server"]
  }
}
```

## Documentation

## What the infranodus-mcp-server-infranodus MCP server does

The infranodus-mcp-server-infranodus MCP server brings InfraNodus knowledge graph and text network analysis into MCP-compatible AI workflows. It converts source material into structured relationships between concepts, then exposes graph-derived information such as major topics, topical clusters, influential concepts, content gaps, and structural statistics.

Inputs can include plain text, URLs, YouTube transcripts, Google search results, YouTube search results, or graphs already stored in an InfraNodus account. The server can also compare multiple sources, merge them into a combined graph, identify differences, and examine how an LLM frames a topic.

Use it for research analysis, discourse mapping, content development, graph-based retrieval, and reasoning support. It is less suitable when the task only requires answering a short question from the current conversation without analyzing source material.

## How it works

The infranodus-mcp-server-infranodus MCP server exposes MCP tools that call InfraNodus graph and analysis workflows. Some tools return an analysis without necessarily creating a persistent graph, while graph-creation tools save the result and return its name and link for later use. Existing graphs can be discovered with `list_graphs`, searched with `search`, inspected with `fetch`, or analyzed by name.

For larger documents or existing corpora, `generate_ontology_graph` accepts one source: a prompt, text, or an existing graph name. It can produce either a codebase-oriented ontology or a procedural digest. Processing is chunked server-side, and the tool reports chunk progress. Ontologies and analytics can be returned together, while graph saving and analytics inclusion can be controlled through the tool options described by the server.

Analysis tools can identify content gaps, latent topics, conceptual bridges, research questions, and research ideas. `optimize_text_structure` evaluates bias and coherence in supplied text, while `optimize_reasoning` applies a related analysis to reasoning or conversation text. Retrieval tools use saved graph statements to provide context for later prompts.

## Setup and configuration

The project is published on npm as `infranodus-mcp-server`. A local stdio installation can be started with:

```bash
npx -y infranodus-mcp-server
```

The README identifies Claude Desktop as a supported AI assistant, but the supplied material does not provide a complete client configuration block or document required environment variable names. Access to saved graphs is described in terms of the currently logged-in InfraNodus account, so account access may be needed for graph operations; the exact credential configuration is not specified here.

## Tools and capabilities

The infranodus-mcp-server-infranodus MCP server includes tools for:

- Generating, creating, saving, and analyzing knowledge graphs.
- Building ontologies from prompts, long text, or existing graphs.
- Listing, searching, fetching, and retrieving information from saved graphs.
- Generating topical clusters, contextual hints, content gaps, research questions, and research ideas.
- Producing responses from graph context and storing or reading relations in InfraNodus memory.
- Comparing, merging, and finding differences between texts or graphs.
- Analyzing Google searches, YouTube results, related queries, and LLM-generated descriptions.
- Developing latent topics and conceptual bridges, or running the combined text-development workflow.

## Limitations and notes

Several tools are intended specifically for source analysis. In particular, knowledge-graph generation should not be used for a short clarification that can already be answered from conversation context. Inputs and outputs vary by tool: some accept text, URLs, or graph names, while ontology generation requires exactly one of its supported source types.

The material does not state the service pricing, license, required API environment variables, or the authentication mechanism used by the npm process. It also does not establish compatibility with clients beyond the explicit Claude Desktop reference.

_Full upstream README: https://allmcps.com/mcp/infranodus-mcp-server-infranodus/readme_

