AIDEVELOPER TOOLS

Cognitive Warfare & PSYOPS MCP

Cognitive warfare and PSYOPS analysis for AI agents via the Model Context Protocol. This MCP server gives Claude, Cursor, Windsurf, and any MCP-compatible client access to 8 specialized tools that detect coordinated narrative operations, model belief propagation, optimize counter-narrative strategy, and forecast polarization phase transitions — all powered by 16 Apify data sources queried in parallel.

Try on Apify Store
$0.08per event
0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.08
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

detect-narrative-operationss
Estimated cost:$8.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
detect-narrative-operationsSIR-Hawkes narrative propagation detection$0.08
model-belief-dynamicsDeGroot belief dynamics with stubborn agents$0.06
optimize-counter-narrativeShiryaev-Roberts optimal stopping for counter-narrative timing$0.08
map-influence-topologySubmodular greedy influence maximization$0.06
attribute-narrative-causationRubin causal model with doubly robust estimation$0.08
simulate-memetic-evolutionPrice equation memetic fitness simulation$0.06
detect-cross-scale-coordinationWavelet packet multi-scale decomposition$0.06
forecast-polarization-phase-transitionHegselmann-Krause Potts model phase transition$0.10

Example: 100 events = $8.00 · 1,000 events = $80.00

Connect to your AI agent

Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

MCP Endpoint
https://ryanclinton--cognitive-warfare-psyops-mcp.apify.actor/mcp
Claude Desktop Config
{
  "mcpServers": {
    "cognitive-warfare-psyops-mcp": {
      "url": "https://ryanclinton--cognitive-warfare-psyops-mcp.apify.actor/mcp"
    }
  }
}

Documentation

Cognitive warfare and PSYOPS analysis for AI agents via the Model Context Protocol. This MCP server gives Claude, Cursor, Windsurf, and any MCP-compatible client access to 8 specialized tools that detect coordinated narrative operations, model belief propagation, optimize counter-narrative strategy, and forecast polarization phase transitions — all powered by 16 Apify data sources queried in parallel.

Each tool applies a distinct mathematical framework derived from epidemiology, evolutionary biology, statistical physics, and game theory. The result is a structured, quantitative analysis of information warfare that goes beyond keyword monitoring into causal attribution, topological network mapping, and memetic fitness modeling — built for STRATCOM analysts, platform integrity teams, counter-disinformation researchers, and intelligence-augmented AI agents.

What data does this MCP server access?

Data PointSourceCoverage
📡 Social media posts and engagementBluesky SocialReal-time Bluesky network
💬 Community discussions and trendsHacker NewsTech community discourse
📚 Encyclopedic context and edit historyWikipedia6M+ articles
🏛️ US federal regulatory activityFederal RegisterAll federal actions
🚨 International wanted personsInterpol Red NoticesGlobal notices
⚠️ Global sanctions and PEP watchlistsOpenSanctions100+ programs
🔄 Website content changesWebsite Change MonitorMedia and government sites
🕰️ Historical content evolutionWayback MachineWeb Archive snapshots
🌍 Country profiles and demographicsREST CountriesAll UN member states
🌪️ Global disaster and crisis eventsGDACS Disaster AlertsWorldwide coverage
📜 Congressional legislationCongress Bill TrackerCurrent sessions
🌩️ Weather events and crisis windowsNOAA WeatherUS and global
🛠️ Open-source tools and codeGitHub Repo SearchAll public repositories
📄 Policy documents (full text)Website Content to MarkdownAny webpage
🔍 DNS infrastructure recordsDNS LookupAny domain
📍 IP geolocation attributionIP GeolocationGlobal coverage

MCP Tools

ToolPriceDescription
detect_narrative_operations$0.050Detect coordinated narrative operations via coupled SIR-Hawkes epidemiological model. Classifies type (amplification/suppression/distortion/fabrication/polarization) with threat levels (LOW/MEDIUM/HIGH/CRITICAL).
model_belief_dynamics$0.045Model belief propagation via DeGroot social learning on influence networks. Returns eigenvector centrality, spectral gap (convergence rate), polarization index, and belief cluster structure.
optimize_counter_narrative$0.055Optimize counter-narrative strategy via Bayesian Stackelberg game. Returns optimal intervention actions, CUSUM/Shiryaev-Roberts timing alarms, and Stackelberg equilibrium payoffs.
map_influence_topology$0.040Map influence network topology via submodular greedy influence maximization and persistent homology. Returns Betti numbers, echo chamber count, fragmentation index, and optimal influence seeds.
attribute_narrative_causation$0.045Attribute narrative effects to specific actors via doubly-robust causal inference. Returns ATE, propensity scores, Rosenbaum sensitivity analysis, and ranked causal actors.
simulate_memetic_evolution$0.050Simulate narrative variant competition via Price equation evolutionary dynamics. Returns fitness landscape, selection vs transmission decomposition, and dominant variant trajectory.
detect_cross_scale_coordination$0.045Detect coordination patterns across individual/group/network/population scales via Haar wavelet packet decomposition. Returns cross-scale coherence matrix and dominant coordination signals.
forecast_polarization_phase_transition$0.050Forecast polarization phase transitions via q-state Potts model. Returns order parameter, critical temperature, susceptibility, regime (CONSENSUS/PLURALISM/POLARIZED/FRAGMENTED), and irreversibility risk.

Why use this MCP server for narrative intelligence?

Traditional social listening tools count mentions and measure sentiment. They cannot tell you whether a campaign is coordinated, which actors are causally responsible for a belief shift, how far a population is from an irreversible polarization transition, or what the optimal intervention timing would be against a modeled adversary.

This server provides the quantitative frameworks that analysts in STRATCOM, platform integrity, and counter-disinformation research already use — SIR epidemic modeling, Bayesian game theory, topological data analysis, evolutionary dynamics — delivered as MCP tools that an AI agent can call directly. No infrastructure to manage. No data pipeline to build. Query 16 data sources in parallel and receive a structured analytical output in a single tool call.

Key platform advantages:

  • Standby mode — the server stays warm between calls; no cold start latency for time-sensitive operations
  • API access — trigger any tool from Python, JavaScript, or any HTTP client with your Apify token
  • Spending limits — each tool call checks your event charge limit and stops gracefully if reached
  • 16 parallel data sources — social, regulatory, sanctions, infrastructure, geopolitical, and archival data in a single call
  • Structured JSON output — every tool returns a typed result ready for downstream agent reasoning

Features

  • Coupled SIR-Hawkes model — infection rate in the SIR compartmental model is modulated by Hawkes self-exciting point process intensity λ(t) = μ + Σ α·exp(-β(t-tᵢ)), enabling detection of coordinated amplification campaigns that would appear organic to simpler models
  • DeGroot social learning with stubborn agents — iterative belief update x_i(t+1) = λ_i·b_i + (1-λ_i)·Σ(w_ij·x_j(t)) where λ_i is stubbornness (0 = fully susceptible, 1 = immovable), with eigenvector centrality and spectral gap computation
  • Bayesian Stackelberg game (BSSE via multiple-LP) — leader (defender) commits to mixed strategy; follower (adversary) best-responds given beliefs; optimal timing via Shiryaev-Roberts statistic R_n = (1+R_{n-1})·LR_n and CUSUM S_n = max(0, S_{n-1}+log(LR_n))
  • Submodular greedy influence maximization — Independent Cascade model with Monte Carlo simulation and (1-1/e) approximation guarantee for finding optimal influence seeds
  • Persistent homology (Vietoris-Rips filtration) — Betti numbers β₀ (connected components = fragmentation), β₁ (1-cycles = echo chambers), β₂ (voids = higher-order structure) computed via Union-Find on semantic simplicial complexes
  • Doubly-robust causal inference (Rubin causal model) — combines propensity score weighting (inverse probability) with outcome regression; consistent if either model is correctly specified; Rosenbaum sensitivity analysis quantifies hidden bias needed to invalidate conclusions
  • Price equation evolutionary dynamics — decomposes fitness change into selection differential Cov(w,z)/w̄ and transmission bias E(w·Δz)/w̄; replicator dynamics with mutation for frequency evolution across narrative variants
  • Haar wavelet packet decomposition — approximation a[k]=(x[2k]+x[2k+1])/√2 and detail d[k]=(x[2k]-x[2k+1])/√2 at hourly-tactical through weekly-strategic scales; cross-scale coherence reveals hierarchical coordination invisible at any single scale
  • Hegselmann-Krause bounded confidence + q-state Potts model — Hamiltonian H = -J·Σδ(σᵢ,σⱼ) with critical temperature T_c = J/ln(1+√q); spontaneous symmetry breaking below T_c signals irreversible radicalization
  • Five operation type classifiers — amplification, suppression, distortion, fabrication, polarization — each with coordination score and four-tier threat level
  • Four regime classifiers — CONSENSUS, PLURALISM, POLARIZED, FRAGMENTED — derived from order parameter (magnetization) and susceptibility
  • Network reproduction number — reports R₀ for narrative spread across the multiplex social-geopolitical network
  • Infrastructure attribution — DNS and IP geolocation data feeds directly into causal attribution for narrative source identification
  • Seeded PRNG for reproducibility — mulberry32 algorithm ensures deterministic scoring given identical inputs

Use cases for cognitive warfare intelligence

Government STRATCOM analysis

Strategic Communications teams need early warning of coordinated narrative operations before they reach saturation. Use detect_narrative_operations to classify incoming campaigns by operation type and threat level, then feed the network reproduction number into forecast_polarization_phase_transition to assess whether the target population is approaching an irreversible tipping point. The structured output integrates directly into existing STRATCOM workflows and reporting formats.

Counter-disinformation strategy

Counter-disinformation practitioners face a game-theoretic problem: intervening too early amplifies the original narrative; intervening too late allows it to saturate. optimize_counter_narrative solves this via Bayesian Stackelberg equilibrium — the server models the adversary's likely best-responses to each defender action and returns optimal timing via CUSUM and Shiryaev-Roberts alarms. The output includes Stackelberg payoffs for both attacker and defender, enabling cost-benefit analysis of intervention options.

Social media platform integrity

Platform trust and safety teams need to detect coordinated inauthentic behavior at scale. detect_cross_scale_coordination runs Haar wavelet decomposition across hourly through weekly time scales simultaneously — revealing bot networks and state-sponsored campaigns whose coordination signatures span tactical (hourly posting rhythms) and strategic (weekly narrative arc) scales at once. map_influence_topology identifies echo chambers via Betti number β₁ (1-cycles in the semantic simplicial complex) and returns the optimal influence seeds for counter-messaging deployment.

Academic information warfare research

Researchers studying information ecosystems can use model_belief_dynamics to quantify how stubbornness and network structure interact to produce consensus or polarization, and simulate_memetic_evolution to model how competing narrative variants compete for audience share. The Price equation decomposition into selection differential and transmission bias provides a theoretically grounded framework for publishing quantitative results.

Crisis communication vulnerability assessment

During fast-moving crises (natural disasters, public health events, geopolitical incidents), populations are most vulnerable to narrative exploitation. forecast_polarization_phase_transition integrates GDACS disaster alerts and NOAA weather data alongside social signals to measure how close a population is to a critical phase transition. The irreversibility risk score flags when a window is closing for effective intervention.

Attribution and causal forensics

Attribution is the hardest problem in information warfare. attribute_narrative_causation applies the Rubin causal model with doubly-robust estimation — combining propensity score weighting with outcome regression so the estimate is consistent if either model is correctly specified. Rosenbaum sensitivity analysis provides a defensible answer to the question: "How strong would hidden confounding have to be to invalidate this attribution?"

How to connect this MCP server

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cognitive-warfare-psyops": {
      "url": "https://cognitive-warfare-psyops-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

Cursor / Windsurf / Cline

Add to your MCP settings file:

{
  "mcpServers": {
    "cognitive-warfare-psyops": {
      "url": "https://cognitive-warfare-psyops-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

Programmatic (HTTP / cURL)

curl -X POST "https://cognitive-warfare-psyops-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "detect_narrative_operations",
      "arguments": {
        "query": "NATO disinformation Eastern Europe election",
        "maxResults": 30
      }
    },
    "id": 1
  }'

Tool input parameters

All tools share the same two input parameters:

ParameterTypeRequiredDefaultDescription
querystringYesThe narrative, topic, campaign, or threat vector to analyze. Natural language. Examples in each tool description.
maxResultsnumberNo30Maximum results per data source (range: 5–100). Higher values produce richer networks but increase response time.

Input tips

  • Write specific, targeted queries — "Russian election interference Baltic states 2024" returns a more meaningful network than "disinformation". The query is passed directly to all 16 data sources, so precision pays.
  • Start with maxResults 20-30 — this covers the most relevant content from each source. Increase to 50+ only for comprehensive network builds.
  • Use detect_narrative_operations first — it produces the broadest threat picture. Chain the threat level output into targeted calls to attribute_narrative_causation or optimize_counter_narrative for follow-on analysis.
  • Set a spending limit on your Apify run — each tool call charges the configured event price. The server checks your limit before executing and returns a graceful error if reached.

Output examples

detect_narrative_operations

{
  "operationCount": 4,
  "totalThreatScore": 0.71,
  "networkReproductionNumber": 1.34,
  "peakIntensityTime": 1711065600,
  "nodeCount": 87,
  "edgeCount": 214,
  "operations": [
    {
      "clusterId": 0,
      "members": ["actor_bluesky_0041", "actor_bluesky_0093", "actor_hn_0017"],
      "operationType": "amplification",
      "coordinationScore": 0.82,
      "threatLevel": "HIGH",
      "hawkesIntensities": [
        {
          "nodeId": "actor_bluesky_0041",
          "baseRate": 0.12,
          "selfExcitation": 0.44,
          "currentIntensity": 0.61,
          "predictedEvents24h": 14
        }
      ],
      "sirStates": [
        {
          "nodeId": "actor_bluesky_0041",
          "susceptible": 0.23,
          "infected": 0.61,
          "recovered": 0.16,
          "reproductionNumber": 1.41
        }
      ]
    }
  ]
}

forecast_polarization_phase_transition

{
  "regime": "POLARIZED",
  "orderParameter": 0.67,
  "criticalTemperature": 0.81,
  "currentTemperature": 0.74,
  "susceptibility": 2.31,
  "phaseTransitionDistance": 0.07,
  "irreversibilityRisk": 0.78,
  "hegselmannKrauseClusters": 3,
  "clusterDistribution": [
    { "opinion": 0.14, "fraction": 0.31 },
    { "opinion": 0.51, "fraction": 0.22 },
    { "opinion": 0.87, "fraction": 0.47 }
  ],
  "nodeCount": 94
}

optimize_counter_narrative

{
  "stackelbergEquilibrium": {
    "leaderPayoff": 0.61,
    "followerPayoff": 0.31
  },
  "optimalInterventionTime": 1711112400,
  "cusumAlarm": true,
  "shiryaevRobertsAlarm": true,
  "beliefWeightedResponse": 0.54,
  "nodeCount": 87,
  "leaderActions": [
    {
      "actionId": "action_0",
      "type": "counter_narrative",
      "targetNarrative": "narrative_bluesky_0041",
      "expectedPayoff": 0.61,
      "cost": 0.22,
      "optimalTiming": 1711112400,
      "shiryaevRobertsStatistic": 3.14,
      "cusumStatistic": 2.77
    }
  ]
}

Output fields reference

detect_narrative_operations

FieldTypeDescription
operationCountnumberTotal coordinated operations detected
totalThreatScorenumberAggregate threat score [0–1]
networkReproductionNumbernumberR₀ for narrative spread across the full network
peakIntensityTimenumberUnix timestamp of predicted peak Hawkes intensity
nodeCountnumberTotal nodes in the narrative network
edgeCountnumberTotal edges in the narrative network
operations[].clusterIdnumberCluster identifier
operations[].membersstring[]Node IDs belonging to this operation cluster
operations[].operationTypestringamplification / suppression / distortion / fabrication / polarization
operations[].coordinationScorenumberCoordination score [0–1] from Hawkes clustering
operations[].threatLevelstringLOW / MEDIUM / HIGH / CRITICAL
operations[].hawkesIntensities[].baseRatenumberBackground event rate μ
operations[].hawkesIntensities[].selfExcitationnumberSelf-excitation parameter α
operations[].hawkesIntensities[].currentIntensitynumberCurrent λ(t)
operations[].hawkesIntensities[].predictedEvents24hnumberPredicted events in next 24 hours
operations[].sirStates[].susceptiblenumberFraction of audience susceptible
operations[].sirStates[].infectednumberFraction currently exposed to narrative
operations[].sirStates[].recoverednumberFraction who have processed and discarded narrative
operations[].sirStates[].reproductionNumbernumberNode-level R₀

model_belief_dynamics

FieldTypeDescription
convergenceIterationsnumberIterations until DeGroot convergence
spectralGapnumberConvergence rate (larger = faster)
polarizationIndexnumberBelief variance across network [0–1]
consensusBeliefnumber or nullFinal consensus belief if converged, null if polarized
clusterCountnumberNumber of belief clusters
clusters[].centroidnumberMean belief position of cluster
clusters[].membersstring[]Node IDs in cluster
states[].nodeIdstringNode identifier
states[].initialBeliefnumberStarting belief position [0–1]
states[].finalBeliefnumberConverged belief position [0–1]
states[].eigenvectorCentralitynumberInfluence centrality in belief network
states[].stubbornnessnumberλᵢ parameter (0 = susceptible, 1 = immovable)

map_influence_topology

FieldTypeDescription
totalInfluencenumberTotal reachability from greedy seed set
greedyGuaranteenumber(1-1/e) approximation bound
bettiNumbers.beta0numberConnected components (fragmentation metric)
bettiNumbers.beta1number1-cycles (echo chamber count)
bettiNumbers.beta2number2-voids (higher-order structure)
narrativeCoherencenumberOverall narrative coherence [0–1]
echoChamberCountnumberNumber of distinct echo chambers detected
fragmentationIndexnumberNetwork fragmentation score [0–1]
seeds[].nodeIdstringOptimal influence seed node
seeds[].marginalGainnumberMarginal influence gain from adding this seed
seeds[].cumulativeInfluencenumberTotal influence from seed set including this node
persistencePairs[].birthnumberTopological feature birth scale
persistencePairs[].deathnumberTopological feature death scale
persistencePairs[].dimensionnumberHomological dimension (0, 1, or 2)

attribute_narrative_causation

FieldTypeDescription
topCausalActorsstring[]Ranked list of causally responsible node IDs
totalCausalEffectnumberAggregate causal effect across all actors
robustnessScorenumberMean Rosenbaum gamma — minimum hidden bias needed to invalidate findings
effects[].treatmentNodestringNode ID of the attributed actor
effects[].atenumberAverage Treatment Effect estimate
effects[].propensityScorenumberPropensity score for this node
effects[].doublyRobustEstimatenumberDoubly-robust ATE estimate
effects[].rosenbaumGammanumberSensitivity parameter for this effect
effects[].confidenceInterval[number, number]95% CI for the ATE

simulate_memetic_evolution

FieldTypeDescription
dominantVariantstringID of the fittest narrative variant
meanFitnessnumberPopulation mean fitness w̄
fitnessVariancenumberVariance in fitness across variants
priceSelectionComponentnumberCov(w,z)/w̄ — contribution of selection to fitness change
priceTransmissionComponentnumberE(w·Δz)/w̄ — contribution of transmission bias/mutation
totalChangenumberΔz̄ — total fitness change per generation
generationsnumberGenerations modeled
variants[].variantIdstringNarrative variant identifier
variants[].fitnessnumberFitness score
variants[].frequencynumberCurrent population frequency
variants[].selectionDifferentialnumberSelection differential for this variant
variants[].transmissionFidelitynumberCopy fidelity (1 = perfect transmission)
variants[].mutationRatenumberPer-generation mutation rate

detect_cross_scale_coordination

FieldTypeDescription
dominantScalestringScale with highest coordination power
overallCoordinationnumberCross-scale coordination index [0–1]
scales[].scalestringScale label (individual/group/network/population)
scales[].periodHoursnumberCharacteristic period in hours
scales[].powernumberWavelet power at this scale
scales[].coherencenumberInternal coherence at this scale
scales[].phaseAlignmentnumberPhase alignment across nodes at this scale
crossScaleCoherencenumber[][]Coherence matrix between all scale pairs
coordinationSignals[].scaleAstringFirst scale in coordination pair
coordinationSignals[].scaleBstringSecond scale in coordination pair
coordinationSignals[].coherencenumberCoherence between scale A and B
coordinationSignals[].lagnumberPhase lag between scales

forecast_polarization_phase_transition

FieldTypeDescription
regimestringCONSENSUS / PLURALISM / POLARIZED / FRAGMENTED
orderParameternumberPotts magnetization
criticalTemperaturenumberT_c = J/ln(1+√q) from Potts model
currentTemperaturenumberEffective social temperature from interaction energy
susceptibilitynumberχ = d(m)/d(h) — sensitivity to perturbation
phaseTransitionDistancenumberDistance to critical temperature (positive = not yet critical)
irreversibilityRisknumberRisk of irreversible symmetry breaking [0–1]
hegselmannKrauseClustersnumberOpinion clusters from bounded-confidence dynamics
clusterDistribution[].opinionnumberMean opinion of cluster
clusterDistribution[].fractionnumberFraction of population in cluster

How much does it cost to use the Cognitive Warfare MCP?

Each tool call charges a fixed event price. Platform compute costs are included.

ToolPrice per call10 calls100 calls
detect_narrative_operations$0.050$0.50$5.00
model_belief_dynamics$0.045$0.45$4.50
optimize_counter_narrative$0.055$0.55$5.50
map_influence_topology$0.040$0.40$4.00
attribute_narrative_causation$0.045$0.45$4.50
simulate_memetic_evolution$0.050$0.50$5.00
detect_cross_scale_coordination$0.045$0.45$4.50
forecast_polarization_phase_transition$0.050$0.50$5.00

You can set a maximum spending limit per Apify run to control costs. The server checks this limit before executing each tool call and returns a graceful error if reached — no partial charges.

Apify's free plan includes $5 of monthly credits, enough for approximately 100 tool calls across all 8 tools. Paid plans start at $49/month. Most research workflows — a full analysis covering all 8 tools on a single topic — cost under $0.50.

How this MCP server works

Phase 1: Parallel data collection across 16 sources

Every tool call fires all 16 actor calls simultaneously via Promise.all. Bluesky and Hacker News are queried at full maxResults; Wikipedia, Federal Register, and website monitor at half; Interpol, REST Countries, GDACS, NOAA, website-to-markdown, DNS, and IP geolocation at one-third. This tiered allocation concentrates data retrieval where social and regulatory signals are densest while still covering infrastructure and geopolitical context. Each actor call has a 120-second timeout; failures return empty arrays and are logged without halting the run.

Phase 2: Narrative network construction

The 16 result sets are partitioned into eight semantic channels: social (Bluesky), news (Hacker News + Wikipedia), encyclopedic (Wikipedia), regulatory (Federal Register + Congress), sanctions (Interpol + OpenSanctions), archival (Website Monitor + Wayback Machine + Markdown), geopolitical (REST Countries + GDACS + NOAA), and infrastructure (GitHub + DNS + IP Geolocation). The buildNarrativeNetwork function converts these channels into a typed graph of NarrativeNode objects (each with belief, stubbornness, reach, activity, credibility, sanctioned flag, geoRegion, platform, and event timestamps) connected by NarrativeEdge objects typed as amplifies/opposes/references/coordinates with semantic similarity weights.

Phase 3: Algorithm execution

Each tool passes the same narrative network to a different scoring function from scoring.ts. The algorithms are self-contained implementations — no external ML APIs, no model calls. The Hawkes self-exciting process, DeGroot iteration, Price equation decomposition, Potts model Hamiltonian, and wavelet packet decomposition all run deterministically on the network structure. The seeded PRNG (mulberry32) ensures reproducibility: the same query and maxResults will produce the same network topology and the same analytical scores.

Phase 4: Typed output assembly

Each scoring function returns a typed result interface (e.g., NarrativeOperationsResult, BeliefDynamicsResult) which main.ts destructures into a flat JSON response with all fields documented in the output reference above. Results are returned directly in the MCP tool call response — no separate dataset fetch required.

Tips for best results

  1. Chain tools in sequence for complex investigations. Start with detect_narrative_operations to establish the threat picture and network topology. Use the operationType and threatLevel from that result to focus follow-on calls — optimize_counter_narrative if the operation is active, attribute_narrative_causation for forensic attribution, forecast_polarization_phase_transition if the threat level is HIGH or CRITICAL.

  2. Use maxResults: 50 for comprehensive network builds. The default of 30 covers the most prominent signals. For a full operational picture — especially when using map_influence_topology to find influence seeds — increasing to 50 produces a denser graph and more reliable Betti number computation.

  3. Read irreversibilityRisk as an urgency signal. Values above 0.70 in forecast_polarization_phase_transition indicate the population is within the critical window before spontaneous symmetry breaking. Combined with a CUSUM alarm from optimize_counter_narrative, this combination signals that intervention should be prioritized immediately.

  4. Interpret rosenbaumGamma carefully in causal attribution. A value of 2.0 means hidden confounding would have to double the odds of treatment assignment to invalidate the attribution. Values below 1.5 indicate the causal claim is fragile; values above 3.0 indicate a robust finding.

  5. Cross-reference dominantScale with operationType. If detect_cross_scale_coordination returns a dominant scale of individual but detect_narrative_operations flags a fabrication operation type, the campaign is operating through many small individual actors rather than a centralized amplifier — a different counter-strategy is required.

  6. Use priceSelectionComponent vs priceTransmissionComponent to diagnose narrative durability. A high selection component means the dominant narrative is winning because it is intrinsically more persuasive; a high transmission component means it is winning through superior distribution infrastructure. Counter-strategy differs: the first requires a better narrative; the second requires disrupting amplification channels.

  7. Set maxResults: 10 for rapid screening. A quick scan of a topic for CRITICAL threat levels costs $0.04–0.05 per tool and completes faster. Reserve high-volume calls for topics that warrant full analysis.

Combine with other Apify actors and MCP servers

Actor / MCP ServerHow to combine
Website Change MonitorPre-populate the archival channel with tracked site changes before running detect_narrative_operations for richer edit-war detection
Brand Narrative Intelligence MCPRun brand-level narrative monitoring in parallel; feed brand sentiment shifts into forecast_polarization_phase_transition queries
Corporate Political Exposure MCPCross-reference politically exposed persons from OpenSanctions with attribute_narrative_causation outputs for entity-level attribution
WHOIS Domain LookupEnrich DNS attribution results from detect_narrative_operations with domain registration and ownership history
OpenSanctions SearchRun targeted sanctions queries on node IDs flagged as top causal actors to cross-check state actor attribution
Website Content to MarkdownExtract full-text policy documents and feed them as seeded context into model_belief_dynamics queries
AI Model Governance MCPMonitor AI governance policy discourse and route topics where AI policy is a disinformation vector into this server's analysis pipeline

Limitations

  • Bluesky-only social data — the server does not access X/Twitter, Facebook, Telegram, or TikTok. Analysis of platforms with higher narrative warfare activity requires supplementing with platform-specific data sources.
  • No media content analysis — the server analyzes narrative patterns, coordination structures, and temporal signals. It does not detect deepfakes, synthetic audio, or manipulated images. Visual media analysis requires specialized tools.
  • Algorithm outputs are probabilistic frameworks, not ground truth — the mathematical models provide quantitative analytical frameworks. Results should be interpreted by domain experts. Model accuracy depends on the quantity and quality of data retrieved from the 16 sources for a given query.
  • 16 actors with 120-second timeout each — calls on obscure or low-coverage topics may return sparse data. When fewer than 10 nodes are constructed in the narrative network, Betti number computation and spectral gap estimates are less reliable.
  • No historical trend comparison — each tool call analyzes current data at query time. Longitudinal tracking requires scheduling repeated calls and comparing outputs externally.
  • Rate limits on underlying data sources — heavy concurrent use across many tool calls may encounter rate limiting from individual upstream actors. Staggering calls or using lower maxResults reduces this risk.
  • Regulatory and sanctions data is US/UN-centric — Federal Register and Congress Bills provide primarily US regulatory context. Analysis of non-US geopolitical narratives benefits from supplementing with region-specific sources.
  • Not designed for real-time streaming — the server is request-response, not a streaming pipeline. For continuous monitoring, schedule periodic calls via the Apify platform scheduler.

Integrations

  • Apify API — call the MCP endpoint programmatically from Python, JavaScript, or any HTTP client with your bearer token
  • Webhooks — trigger downstream workflows (Slack alerts, CRM updates, report generation) when specific threat levels are detected
  • Zapier — route CRITICAL threat level detections into incident management workflows
  • Make — automate multi-step counter-disinformation workflows triggered by phase transition forecasts
  • Google Sheets — export structured output tables for analyst review and trend tracking
  • LangChain / LlamaIndex — use this server as a tool-calling endpoint in autonomous OSINT agent pipelines

Troubleshooting

Empty or very small network (nodeCount < 10) — The query did not return enough results from the 16 data sources to build a meaningful network. This usually means the topic is very niche or uses terminology specific to a closed platform not covered here. Try broader query terms, increase maxResults to 50, or use a variant of the topic that appears in open sources (Bluesky, Hacker News, Wikipedia, Federal Register).

cusumAlarm: false and shiryaevRobertsAlarm: false despite known active campaign — The optimal stopping alarms trigger based on the statistical signal-to-noise ratio in the retrieved data, not on known ground truth. If the campaign is primarily on platforms not covered by this server (X, Telegram), the data fed into the Stackelberg model will be insufficient to trigger alarms. Supplement with platform-specific scraping and re-query.

regime: CONSENSUS on a topic you know is contested — DeGroot convergence and Potts model outputs are driven by the network constructed from available open-source data. If the contested discourse is occurring on closed or paywalled platforms, the open-source signal may underrepresent the true polarization. Cross-reference with model_belief_dynamics spectral gap — a low spectral gap on a CONSENSUS regime indicates slow convergence that may mask underlying polarization.

Spending limit error response — You have reached the per-run event charge limit configured in your Apify account. Increase the limit in your run settings or reduce the number of tool calls per session.

Tool response taking longer than 60 seconds — This is normal. Each call fires 16 actor calls in parallel, each with a 120-second timeout. Response time depends on data source latency. Most calls complete in 30–90 seconds.

Responsible use

  • This server only accesses publicly available data from open sources.
  • The tools are designed for defensive narrative intelligence — detection, modeling, and counter-strategy optimization. They are not a platform for conducting offensive influence operations.
  • Comply with GDPR, applicable data protection laws, and platform terms of service when processing or storing outputs.
  • Causal attribution outputs should be treated as analytical hypotheses for expert review, not as definitive accusations of specific individuals or organizations.
  • For guidance on web scraping legality, see Apify's guide.

FAQ

How many tool calls can I make for $5 (Apify free tier)? The free tier includes $5 in monthly credits. At prices ranging from $0.040 to $0.055 per call, $5 covers approximately 90–125 individual tool calls. A complete 8-tool analysis of a single topic costs between $0.37 and $0.42.

What is the difference between detect_narrative_operations and detect_cross_scale_coordination? detect_narrative_operations applies SIR-Hawkes epidemiological modeling to classify operation type and compute a threat level. It answers "is there a coordinated operation, what kind, and how severe?" detect_cross_scale_coordination applies Haar wavelet decomposition to reveal whether coordination is happening across multiple organizational levels simultaneously — from individual posting rhythms to week-long campaign arcs. The second tool answers "how is the coordination structured across scales?" and is most useful after the first tool has confirmed an operation exists.

How is this different from social listening tools like Brandwatch or Meltwater? Social listening tools count mentions and measure sentiment. This server applies mathematical frameworks from epidemiology, game theory, evolutionary biology, and statistical physics to produce quantitative analytical outputs — network reproduction numbers, Betti numbers, Stackelberg equilibria, Price equation decompositions. The output is designed for structured reasoning by AI agents and domain analysts, not dashboards. It also integrates sanctions data, DNS/IP infrastructure, regulatory activity, and historical content — not just social media.

Can I use this to detect operations on X (Twitter) or Telegram? Not directly. The server queries 16 open-source APIs, none of which currently include X or Telegram. Bluesky and Hacker News provide social signal. If your investigation requires X or Telegram coverage, supplement with platform-specific scraping actors and combine outputs externally before feeding queries to this server.

How accurate is the causal attribution from attribute_narrative_causation? The doubly-robust estimator is consistent if either the propensity score model or the outcome regression model is correctly specified — this is a stronger guarantee than either method alone. Accuracy depends on data density: sparse networks produce wider confidence intervals and lower Rosenbaum gamma values. Always report the rosenbaumGamma alongside the ATE to give readers a measure of how robust the attribution is to hidden confounding.

Can I schedule this MCP server to run analysis automatically? Yes. You can schedule Apify actor runs via the Apify platform scheduler or via the API. Each scheduled run can call whichever tools you configure in your agent workflow. Use webhooks to route outputs to downstream systems when specific conditions are met (e.g., threat level = CRITICAL, irreversibilityRisk > 0.70).

Is it legal to use this for OSINT analysis? All data sources are publicly available. The server accesses Bluesky, Hacker News, Wikipedia, Federal Register, Interpol public notices, OpenSanctions, Wayback Machine, REST Countries, GDACS, Congress Bills, NOAA, GitHub, and public web pages. See Apify's guide on web scraping legality for jurisdiction-specific guidance. Causal attribution outputs should not be used to make definitive public accusations without further corroboration.

What does a FRAGMENTED regime from forecast_polarization_phase_transition mean? A FRAGMENTED regime indicates the Potts model has found the population has already undergone spontaneous symmetry breaking into multiple stable belief states with low inter-cluster coupling. Unlike POLARIZED (two dominant camps), FRAGMENTED indicates three or more belief clusters with minimal coherent communication between them. The hegselmannKrauseClusters count and clusterDistribution show the opinion positions and relative sizes of each fragment.

Why does map_influence_topology return a greedyGuarantee rather than an exact optimum? Finding the exact optimal seed set for influence maximization is NP-hard (it reduces to a weighted set cover problem). The submodular greedy algorithm provides a polynomial-time approximation with a provable (1-1/e) ≈ 0.632 guarantee — meaning the greedy seed set achieves at least 63.2% of the influence of the optimal set. This guarantee holds under the Independent Cascade model with submodular influence functions. The greedyGuarantee field reports the achieved bound for the specific network.

Can I use this MCP server in an autonomous AI agent pipeline? Yes. The server implements the MCP standard (Model Context Protocol) and works with any MCP-compatible client including Claude, Cursor, Windsurf, and Cline. It is designed for agent use: every tool returns structured JSON with typed fields, spending limit checks prevent runaway costs, and the standby mode keeps the server warm between agent calls.

What happens if one of the 16 upstream actors fails during a call? Each actor call is wrapped in a try/catch with a 120-second timeout. Failures return an empty array and are logged. The narrative network is built from whatever data was retrieved. If several key sources fail (e.g., Bluesky and OpenSanctions both time out), the resulting network will be smaller and analytical outputs less reliable — the nodeCount in the response indicates network density.

Related MCP servers

MCP ServerFocus
Brand Narrative Intelligence MCPBrand-level narrative monitoring and reputation analysis
Corporate Political Exposure MCPPolitical influence, lobbying, and PEP analysis
AI Model Governance MCPAI governance, policy, and bias research monitoring

Help us improve

If you encounter issues, enable run sharing so we can diagnose faster:

  1. Go to Account Settings > Privacy
  2. Enable Share runs with public Actor creators

This lets us see your run details when something goes wrong. Your data is only visible to the actor developer, not publicly.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom integrations or enterprise STRATCOM deployments, reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try Cognitive Warfare & PSYOPS MCP?

Start for free on Apify. No credit card required.

Open on Apify Store