← WebMCP Directory

Tool tree

jernkorset.dk

Media & PersonalTools verified
Website
jernkorset.dk exposes WebMCP tools to AI agents.
Explore capabilities

    page: Every page

    search_lettersAnswer

    Semantic full-text search across 665 WW1 Danish letters using multilingual embeddings. Returns ranked matches with metadata and a representative text snippet. The search engine initialises on first call (downloads ~30 MB model + embeddings); subsequent calls are fast. Supports Danish and English queries.

    View tool JSON
    {
      "name": "search_letters",
      "kind": "answer",
      "impl": "imperative",
      "description": "Semantic full-text search across 665 WW1 Danish letters using multilingual embeddings. Returns ranked matches with metadata and a representative text snippet. The search engine initialises on first call (downloads ~30 MB model + embeddings); subsequent calls are fast. Supports Danish and English queries.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query. Supports Danish and English. Examples: 'soldater i skyttegraven', 'Christmas 1915', 'hjemve og familie'."
          },
          "top_k": {
            "type": "integer",
            "description": "Maximum number of results to return. Defaults to 10, max 50.",
            "default": 10,
            "minimum": 1,
            "maximum": 50
          }
        },
        "required": [
          "query"
        ]
      },
      "page": "/"
    }
    find_similar_lettersAnswer

    Returns pre-computed nearest-neighbour letters for a given letter ID, ranked by embedding similarity. Useful for corpus exploration and finding thematic clusters. Similarity scores are cosine similarity in embedding space.

    View tool JSON
    {
      "name": "find_similar_letters",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns pre-computed nearest-neighbour letters for a given letter ID, ranked by embedding similarity. Useful for corpus exploration and finding thematic clusters. Similarity scores are cosine similarity in embedding space.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "letter_id": {
            "type": "integer",
            "description": "Numeric ID of the source letter."
          },
          "top_k": {
            "type": "integer",
            "description": "Maximum number of similar letters to return. Defaults to 5, max 20.",
            "default": 5,
            "minimum": 1,
            "maximum": 20
          }
        },
        "required": [
          "letter_id"
        ]
      },
      "page": "/"
    }
    browse_lettersAnswer

    Returns a paginated list of letter metadata filtered by date range, sender, recipient, or place. Does not include letter body text — use get_letter for full content. All text filters are case-insensitive substring matches.

    View tool JSON
    {
      "name": "browse_letters",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns a paginated list of letter metadata filtered by date range, sender, recipient, or place. Does not include letter body text — use get_letter for full content. All text filters are case-insensitive substring matches.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "date_from": {
            "type": "string",
            "description": "ISO 8601 date string (YYYY-MM-DD). Only include letters on or after this date."
          },
          "date_to": {
            "type": "string",
            "description": "ISO 8601 date string (YYYY-MM-DD). Only include letters on or before this date."
          },
          "sender": {
            "type": "string",
            "description": "Case-insensitive substring filter on the sender field."
          },
          "recipient": {
            "type": "string",
            "description": "Case-insensitive substring filter on the recipient field."
          },
          "place": {
            "type": "string",
            "description": "Case-insensitive substring filter on the place field (writing location)."
          },
          "offset": {
            "type": "integer",
            "description": "Zero-based pagination offset. Defaults to 0.",
            "default": 0,
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of letters to return per page. Defaults to 20, max 100.",
            "default": 20,
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": []
      },
      "page": "/"
    }
    get_letterAnswer

    Fetch a specific WW1 Danish letter by ID (1-665). Returns full text in original archaic Danish and modernized Danish, plus metadata. Optionally includes sentiment, emotion, and narrative arc analysis.

    View tool JSON
    {
      "name": "get_letter",
      "kind": "answer",
      "impl": "imperative",
      "description": "Fetch a specific WW1 Danish letter by ID (1-665). Returns full text in original archaic Danish and modernized Danish, plus metadata. Optionally includes sentiment, emotion, and narrative arc analysis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "letter_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 665,
            "description": "The letter ID (1-665)"
          },
          "include_analysis": {
            "type": "boolean",
            "default": false,
            "description": "If true, include sentiment scores, emotion vectors, and narrative arc type"
          }
        },
        "required": [
          "letter_id"
        ]
      },
      "page": "/"
    }
    get_personAnswer

    Fetch a specific person from the WW1 Danish letters social network by ID. Returns biographical data, letters they sent/received, and optionally their network connections (degree centrality, betweenness centrality, pagerank).

    View tool JSON
    {
      "name": "get_person",
      "kind": "answer",
      "impl": "imperative",
      "description": "Fetch a specific person from the WW1 Danish letters social network by ID. Returns biographical data, letters they sent/received, and optionally their network connections (degree centrality, betweenness centrality, pagerank).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "person_id": {
            "type": "string",
            "description": "The person ID (canonical name)"
          },
          "include_letters": {
            "type": "boolean",
            "default": true,
            "description": "If true, include list of letters sent/received by this person"
          },
          "include_network": {
            "type": "boolean",
            "default": false,
            "description": "If true, include network metrics and connected persons from social-network.json"
          }
        },
        "required": [
          "person_id"
        ]
      },
      "page": "/"
    }
    get_placeAnswer

    Fetch a specific place (location) mentioned in the WW1 Danish letters. Returns geographical data (coordinates, Wikidata link), photos, and optionally the list of letters mentioning this place.

    View tool JSON
    {
      "name": "get_place",
      "kind": "answer",
      "impl": "imperative",
      "description": "Fetch a specific place (location) mentioned in the WW1 Danish letters. Returns geographical data (coordinates, Wikidata link), photos, and optionally the list of letters mentioning this place.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "place_id": {
            "type": "string",
            "description": "The place ID (name)"
          },
          "include_letters": {
            "type": "boolean",
            "default": true,
            "description": "If true, include list of letters mentioning this place"
          }
        },
        "required": [
          "place_id"
        ]
      },
      "page": "/"
    }
    get_social_networkAnswer

    Fetch the WW1 Danish letters social network. Returns nodes (persons) ranked by centrality/pagerank, and optionally edges (connections) between them. If person_id is provided, returns that person's subgraph; otherwise returns top 20 nodes by pagerank.

    View tool JSON
    {
      "name": "get_social_network",
      "kind": "answer",
      "impl": "imperative",
      "description": "Fetch the WW1 Danish letters social network. Returns nodes (persons) ranked by centrality/pagerank, and optionally edges (connections) between them. If person_id is provided, returns that person's subgraph; otherwise returns top 20 nodes by pagerank.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "person_id": {
            "type": "string",
            "description": "Optional: if provided, return only this person's node and their immediate connections"
          },
          "include_edges": {
            "type": "boolean",
            "default": true,
            "description": "If true, include edges (connections) in the result"
          },
          "include_temporal_slices": {
            "type": "boolean",
            "default": false,
            "description": "If true, include yearly breakdown of network growth over the war period"
          }
        },
        "required": []
      },
      "page": "/"
    }
    get_sentimentAnswer

    Retrieve sentiment analysis for a single letter, a date range, or a corpus summary. Returns emotional intensity (CVP), dominant emotions, and negative ratios.

    View tool JSON
    {
      "name": "get_sentiment",
      "kind": "answer",
      "impl": "imperative",
      "description": "Retrieve sentiment analysis for a single letter, a date range, or a corpus summary. Returns emotional intensity (CVP), dominant emotions, and negative ratios.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "letter_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 665,
            "description": "Letter ID (1-665). If provided, returns sentiment for that letter."
          },
          "date_from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Start date (YYYY-MM-DD). If provided with date_to, returns range analysis."
          },
          "date_to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "End date (YYYY-MM-DD). If provided with date_from, returns range analysis."
          }
        },
        "description": "Provide either letter_id, date_from/date_to, or neither (for corpus overview)."
      },
      "page": "/"
    }
    get_narrative_arcAnswer

    Retrieve narrative arc analysis for a single letter or a date range. Identifies arc types (rising, falling, flat, etc.) and emotional trajectories.

    View tool JSON
    {
      "name": "get_narrative_arc",
      "kind": "answer",
      "impl": "imperative",
      "description": "Retrieve narrative arc analysis for a single letter or a date range. Identifies arc types (rising, falling, flat, etc.) and emotional trajectories.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "letter_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 665,
            "description": "Letter ID (1-665). If provided, returns arc for that letter."
          },
          "date_from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Start date (YYYY-MM-DD). If provided with date_to, returns range analysis."
          },
          "date_to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "End date (YYYY-MM-DD). If provided with date_from, returns range analysis."
          }
        },
        "description": "Provide either letter_id or date_from/date_to."
      },
      "page": "/"
    }
    navigate_toAction

    Navigates to a specific letter, person, place, or application view within the jernkorsetbreve app

    View tool JSON
    {
      "name": "navigate_to",
      "kind": "act",
      "impl": "imperative",
      "description": "Navigates to a specific letter, person, place, or application view within the jernkorsetbreve app",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "enum": [
              "letter",
              "person",
              "place",
              "view"
            ],
            "description": "What to navigate to: a letter, person, place, or application view"
          },
          "id": {
            "oneOf": [
              {
                "type": "integer",
                "description": "Letter ID (1-665)"
              },
              {
                "type": "string",
                "description": "Person/place slug or view name"
              }
            ],
            "description": "The ID or identifier for the target (letter ID, person slug, place slug, or view name)"
          }
        },
        "required": [
          "target",
          "id"
        ]
      },
      "page": "/"
    }