MCPorter: InfraNodus MCP Server Reference


This page is a complete reference for using the InfraNodus MCP server via MCPorter — covering installation, authentication, the full tool catalog, and usage examples. Use it as a skill file for AI agents or as a quick-start for CLI workflows.

InfraNodus provides text network analysis, knowledge graphs, content gap detection, SEO/GEO optimization, structured memory, and text comparison. It accepts plain text, URLs (including YouTube video transcription), and existing InfraNodus graphs.

Install MCPorter

Check if MCPorter is already available:

mcporter list

If not installed:

# Global install (recommended)
npm install -g mcporter

# Or run without installing
npx mcporter list

Authentication

You need an InfraNodus account and API key from infranodus.com/api-access. Two options:

Option A — API Key (headless / automated)

Set the environment variable directly:

export INFRANODUS_API_KEY=your_key_here

Or via OpenClaw config (~/.openclaw/openclaw.json):

{
  "skills": {
    "entries": {
      "infranodus": {
        "enabled": true,
        "apiKey": "YOUR_INFRANODUS_API_KEY"
      }
    }
  }
}

Then add the server:

mcporter config add infranodus \
  --url https://mcp.infranodus.com/ \
  --transport http \
  --header "accept=application/json, text/event-stream" \
  --header "Authorization=Bearer $INFRANODUS_API_KEY" \
  --scope home

Option B — OAuth (interactive browser login)

# Add with OAuth
mcporter config add infranodus \
  --url https://mcp.infranodus.com/ \
  --transport http \
  --auth oauth \
  --header "accept=application/json, text/event-stream" \
  --scope home

# Authenticate (opens browser)
mcporter auth infranodus

To re-authenticate: mcporter auth infranodus --reset

Verify

mcporter list

Expected output:

mcporter 0.7.3 β€” Listing 1 server(s) (per-server timeout: 30s)
- infranodus (27 tools, 0.8s)
βœ” Listed 1 server (1 healthy).

Calling Tools

# Inline key=value arguments
mcporter call infranodus.<tool_name> key=value

# JSON arguments
mcporter call infranodus.<tool_name> --args '{"text": "...", "includeGraph": true}'

All analysis tools accept text (plain string), url (webpage or YouTube video), or graphName (existing InfraNodus graph). To see the full schema:

mcporter list infranodus --schema

Tool Catalog

Analysis & Knowledge Graphs

ToolPurpose
generate_knowledge_graphFull graph: clusters, gaps, concepts, relations, diversity. includeGraph: true for full structure.
create_knowledge_graphSame as above but saves to InfraNodus. Requires graphName.
analyze_textGeneral analysis with clusters, gaps, concepts, and statements.
analyze_existing_graph_by_nameAnalyze an already-saved graph by name.
generate_topical_clustersCompact extraction of main topical clusters only.
generate_content_gapsUnderdeveloped areas between clusters.
generate_contextual_hintStructural summary for LLM context / GraphRAG augmentation.

Ideation & Development

ToolPurpose
generate_research_questionsQuestions bridging content gaps. useSeveralGaps: true for diversity.
generate_research_ideasIdeas to develop the text. shouldTranscend: true for wider discourse.
develop_text_toolCombined: gap ideas + latent topics + conceptual bridges. transcendDiscourse: true for outside-the-box thinking.
develop_latent_topicsUnderdeveloped topics with development ideas. requestMode: "transcend".
develop_conceptual_bridgesHigh-influence bridging concepts linking clusters to other contexts.
optimize_text_structureBias/coherence analysis with improvement suggestions.

Memory (Knowledge Graph Memory)

ToolPurpose
memory_add_relationsSave structured memories as knowledge graphs with [[wikilink]] entities.
memory_get_relationsRetrieve by entity. Pass memoryContextName, optional entity (e.g. [[god]]).

Retrieval & Search

ToolPurpose
retrieve_from_knowledge_baseGraphRAG retrieval. graphName + prompt; optional includeGraphSummary: true.
list_graphsList graphs. Filter by nameContains, type.
searchSearch all graphs for a term. Returns graph IDs.
fetchFetch full statements found by search using the returned id.

Text Comparison

All take a contexts array: [{text: "..."}, {url: "..."}, {graphName: "..."}]

ToolPurpose
generate_difference_graph_from_textWhat's in contexts 2..N but NOT in context 1.
generate_overlap_from_textsTopics common to all contexts.
merged_graph_from_textsMerge multiple sources into one overview graph.

SEO / GEO / LLMO

ToolPurpose
analyze_google_search_resultsGraph of Google results. includeSearchResults: true for URLs.
analyze_related_search_queries"People also search for" with volume. Set importLanguage, importCountry.
search_queries_vs_search_resultsHigh-volume queries not covered by results — content opportunities.
generate_seo_reportFull SEO report combining all tools. Timeout: 90s+.

Quick Examples

Knowledge Graph

mcporter call infranodus.generate_knowledge_graph \
  --args '{"text": "God said, You shall not eat of the fruit...", "includeGraph": true}'

Returns statistics (modularity, diversity), contentGaps, mainTopicalClusters, mainConcepts, conceptualGateways, topRelations, knowledgeGraphByCluster.

Content Gaps

mcporter call infranodus.generate_content_gaps text="Your text here..."

Response:

{
  "contentGaps": [
    "Gap 1: 2. Edenic Growth (tree midst fruit) -> 3. Moral Awareness (knowing good evil)",
    "Gap 2: 1. Divine Consumption (eat god eye open) -> 2. Edenic Growth (tree midst fruit)"
  ]
}

Research Ideas (with transcendence)

mcporter call infranodus.generate_research_ideas \
  --args '{"text": "Your text...", "useSeveralGaps": true, "shouldTranscend": true}'

Save & Retrieve Memory

# Save
mcporter call infranodus.memory_add_relations \
  --args '{"graphName": "my_memory", "text": "Text with [[entities]]...", "modifyAnalyzedText": "extractEntitiesOnly"}'

# Retrieve
mcporter call infranodus.memory_get_relations \
  --args '{"memoryContextName": "my_memory", "entity": "[[god]]"}'

GraphRAG Retrieval

mcporter call infranodus.retrieve_from_knowledge_base \
  --args '{"graphName": "my_graph", "prompt": "search term", "includeGraphSummary": true}'

Compare Texts

mcporter call infranodus.generate_overlap_from_texts \
  --args '{"contexts": [{"text": "First text..."}, {"url": "https://example.com"}]}'

SEO Report

# Set a long timeout β€” this chains multiple Google API calls
mcporter call infranodus.generate_seo_report \
  --args '{"url": "https://example.com", "contentToExtract": "header tags"}'

Query from an Existing Graph

mcporter call infranodus.generate_content_gaps graphName="my-saved-graph"

Key Patterns

  • Input flexibility: most tools accept text, url (incl. YouTube), or graphName.
  • Comparison tools use a contexts array of {text}, {url}, or {graphName} objects (min 2).
  • Diversity stats in responses: biased (too concentrated) → focuseddiversified (balanced) → dispersed (too scattered).
  • Content gaps = under-connected topic clusters = opportunities for new ideas.
  • Conceptual gateways = high-influence bridging nodes linking different clusters.
  • AI models: tools that generate AI responses accept modelToUse: gpt-4o, gpt-4o-mini, gpt-5, gpt-5-mini, claude-sonnet-4, claude-opus-4.1, gemini-2.5-flash, gemini-2.5-flash-lite.
  • Entity detection: modifyAnalyzedText"none" (word co-occurrence), "detectEntities" (mix), "extractEntitiesOnly" (entity-only graph).

OpenClaw Configuration

If you're using OpenClaw, the InfraNodus skill is registered with the following metadata:

name: infranodus
homepage: https://infranodus.com
metadata:
  openclaw:
    emoji: "πŸ•ΈοΈ"
    requires:
      bins: ["mcporter"]
      env: ["INFRANODUS_API_KEY"]
    primaryEnv: INFRANODUS_API_KEY
    install:
      - id: mcporter
        kind: node
        package: mcporter
        bins: ["mcporter"]
        label: "Install mcporter (node)"

OpenClaw maps apiKey in ~/.openclaw/openclaw.json to the INFRANODUS_API_KEY environment variable automatically.