InfraNodus CLI Skill for OpenClaw


The InfraNodus CLI skill (infranodus-cli) is a comprehensive reference that gives OpenClaw, Claude Code, Cursor, or any LLM client access to the full InfraNodus MCP server tool catalog via MCPorter.

It covers text network analysis, knowledge graph generation, content gap detection, SEO/GEO optimization, structured memory, text comparison, and GraphRAG retrieval. The skill accepts plain text, URLs (including YouTube video transcription), and existing InfraNodus graphs.

Download infranodus-cli.zip OpenClaw Setup Guide

Install the Skill

Via OpenClaw Chat (recommended)

Run in the OpenClaw chat (replace the version number with the latest one):

install this skill to the `skills` folder: https://github.com/infranodus/skills/releases/download/v1.0.6/infranodus-cli.zip

This may not work in a sandboxed environment, in which case you can proceed with the manual installation below.

Manual Installation

Download infranodus-cli.zip and copy it to the OpenClaw skills folder:

cp infranodus-cli.zip ~/.openclaw/skills/infranodus-cli.zip
unzip ~/.openclaw/skills/infranodus-cli.zip -d ~/.openclaw/skills/infranodus-cli

For a specific project or workspace, copy to that project's skills folder instead. For instance, if you'd like the skill only to be available in a specific workspace:

cp infranodus-cli.zip ~/.openclaw/workspaces/skills/infranodus-cli.zip
unzip ~/.openclaw/workspace/skills/infranodus-cli.zip -d ~/.openclaw/workspace/skills/infranodus-cli

Setup & Authentication

The skill requires MCPorter installed and an InfraNodus API key. Two authentication options:

Option 1: API Key (recommended for headless / automated setups)

Set the environment variable directly in OpenClaw's interface: go to Settings > Skills > Worksspace Skills > and add the InfraNodus API key.

OpenClaw environment variable

You can also add the key manually in the OpenClaw config file:

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

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


Note, that this setup will only work in non-sandboxed environments. For sandboxed environment, you'll either need to provide your InfraNodus API key directly in the chat (less secure) or additionally add it to the `sandbox` environment scope in the `~/.openclaw/openclaw.json` config file like this:

"sandbox": {
	"mode": "all",
	"workspaceAccess": "rw",
	"scope": "session",
	"docker": {
		"image": "openclaw-sandbox-mcporter:latest",
		"network": "bridge",
		"binds": [
			"/Users/dmt/Software/Second Brain:/mnt/Obsidian/Second Brain:rw",
			"/Users/dmt/Dropbox/Research:/mnt/Dropbox/Research:ro"
		],
		"dangerouslyAllowExternalBindSources": true,
		"env": {			
			"INFRANODUS_API_KEY": "YOUR_INFRANODUS_API_KEY"		
		}			
	}
}

OpenClaw maps apiKey to the INFRANODUS_API_KEY env var automatically. 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 2: OAuth (interactive browser login)

# Add the server 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

Note: OAuth only works in non-sandboxed environments. For sandboxed setups, use the API key approach or add the key in OpenClaw's Skills settings as an environment parameter.



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

Once the skill is installed, OpenClaw will automatically call the right tool based on your prompt. You can also call tools manually:

# 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).

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+.

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.

OpenClaw Skill Metadata

The skill registers with OpenClaw using the following metadata, which defines its dependencies and auto-install behavior:

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)"

This means OpenClaw will automatically check for mcporter and offer to install it if missing. The INFRANODUS_API_KEY environment variable is required and can be set via OpenClaw's skill settings or ~/.openclaw/openclaw.json.