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
| Tool | Purpose |
|---|---|
generate_knowledge_graph | Full graph: clusters, gaps, concepts, relations, diversity. includeGraph: true for full structure. |
create_knowledge_graph | Same as above but saves to InfraNodus. Requires graphName. |
analyze_text | General analysis with clusters, gaps, concepts, and statements. |
analyze_existing_graph_by_name | Analyze an already-saved graph by name. |
generate_topical_clusters | Compact extraction of main topical clusters only. |
generate_content_gaps | Underdeveloped areas between clusters. |
generate_contextual_hint | Structural summary for LLM context / GraphRAG augmentation. |
Ideation & Development
| Tool | Purpose |
|---|---|
generate_research_questions | Questions bridging content gaps. useSeveralGaps: true for diversity. |
generate_research_ideas | Ideas to develop the text. shouldTranscend: true for wider discourse. |
develop_text_tool | Combined: gap ideas + latent topics + conceptual bridges. transcendDiscourse: true for outside-the-box thinking. |
develop_latent_topics | Underdeveloped topics with development ideas. requestMode: "transcend". |
develop_conceptual_bridges | High-influence bridging concepts linking clusters to other contexts. |
optimize_text_structure | Bias/coherence analysis with improvement suggestions. |
Memory (Knowledge Graph Memory)
| Tool | Purpose |
|---|---|
memory_add_relations | Save structured memories as knowledge graphs with [[wikilink]] entities. |
memory_get_relations | Retrieve by entity. Pass memoryContextName, optional entity (e.g. [[god]]). |
Retrieval & Search
| Tool | Purpose |
|---|---|
retrieve_from_knowledge_base | GraphRAG retrieval. graphName + prompt; optional includeGraphSummary: true. |
list_graphs | List graphs. Filter by nameContains, type. |
search | Search all graphs for a term. Returns graph IDs. |
fetch | Fetch full statements found by search using the returned id. |
Text Comparison
All take a contexts array: [{text: "..."}, {url: "..."}, {graphName: "..."}]
| Tool | Purpose |
|---|---|
generate_difference_graph_from_text | What's in contexts 2..N but NOT in context 1. |
generate_overlap_from_texts | Topics common to all contexts. |
merged_graph_from_texts | Merge multiple sources into one overview graph. |
SEO / GEO / LLMO
| Tool | Purpose |
|---|---|
analyze_google_search_results | Graph of Google results. includeSearchResults: true for URLs. |
analyze_related_search_queries | "People also search for" with volume. Set importLanguage, importCountry. |
search_queries_vs_search_results | High-volume queries not covered by results — content opportunities. |
generate_seo_report | Full 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), orgraphName. - Comparison tools use a
contextsarray of{text},{url}, or{graphName}objects (min 2). - Diversity stats in responses: biased (too concentrated) → focused → diversified (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.