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

**Category:** 🔬 Research  
**Repository:** https://github.com/infranodus/mcp-server-infranodus  
**GitHub Stars:** 105  
**npm Downloads (last month):** 1659  
**Views:** 6  
**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 infranodus-mcp-server-infranodus does

InfraNodus MCP Server brings InfraNodus knowledge graphs and text-network analysis into MCP-compatible AI workflows. It turns unstructured material into concepts, entities, relations, clusters, and graph-level statistics that an assistant can inspect and use for further reasoning.

The server supports both one-off analysis and persistent knowledge work. Agents can generate a graph from text, save a graph to an InfraNodus account, retrieve information from an existing graph, or add and read relations in InfraNodus memory. Saved graphs can be listed, searched, analyzed, and used as context for generated responses.

## How it works

Inputs can include plain text, URLs, YouTube transcripts or results, Google search results, related search queries, LLM-generated descriptions, and existing InfraNodus graphs. Analysis identifies main concepts and topical clusters, then uses their relationships to expose content gaps, underdeveloped areas, and possible connections between ideas.

Several tools accept an existing graph by name, allowing a workflow to build on previously stored material rather than reprocess the original source. Graphs can also be compared or combined: the server can find overlap between texts, identify relations present in one source but absent from another, and merge multiple sources into a graph with shared clusters and gaps.

The ontology workflow accepts exactly one of a topic prompt, a long text, or a source graph. It can frame an ontology around a software codebase or produce a procedural digest from an existing project graph. Ontologies may be saved as InfraNodus graphs or returned for one-off use, with chunking for longer inputs.

## Tools and capabilities

- Generate and save knowledge graphs from text, URLs, statements, or other supported sources.
- Extract entities, concepts, relations, topical clusters, structural gaps, and graph statistics.
- Create reasoning ontologies for topics, codebases, or procedural project digests.
- List, search, fetch, inspect, and retrieve context from saved InfraNodus graphs.
- Add relations to memory and query stored relations for a concept or entity.
- Generate content gaps, research questions, research ideas, latent topics, and conceptual bridges.
- Produce contextual hints, expert responses, and GraphRAG-style retrieval results from graph content.
- Compare, merge, and analyze text collections, search results, YouTube results, and LLM responses.
- Evaluate text structure or model reasoning for bias, focus, diversity, and coherence, then suggest directions for improvement.

## Limitations and notes

Graph persistence depends on InfraNodus account graphs and memory. Tools that operate on saved material generally require a graph name or another identifier for the existing graph. The ontology tool has distinct source and mode parameters, including separate handling for codebase analysis and procedural digests. Some operations can return substantial graph and analytics data, so the available options to omit graph or analytics output are useful when keeping agent context smaller.

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

