infranodus — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited infranodus (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Text network analysis and knowledge graph tools via the InfraNodus MCP server.
Set INFRANODUS_API_KEY via OpenClaw config or environment variable. The key is a Bearer token from your InfraNodus account.
OpenClaw config (~/.openclaw/openclaw.json):
{
"skills": {
"entries": {
"infranodus": {
"enabled": true,
"apiKey": "YOUR_INFRANODUS_API_KEY"
}
}
}
}OpenClaw maps apiKey → INFRANODUS_API_KEY env var automatically.
Or set the env var directly: export INFRANODUS_API_KEY=your_key_here
When an API key is available, add the server without OAuth:
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# 1. 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
# 2. Authenticate (opens browser)
mcporter auth infranodusTo re-authenticate: mcporter auth infranodus --reset
mcporter list — server must show as healthytest -n "$INFRANODUS_API_KEY" — or OAuth tokens must be cachedmcporter auth infranodus or check your API keymcporter list infranodusUsers need an InfraNodus account at https://infranodus.com.
mcporter call infranodus.<tool_name> key=value
# or with JSON args:
mcporter call infranodus.<tool_name> --args '{"text": "...", "includeGraph": true}'All analysis tools accept either text (plain text) or url (web page / YouTube video URL). Many also accept an existing InfraNodus graph via graphName.
| Tool | Purpose |
|---|---|
generate_knowledge_graph | Full graph analysis: clusters, gaps, concepts, relations, diversity stats. Set includeGraph: true for full structure. |
create_knowledge_graph | Same as above but saves the graph to InfraNodus. Requires graphName. |
analyze_text | General text analysis with clusters, gaps, concepts, and statements. Focus on analysis results rather than graph structure. |
analyze_existing_graph_by_name | Analyze an already-saved InfraNodus graph by name. |
generate_topical_clusters | Compact extraction of main topical clusters only. |
generate_content_gaps | Identify underdeveloped areas between topical clusters. |
generate_contextual_hint | Structural summary for LLM context (useful for GraphRAG augmentation). |
| Tool | Purpose |
|---|---|
generate_research_questions | Generate research questions bridging content gaps. Use useSeveralGaps: true for diversity. |
generate_research_ideas | Generate ideas to develop the text. Use shouldTranscend: true to connect to wider discourse. |
develop_text_tool | Combined pipeline: content gap ideas + latent topic ideas + conceptual bridges. Use transcendDiscourse: true for outside-the-box thinking. |
develop_latent_topics | Find underdeveloped topics and generate ideas to develop them. requestMode: "transcend" for wider context. |
develop_conceptual_bridges | Find high-influence bridging concepts and generate ideas linking discourse to other contexts. |
optimize_text_structure | Analyze bias/coherence and suggest improvements. responseType: "transcend" for broader perspective. |
| Tool | Purpose |
|---|---|
memory_add_relations | Save structured memories as knowledge graphs with [[wikilink]] entities. Use modifyAnalyzedText: "extractEntitiesOnly" for entity-focused graphs. |
memory_get_relations | Retrieve memories by entity from a graph. Pass memoryContextName and optional entity (e.g. [[god]]). |
| Tool | Purpose |
|---|---|
retrieve_from_knowledge_base | GraphRAG retrieval from a saved graph. Pass graphName, prompt, and optionally includeGraphSummary: true. |
list_graphs | List graphs in user's account. Filter by nameContains, type, etc. |
search | Search all graphs for statements containing a term. Returns graph IDs. |
fetch | Fetch specific statements found by search using the returned id. |
| Tool | Purpose |
|---|---|
generate_difference_graph_from_text | Show what's missing in the first context that exists in the others. Pass contexts array of {text}, {url}, or {graphName} objects. |
generate_overlap_from_texts | Find common topics across all provided contexts. |
merged_graph_from_texts | Merge multiple sources into one graph for overview analysis. |
| Tool | Purpose |
|---|---|
analyze_google_search_results | Graph of Google search results for queries. Use includeSearchResults: true for URLs. |
analyze_related_search_queries | Analyze "people also search for" data with search volume. Set importLanguage and importCountry. |
search_queries_vs_search_results | Find queries with high volume not covered by current results — content opportunities. Use includeSearchQueries: true for volume data. |
generate_seo_report | Full SEO report combining all SEO tools. Use contentToExtract: "header tags" for header analysis. Timeout: 90s+ |
Input flexibility: Most tools accept text, url (including YouTube), or reference an existing graphName.
Comparison tools use a contexts array: [{text: "..."}, {url: "..."}, {graphName: "..."}]
Diversity stats in responses indicate text focus: biased → too concentrated, focused → somewhat concentrated, diversified → balanced, dispersed → too scattered.
Content gaps show under-connected topic clusters — opportunities for new ideas or content.
Conceptual gateways are high-influence bridging nodes linking different topic clusters.
For detailed response schemas and examples, see references/tool-examples.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.