Adversarial Geopolitical Equilibrium
About
Adversarial geopolitical equilibrium analysis for AI agents via the Model Context Protocol.
Details
- Author
- apifyforge
- Downloads
- 135
- Categories
- Other
Jump to
- Eight quantitative game‑theoretic frameworks (sequential equilibrium, hypergame theory, sanctions hypergraph propagation, VCG mechanism design, Hamilton‑Jacobi‑Isaacs differential games, Colonel Blotto, replicator dynamics, Crawford‑Sobel cheap talk)
- Bayesian extensive‑form sequential equilibrium across up to five geopolitical arenas
- Sanctions cascade modeling on trade‑weighted hypergraphs with GDP impact estimation
- Continuous‑time Hamilton‑Jacobi‑Isaacs escalation dynamics with viscosity solutions
- VCG alliance mechanism design with Shapley value fair allocation and core stability tests
- 20 pre‑calibrated state actors (US, CN, RU, GB, FR, DE, JP, IN, KR, AU, IL, IR, SA, TR, BR, KP, UA, TW, PK, PL)
- 16 live data sources orchestrated in parallel with 180‑second timeouts
- Seeded deterministic PRNG (Mulberry32) for reproducible stochastic results
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Adversarial Geopolitical EquilibriumCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Add the server to your MCP client (Claude Desktop, Cursor, Windsurf) by pasting a JSON configuration with the server URL and your Apify API token. After configuration, open a chat and ask your AI to analyze a geopolitical scenario; tools are available immediately. Results arrive as formatted JSON within the client.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"adversarial geopolitical equilibrium": {
"adversarial-geopolitical-equilibrium-mcp": {
"url": "https://ryanclinton--adversarial-geopolitical-equilibrium-mcp.apify.actor/mcp"
}
}
}
}
McpServers
{
"adversarial-geopolitical-equilibrium-mcp": {
"url": "https://ryanclinton--adversarial-geopolitical-equilibrium-mcp.apify.actor/mcp"
}
}
Adversarial Geopolitical Equilibrium MCP Server
> View on ApifyForge | Use on Apify Store
---
Quick Start
Add to your MCP client (Claude Desktop, Cursor, Windsurf):
{
"mcpServers": {
"adversarial-geopolitical-equilibrium-mcp": {
"url": "https://ryanclinton--adversarial-geopolitical-equilibrium-mcp.apify.actor/mcp"
}
}
}
---
Adversarial geopolitical equilibrium analysis for AI agents via the Model Context Protocol. This MCP server gives Claude, Cursor, Windsurf, and any MCP-compatible AI client access to 8 quantitative game-theoretic tools covering sanctions cascades, escalation trajectories, alliance stability, and strategic misperception across 20 pre-calibrated state actors.
Each tool pulls live data from 16 Apify actors at query time — OFAC, OpenSanctions, UN COMTRADE, IMF, World Bank, Finnhub, Congress, GDACS, and more — then applies advanced mathematical frameworks including Bayesian extensive-form sequential equilibrium, Hamilton-Jacobi-Isaacs differential games, and Colonel Blotto resource allocation to produce structured quantitative output. The result is rigorous geopolitical intelligence grounded in real-time data, not static heuristics.
What data can you access?
| Data Point | Source | Coverage |
|---|---|---|
| 📋 US Treasury SDN sanctions status | OFAC Sanctions Search | Full SDN list, all programs |
| 🌐 International sanctions and watchlists | OpenSanctions Search | 100+ global programs, PEP lists |
| 🚨 International law enforcement notices | Interpol Red Notices | Global fugitives and wanted persons |
| 🔎 US federal wanted persons | FBI Most Wanted Search | Active federal cases |
| 🏛️ US legislation (sanctions, defense bills) | Congress Bill Search | All active and historical bills |
| 📜 Executive orders, regulatory actions | Federal Register Search | Federal rules and agency notices |
| 🔄 Bilateral trade volumes | UN COMTRADE | Global commodity and goods flows |
| 📊 Governance and stability indicators | World Bank Data | 200+ countries, multi-decade series |
| 💹 Macroeconomic indicators | IMF Economic Data | GDP, inflation, debt, current account |
| 📈 Market reaction to geopolitical events | Finnhub Stock Data | Global equities, ETFs |
| 🏦 Congressional stock trades | Congressional Stock Tracker | Insider knowledge signals |
| ⚡ Natural disaster impact on stability | GDACS Disaster Alerts | Worldwide real-time events |
| 🛡️ Cyber vulnerabilities and CVEs | NVD CVE Search | Full NIST vulnerability database |
| 🌍 Country reference and baseline data | REST Countries | 250 countries, alliance memberships |
| 📖 Background intelligence | Wikipedia Search | General entity knowledge |
| 📡 Social OSINT signals | Bluesky Social Search | Open social intelligence |
Why use this MCP server for geopolitical analysis?
Manual geopolitical analysis at this level of mathematical rigor requires a team of analysts, weeks of data collection, and expensive subscriptions to Bloomberg, Jane's, or Oxford Analytica. A single scenario — sanctions cascade analysis for one target country — means pulling bilateral trade data, cross-referencing live sanctions registries, modeling threshold effects through a trade network, and computing GDP impact. Done by hand: 2-3 days minimum.
This server automates the entire pipeline from raw data collection through mathematical modeling to structured output in a single tool call. Your AI agent gets quantitative geopolitical intelligence — not narrative summaries — with citations to live data sources.
- Scheduling — Run recurring scenario analyses daily or weekly to track evolving situations like active conflict zones
- API access — Trigger analyses from Python, JavaScript, or any HTTP client using the standard MCP protocol
- Proxy rotation — All 16 underlying data actors use Apify's built-in proxy infrastructure for reliable data collection at scale
- Monitoring — Get Slack or email alerts when runs fail or produce unexpected results via Apify webhooks
- Integrations — Connect to Zapier, Make, Google Sheets, or forward results to your own intelligence platforms via webhooks
Features
- 8 quantitative game-theoretic frameworks — Sequential equilibrium, hypergame theory, sanctions hypergraph propagation, VCG mechanism design, Hamilton-Jacobi-Isaacs differential games, Colonel Blotto, replicator dynamics, and Crawford-Sobel cheap talk, all implemented in TypeScript
- Bayesian extensive-form sequential equilibrium — Computes simultaneous Perfect Bayesian Equilibria across up to 5 geopolitical arenas (trade, military, cyber, diplomatic, economic) with Quantal Response Equilibrium guaranteeing existence; temperature parameter controls rationality level
- Cross-arena linkage detection — Automatically classifies arena interactions as strategic complements (escalation reinforces escalation), strategic substitutes (escalation in one reduces incentive in the other), or independent
- Sanctions cascade on trade-weighted hypergraphs — Models directed weighted hyperedges representing coordinated alliance sanctions; threshold model with resilience computed from GDP, trade openness, and internal stability; GDP impact estimated at 15% per unit of sanctions severity
- Hamilton-Jacobi-Isaacs escalation dynamics — Continuous-time stochastic differential game with viscosity solution on a discretized state grid, Euler-Maruyama forward simulation, and state vector covering escalation level, military postures, crisis intensity, and nuclear risk
- VCG alliance mechanism design — Shapley value fair allocation, core stability testing, superadditivity and convexity checks, VCG payments for externality pricing; incentive-compatible truth-telling guaranteed as dominant strategy
- Hypergame theory with belief hierarchies — Bennett 1977 framework with epsilon-approximate common knowledge truncation; quantifies misperception gaps between players, identifies exploitable perceptual vulnerabilities, and generates correction recommendations
- Colonel Blotto across 5 domains — Cyber, conventional, nuclear, economic, and information domains; SDP moment relaxation with iterative best response; Tullock contest function for win probabilities; domain-specific capability multipliers
- Replicator dynamics with level-k reasoning — Evolutionary dynamics reveal dominant strategies and evolutionary stable strategies; Red Queen cycling detection for arms race identification
- Crawford-Sobel cheap talk equilibrium — Partition bound quantifies information transmission effectiveness; evolutionary stability refinement for credible signaling analysis
- 16 live data sources orchestrated in parallel — Each tool call fires 4-7 actor runs in parallel with 180-second timeouts; data is fetched fresh at query time, not cached
- 20 pre-calibrated state actors — US, CN, RU, GB, FR, DE, JP, IN, KR, AU, IL, IR, SA, TR, BR, KP, UA, TW, PK, PL; each with GDP, military spending, nuclear capability, cyber capability score, internal stability, trade openness, region, and alliance memberships (NATO, SCO, BRICS, QUAD, AUKUS, FVEY, CSTO, EU, OPEC)
- Seeded deterministic PRNG — Mulberry32 seeded PRNG ensures reproducible stochastic results for the same input configuration
- Standby mode — Server stays warm between calls using Apify's standby mode, eliminating cold start delays for interactive workflows
Use cases for geopolitical equilibrium analysis
Defense and intelligence research
Think tanks, defense research organizations, and academic analysts need quantitative outputs for published work. This server produces citable mathematical results — Nash deviation scores, Shapley values, HJI saddle points — grounded in live public data, suitable for briefings and reports that demand more rigor than narrative forecasting.
Sanctions policy assessment
Trade lawyers and compliance teams need to assess secondary sanctions exposure before clients act. Running analyze_sanctions_cascade on a target country with 10-15 trade partners identifies cascade rounds, GDP impact, and tipping points — the analysis that determines whether a client in Turkey or India faces secondary risk.
Crisis scenario wargaming
National security teams and corporate geopolitical risk functions model Taiwan Strait escalation, Iran nuclear breakout, and North Korea provocation scenarios. The assess_escalation_dynamics tool produces time-indexed escalation trajectories with nuclear risk peaks and deescalation timelines, giving wargame moderators quantitative anchors.
Alliance viability analysis
Diplomatic advisors evaluating QUAD expansion, NATO enlargement, or new economic coalitions use design_alliance_mechanism to test superadditivity and core stability before political commitment. Shapley values expose fair burden-sharing and identify marginally stable members.
AI agent geopolitical reasoning
LLM agents working on geopolitical research benefit from structured quantitative tools rather than relying solely on parametric knowledge. An agent calls compute_interlocking_equilibria for current equilibrium strategies grounded in live data, then detect_strategic_misperception to understand why actors might miscalculate.
Competitive intelligence and country risk
Investment managers and sovereign debt analysts use forecast_regime_transitions to get IMF and World Bank-calibrated transition probability scores with identified risk factors — quantitative country risk without a Bloomberg subscription.
How to connect this MCP server to your AI client
1. Get your Apify API token — Sign up at apify.com (free plan includes $5/month in credits) and copy your token from Account Settings.
2. Add the server to your client config — Paste the JSON configuration below into your Claude Desktop, Cursor, or Windsurf MCP settings file.
3. Start a conversation — Open a new chat and ask your AI to analyze a geopolitical scenario. The tools are available immediately.
4. Review structured output — Results arrive as formatted JSON with equilibria, trajectories, Shapley values, and data source counts directly in your AI client.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"adversarial-geopolitical-equilibrium": {
"type": "url",
"url": "https://adversarial-geopolitical-equilibrium-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN"
}
}
}
Cursor
Add to your Cursor MCP settings under Settings > MCP:
{
"mcpServers": {
"adversarial-geopolitical-equilibrium": {
"type": "url",
"url": "https://adversarial-geopolitical-equilibrium-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN"
}
}
}
Windsurf, Cline, and other MCP clients
Use the same JSON structure. Replace YOUR_APIFY_TOKEN with your token from Apify Console.
⬇️ Input parameters
The MCP server has no top-level input schema — all parameters are passed per tool call via the MCP protocol. The eight tools and their parameters are:
| Tool | Parameter | Type | Required | Default | Description |
|------|-----------|------|----------|---------|-------------|
| compute_interlocking_equilibria | countries | string[] | No | ["US","CN","RU","GB"] | ISO codes, 2-8 countries |
| compute_interlocking_equilibria | arenas | enum[] | No | all 5 arenas | One or more of: trade, military, cyber, diplomatic, economic |
| compute_interlocking_equilibria | max_iterations | number | No | 300 | Equilibrium computation iterations, 50-1000 |
| simulate_geopolitical_agents | countries | string[] | No | ["US","CN"] | ISO codes, 2-6 countries |
| simulate_geopolitical_agents | arena | enum | No | "trade" | Single arena: trade, military, cyber, diplomatic, or economic |
| analyze_sanctions_cascade | target_countries | string[] | Yes | — | Countries to directly sanction, 1-5 ISO codes |
| analyze_sanctions_cascade | all_countries | string[] | No | 13-country default | Full simulation country set, 3-20 ISO codes |
| analyze_sanctions_cascade | max_cascade_rounds | number | No | 10 | Maximum propagation rounds, 1-20 |
| assess_escalation_dynamics | player1 | string | Yes | — | ISO code for first state actor |
| assess_escalation_dynamics | player2 | string | Yes | — | ISO code for second state actor |
| assess_escalation_dynamics | initial_crisis_intensity | number | No | 0.5 | Starting crisis intensity, 0.0-1.0 |
| design_alliance_mechanism | countries | string[] | Yes | — | Proposed alliance members, 3-8 ISO codes |
| detect_strategic_misperception | countries | string[] | Yes | — | Countries to analyze, 2-6 ISO codes |
| evaluate_cyber_kinetic_blotto | player1 | string | Yes | — | First player ISO code |
| evaluate_cyber_kinetic_blotto | player2 | string | Yes | — | Second player ISO code |
| forecast_regime_transitions | country | string | Yes | — | Target country ISO code |
Supported ISO codes: US, CN, RU, GB, FR, DE, JP, IN, KR, AU, IL, IR, SA, TR, BR, KP, UA, TW, PK, PL
Example tool calls
Sanctions cascade — Russia with major trade partners:
{
"tool": "analyze_sanctions_cascade",
"arguments": {
"target_countries": ["RU"],
"all_countries": ["US", "CN", "RU", "GB", "DE", "JP", "IN", "TR", "KR", "AU", "BR", "SA"],
"max_cascade_rounds": 8
}
}
Taiwan Strait escalation trajectory:
{
"tool": "assess_escalation_dynamics",
"arguments": {
"player1": "US",
"player2": "CN",
"initial_crisis_intensity": 0.7
}
}
QUAD alliance stability check:
{
"tool": "design_alliance_mechanism",
"arguments": {
"countries": ["US", "JP", "IN", "AU"]
}
}
Input tips
- Include major trade partners in cascade analysis — analyze_sanctions_cascade works best with 8 or more countries; include the target's top import and export partners for realistic cascade modeling
- Use higher max_iterations for multi-arena equilibria — Complex 4-6 country, 5-arena configurations may need 500-1000 iterations to converge; the default of 300 suits 2-4 country scenarios
- Pair misperception with equilibrium tools — Run detect_strategic_misperception alongside compute_interlocking_equilibria on the same country set to understand the gap between equilibrium play and how actors actually perceive the situation
- Start with compute_interlocking_equilibria for broad overview — Then drill into specific dynamics with assess_escalation_dynamics or analyze_sanctions_cascade
- assess_escalation_dynamics is bilateral — It models a 2-player differential game; for multilateral crises, analyze the dominant dyad first, then secondary relationships separately
⬆️ Output example
Response from analyze_sanctions_cascade for target Russia, 12-country simulation:
{
"targets": [
{ "id": "RU", "name": "Russia" }
],
"cascade": {
"rounds": 3,
"directlyAffected": 1,
"totalAffected": 4,
"totalGdpImpact": "$1247B",
"tradeDisruption": "14.2%",
"affectedActors": [
{
"actorId": "TR",
"name": "Turkey",
"sanctionLevel": 0.61,
"tradeExposure": 0.48,
"financialExposure": 0.32,
"cascadeRound": 1
},
{
"actorId": "IN",
"name": "India",
"sanctionLevel": 0.44,
"tradeExposure": 0.38,
"financialExposure": 0.24,
"cascadeRound": 2
},
{
"actorId": "CN",
"name": "China",
"sanctionLevel": 0.29,
"tradeExposure": 0.52,
"financialExposure": 0.41,
"cascadeRound": 2
},
{
"actorId": "BR",
"name": "Brazil",
"sanctionLevel": 0.18,
"tradeExposure": 0.14,
"financialExposure": 0.09,
"cascadeRound": 3
}
],
"tippingPoints": [
{
"actor": "TR",
"threshold": 0.40,
"consequence": "NATO compliance pressure triggers secondary sanctions exposure"
},
{
"actor": "IN",
"threshold": 0.35,
"consequence": "US secondary sanctions warning triggers partial compliance"
}
],
"influenceMaximizationSet": ["US", "EU", "GB"],
"secondaryEffects": [
{ "actor": "TR", "effect": "energy import substitution required", "severity": 0.58 },
{ "actor": "IN", "effect": "discounted oil purchase program under pressure", "severity": 0.41 }
],
"hyperedgeCount": 8
},
"legislation": {
"relatedBills": 7,
"sanctionsAuthorities": ["CAATSA", "EO 14024", "OFAC SDN designation"]
},
"dataSources": {
"sanctionsRecords": 42,
"tradeRecords": 38,
"legislativeRecords": 7,
"interpol": 3
}
}
Output fields
| Field | Type | Description |
|-------|------|-------------|
| cascade.rounds | number | Number of propagation rounds before cascade stops |
| cascade.totalGdpImpact | string | Estimated cumulative GDP impact in USD billions |
| cascade.tradeDisruption | string | Percentage of simulated trade volume disrupted |
| cascade.affectedActors[].sanctionLevel | number | Sanctions severity 0.0-1.0 for each affected country |
| cascade.affectedActors[].tradeExposure | number | Bilateral trade exposure to sanctioned country |
| cascade.affectedActors[].cascadeRound | number | Which cascade round the country was affected in |
| cascade.tippingPoints[].threshold | number | Trade exposure threshold at which compliance triggers |
| cascade.influenceMaximizationSet | string[] | Minimum coalition to achieve maximum cascade |
| equilibria[].nashDeviation | number | Distance from Nash equilibrium; < 0.01 = converged |
| equilibria[].sequentialRationality | number | Sequential rationality score 0.0-1.0 |
| equilibria[].bayesConsistency | number | Bayesian consistency of beliefs 0.0-1.0 |
| equilibria[].strategies[].action | string | Optimal action for player-type combination |
| equilibria[].strategies[].probability | number | Mixed strategy probability |
| linkages[].linkageType | enum | strategic_complement, strategic_substitute, or independent |
| linkages[].strength | number | Cross-arena linkage strength 0.0-1.0 |
| systemStability | number | Overall system stability score 0.0-1.0 |
| trajectory[].escalationLevel | number | Escalation level at each time step (HJI output) |
| trajectory[].nuclearRisk | number | Nuclear escalation risk at each time step |
| peakEscalation | number | Maximum escalation level reached |
| saddlePointValue | number | HJI saddle point — where deescalation forces dominate |
| timeToDeescalation | number\|null | Time units until stable equilibrium |
| shapleyValues | Record<string, number> | Fair burden-sharing allocation by country |
| isSuperadditive | boolean | Whether grand coalition is worth more than sum of parts |
| isCore | boolean | Whether coalition is stable against sub-coalition defection |
| perceptions[].misperceptionSeverity | number | Severity of misperception per player pair |
| exploitableGaps[].advantage | number | Strategic advantage from misperception exploitation |
| dominantStrategy | string | Evolutionary dominant strategy from replicator dynamics |
| evolutionaryStableStrategy | string\|null | ESS if one exists, null for cycling |
| dataSources.* | number | Count of live records retrieved from each data source |
How much does it cost to run geopolitical equilibrium analysis?
This MCP server uses pay-per-event pricing at $0.045 per tool call. Each tool fires 4-7 underlying data actors in parallel — the platform compute cost is included in the per-event price.
| Scenario | Tool calls | Cost per call | Total cost |
|----------|-----------|---------------|------------|
| Quick test (single analysis) | 1 | $0.045 | $0.045 |
| Small research session | 10 | $0.045 | $0.45 |
| Full scenario analysis (all 8 tools) | 8 | $0.045 | $0.36 |
| Weekly monitoring workflow | 50 | $0.045 | $2.25 |
| Enterprise research program | 500 | $0.045 | $22.50 |
Apify's free plan includes $5 of monthly credits — enough for approximately 110 tool calls at no cost. You can set a maximum spending limit per run to control costs; the server stops when your budget is reached.
Compare this to Oxford Analytica or Stratfor subscriptions at $500-5,000/month, or Bloomberg Terminal access at $2,000/month — this server delivers quantitative mathematical modeling grounded in live data for a fraction of the cost with no subscription commitment.
Using this MCP server via the API
Python
```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/adversarial-geopolitical-equilibrium-mcp").call(run_input={})
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



