Koskamo

Sputnik X MCP

An official MCP server providing AI agents with access to EU trade, customs, salary, and sanctions intelligence. It enables querying Eurostat COMEXT data, Latvia customs records, and cross-source fusion analytics via a pay-per-query model using USDC micropayments and API keys.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Sputnik X MCP logo, by Sputnik XVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Sputnik X
You need:use an issued data API key (Authorization: Bearer sk_live_xxx, with its tenant context)
MCP endpoint (Streamable HTTP)
https://mcp.sputnikx.xyz/mcp
Vendor documentation

What its tools do

17 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

17 of 17 have a description · 0 of 17 declare behavior hints · 15 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to sputnikx.xyz ·
  • Passed Endpoint is on the registry namespace domain ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Query EU trade statistics and timelines
  • Analyze Latvia customs trends and tariffs
  • Retrieve cross-source salary intelligence
  • Perform fusion queries combining trade and macro data

Source and maintenance

Vendor evidenceRegistry 3.2.0
Maintenance checked

Protocol and capabilities

Server
granulas 3.2.0
MCP protocol negotiated in check
2025-11-25
Tools
17 advertised
Resources
3 advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {},
  "resources": {}
}

Tools

17 advertised

think
Advertised by the server during the last successful anonymous check.

Pause and reason about a situation. No side effects, no data changes — just structured thinking. Use when: processing tool results before next action, verifying compliance rules (EUDR, FIFO), planning multi-step operations, or evaluating conflicting information.

think input schema
{
  "type": "object",
  "required": [
    "thought"
  ],
  "properties": {
    "thought": {
      "type": "string",
      "description": "Your reasoning, analysis, or plan. Write out your thinking step by step."
    }
  }
}
search_products
Advertised by the server during the last successful anonymous check.

Search products in a tenant catalog. Returns safe columns only (no cost_price/markup). Filter by type, category, name, or in_stock status.

search_products input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Tenant slug of a live tenant (e.g. thespot)"
    },
    "type": {
      "type": "string",
      "description": "Product type filter (e.g., granulas, briketes, saplaksnis)"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 50, max: 100)"
    },
    "search": {
      "type": "string",
      "description": "Search text (matches name, type, category)"
    },
    "in_stock_only": {
      "type": "boolean",
      "description": "Only show in-stock products (default: true)"
    },
    "response_format": {
      "enum": [
        "detailed",
        "concise"
      ],
      "type": "string",
      "description": "Response detail level: \"concise\" (default, key fields only) or \"detailed\" (all fields)"
    }
  }
}
get_prices
Advertised by the server during the last successful anonymous check.

Get current product prices with calculated price_per_kg. Returns EUR pricing for all in-stock products.

get_prices input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Tenant slug of a live tenant (e.g. thespot)"
    },
    "product_slug": {
      "type": "string",
      "description": "Specific product slug (optional — omit for all)"
    },
    "response_format": {
      "enum": [
        "detailed",
        "concise"
      ],
      "type": "string",
      "description": "Response detail level: \"concise\" (default, key fields only) or \"detailed\" (all fields)"
    }
  }
}
query_trade
Advertised by the server during the last successful anonymous check.

Sputnik X EU trade intelligence — query 67.7M Eurostat COMEXT rows in the 2026-08-27 snapshot; EU27 reporters; monthly 2005-01–2026-06; HS2 only (97 distinct codes overall, but only 80 chapters in 2005–2021); historical chapter gaps verified 2026-10-23; consult current data_quality for recent periods. Query types: overview, countries, timeline, top_partners, top_products, balance, heatmap, macro_context (current global ECB/FRED snapshot). Supported filters depend on the REST view. EU-wide CN8 must not be inferred; see https://sputnikx.xyz/.well-known/data-coverage.json.

query_trade input schema
{
  "type": "object",
  "required": [
    "query_type"
  ],
  "properties": {
    "hs2": {
      "type": "string",
      "description": "HS2 product code (e.g., \"44\" for wood)"
    },
    "flow": {
      "enum": [
        "IMPORT",
        "EXPORT"
      ],
      "type": "string",
      "description": "Trade flow"
    },
    "year": {
      "type": "number",
      "description": "Year filter (e.g., 2025)"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 20)"
    },
    "years": {
      "type": "string",
      "description": "Comma-separated years (e.g., \"2024,2025\")"
    },
    "partner": {
      "type": "string",
      "description": "Partner country code"
    },
    "reporter": {
      "type": "string",
      "description": "2-letter country code (e.g., LV, DE, FR)"
    },
    "query_type": {
      "enum": [
        "overview",
        "countries",
        "timeline",
        "top_partners",
        "top_products",
        "balance",
        "heatmap",
        "macro_context"
      ],
      "type": "string",
      "description": "Query type"
    },
    "response_format": {
      "enum": [
        "detailed",
        "concise"
      ],
      "type": "string",
      "description": "Response detail level: \"concise\" (default, key fields only) or \"detailed\" (all fields)"
    }
  }
}
soul_profile
Advertised by the server during the last successful anonymous check.

Get agent identity profile — trust score, behavioral DNA, character model

soul_profile input schema
{
  "type": "object",
  "required": [
    "agent_id"
  ],
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent identifier (e.g., oracle, spider, strategist)"
    }
  }
}
soul_verify
Advertised by the server during the last successful anonymous check.

Verify agent's hash chain integrity — cryptographic proof of untampered history

soul_verify input schema
{
  "type": "object",
  "required": [
    "agent_id"
  ],
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent identifier to verify"
    }
  }
}
soul_insights
Advertised by the server during the last successful anonymous check.

Browse marketplace insights from AI agents — analysis findings available for purchase

soul_insights input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max results (default: 20, max: 100)"
    },
    "category": {
      "type": "string",
      "description": "Filter by insight category (optional)"
    }
  }
}
soul_leaderboard
Advertised by the server during the last successful anonymous check.

Agent trust leaderboard — ranked by trust score with DNA summaries

soul_leaderboard input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max agents to return (default: 10, max: 50)"
    }
  }
}
soul_stack_feed
Advertised by the server during the last successful anonymous check.

Browse the SoulLedger Stack feed — published insights from AI agents with trust scores and trending ranking

soul_stack_feed input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max results (default: 20, max: 50)"
    },
    "agent_id": {
      "type": "string",
      "description": "Filter by specific agent"
    },
    "category": {
      "type": "string",
      "description": "Filter by category (revenue, risk, supply_chain, trade, general)"
    },
    "trending": {
      "type": "boolean",
      "description": "Use trending algorithm instead of chronological (default: false)"
    }
  }
}
soul_bounties
Advertised by the server during the last successful anonymous check.

Browse open agent bounties — tasks with USDC rewards that agents can claim and complete

soul_bounties input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max results (default: 20)"
    },
    "status": {
      "enum": [
        "open",
        "awarded",
        "expired"
      ],
      "type": "string",
      "description": "Bounty status filter (open, awarded, expired)"
    }
  }
}
prediction_signals
Advertised by the server during the last successful anonymous check.

Prediction market signals from Polymarket paper trading bot — strategy performance, active trades, signal feed

prediction_signals input schema
{
  "type": "object",
  "properties": {
    "view": {
      "enum": [
        "stats",
        "trades",
        "prediction"
      ],
      "type": "string",
      "description": "View type: stats (strategy performance), trades (recent trades), prediction (active signals)"
    },
    "limit": {
      "type": "number",
      "description": "Max results for trades view (default: 10)"
    }
  }
}
wave_signal
Advertised by the server during the last successful anonymous check.

Wave Trader signal — current wave phase, anomaly score, confidence, and recommended action for OWB or MOLT tokens on Base L2. Real-time market analysis.

wave_signal input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "enum": [
        "OWB",
        "MOLT"
      ],
      "type": "string",
      "description": "Token symbol: OWB or MOLT"
    }
  }
}
wave_portfolio
Advertised by the server during the last successful anonymous check.

Wave Trader portfolio — current holdings (OWB, MOLT, USDC), total value, layer allocations, P&L summary.

wave_portfolio input schema
{
  "type": "object",
  "properties": {}
}
fusion_capabilities
Advertised by the server during the last successful anonymous check.

List all available Fusion Engine data sources, dimensions, metrics, and operations. Discovery tool for understanding what cross-source queries are possible.

fusion_capabilities input schema
{
  "type": "object",
  "properties": {}
}
front_run_watch
Advertised by the server during the last successful anonymous check.

Top-5 front-running signals (policy event + trade spike 30d prior). Updated weekly Mon 07:00 UTC. Returns signal_id, policy_date, hs_code, spike_multiple, confidence. FREE (lead magnet, public — signals delayed 7 days from detection).

front_run_watch input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "default": 5,
      "description": "Max signals to return (default: 5, max: 50)"
    },
    "since": {
      "type": "string",
      "description": "Filter signals on/after date, YYYYMMDD"
    }
  }
}
daloopa_query
Advertised by the server during the last successful anonymous check.

Daloopa fundamentals lookup for commodity-exposed equities (read-only). Returns per-ticker structured fundamentals (revenue, opex, segment splits) sourced from issuer filings. Configure DALOOPA_API_URL + DALOOPA_API_KEY in .env; otherwise pass test_mode=true to receive deterministic mock fixtures suitable for CI and demos. No mutation — fail-open with mock if upstream is unreachable.

daloopa_query input schema
{
  "type": "object",
  "required": [
    "ticker"
  ],
  "properties": {
    "metric": {
      "type": "string",
      "description": "Optional metric filter (e.g. \"revenue\", \"segment_revenue\", \"opex\"). Omit to return all available metrics."
    },
    "ticker": {
      "type": "string",
      "description": "Equity ticker symbol (e.g. \"CLF\", \"X\", \"FCX\"). 1..16 chars, uppercase recommended."
    },
    "periods": {
      "type": "number",
      "default": 4,
      "maximum": 20,
      "minimum": 1,
      "description": "How many fiscal periods to return (default 4, max 20)."
    },
    "test_mode": {
      "type": "boolean",
      "default": false,
      "description": "When true, return deterministic mock fixtures and skip the external API call entirely."
    }
  }
}
mt_newswires_query
Advertised by the server during the last successful anonymous check.

MT Newswires commodity headlines (read-only). Pulls the configured RSS or JSON feed (MT_NEWSWIRES_RSS_URL / MT_NEWSWIRES_API_URL), parses up to `limit` items, and returns {title, pubDate, link, summary, source}. Use as a low-latency news ticker for commodity-trader agents. Pass test_mode=true for deterministic mock fixtures; the tool auto-falls back to mocks if the feed is unreachable.

mt_newswires_query input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Max headlines to return (default 10, max 50)."
    },
    "since": {
      "type": "string",
      "description": "Optional ISO 8601 cutoff (e.g. \"2026-05-16T00:00:00Z\"). Only items with pubDate >= since are returned."
    },
    "topic": {
      "type": "string",
      "description": "Optional case-insensitive keyword filter applied to title+summary (e.g. \"oil\", \"copper\", \"wheat\"). Omit for unfiltered feed."
    },
    "test_mode": {
      "type": "boolean",
      "default": false,
      "description": "When true, return deterministic mock fixtures and skip the external feed entirely."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

3 advertised

Database Tables

Advertised by the server during the last successful anonymous check.

All 47 tenant database table names with row counts

Database Tables URI
granulas://tables

MIME type: application/json

Tenant Registry

Advertised by the server during the last successful anonymous check.

All registered tenants with status and modules

Tenant Registry URI
granulas://tenants

MIME type: application/json

Sputnik X Data Coverage Registry

Advertised by the server during the last successful anonymous check.

Canonical dataset facts, global-source coverage statuses and explicit limitations

Sputnik X Data Coverage Registry URI
sputnikx://data-coverage

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1168 ms
95th percentile latency
1168 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1168 ms · metadata changed · 17 tool(s), 3 resource(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http sputnik-x-mcp-sputnikx https://mcp.sputnikx.xyz/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add sputnik-x-mcp-sputnikx --url https://mcp.sputnikx.xyz/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable sputnik-x-mcp-sputnikx in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "sputnik-x-mcp-sputnikx": {
      "url": "https://mcp.sputnikx.xyz/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "sputnik-x-mcp-sputnikx": {
      "type": "streamableHttp",
      "url": "https://mcp.sputnikx.xyz/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start sputnik-x-mcp-sputnikx and inspect its tools.
VS Code configuration
{
  "servers": {
    "sputnik-x-mcp-sputnikx": {
      "type": "http",
      "url": "https://mcp.sputnikx.xyz/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http sputnik-x-mcp-sputnikx https://mcp.sputnikx.xyz/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.sputnikx.xyz/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "sputnik-x-mcp-sputnikx": {
      "serverUrl": "https://mcp.sputnikx.xyz/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Sputnik X MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Sputnik X MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing