Skip to content
Eden Engine

Finnish WWII Battles by Name, With Dates (WarSampo)

ldfwarsa/search-battles

Searches the WarSampo Knowledge Graph for Finnish Second World War battles whose English name contains the text you give, case-insensitively: returns the battle IRI, its English label and its start and end dates (xsd:date), oldest first. Give a name fragment of 2 to 60 characters, for example summa or tali, and a result count of 1 to 100. A name that matches nothing returns an empty list. WarSampo data (CC BY) as served by Eden Engine; not an official Aalto University product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

WarSampo Knowledge Graph (Aalto University SeCo)

WarSampo Knowledge Graph, Semantic Computing Research Group (SeCo), Aalto University / Linked Data Finland (ldf.fi), published under CC BY (https://creativecommons.org/licenses/by/4.0/). Data fields are passed through as the endpoint sends them. Served by Eden Engine; not an official Aalto University or WarSampo product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "ldfwarsa/search-battles" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "ldfwarsa/search-battles" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "ldfwarsa/search-battles", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "ldfwarsa/search-battles", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 21, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "name",
    "limit"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9 .,'\\u00C0-\\u024F-]{2,60}$",
      "description": "Part of the battle's English name, 2 to 60 characters, matched anywhere ignoring case, for example 'summa' or 'tali'. Letters, digits, spaces, dots, commas, hyphens and apostrophes only."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "How many battles to return, 1 to 100."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "head",
    "results"
  ],
  "properties": {
    "head": {
      "type": "object",
      "properties": {
        "vars": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "`vars` lists the selected variable names.",
      "additionalProperties": true
    },
    "meta": {
      "type": "object",
      "description": "Engine statistics where the endpoint adds them (query time, result size).",
      "additionalProperties": true
    },
    "results": {
      "type": "object",
      "properties": {
        "bindings": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "description": "One object per solution, keyed by variable name. Each value is a term object: `type` (uri or literal), `value` (a string) and, for typed or language-tagged literals, `datatype` or `xml:lang`. A variable left unbound by an OPTIONAL is absent from its row. An empty list means no match."
        }
      },
      "additionalProperties": true
    }
  },
  "description": "The SPARQL 1.1 query results document (application/sparql-results+json), passed through as the endpoint sent it.",
  "additionalProperties": true
}