DanNet MCP
Provides LLM access to DanNet, the Danish WordNet, allowing agents to query semantic relations and lexical data through the Model Context Protocol.
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.
https://wordnet.dk/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Query DanNet's semantic relations directly through Claude
- Access Danish lexical data via MCP
- Connect AI tools to the Danish WordNet knowledge graph
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- DanNet 1.13.1
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 6 advertised
- Resources
- 3 advertised
- Resource templates
- 1 advertised
- Prompts
- 8 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
get_word_synsets
The synsets (senses) of the Danish `word`, as JSON-LD entries with @id (e.g. "dn:synset-3047" for get_entity_info), skos:definition, dns:ontologicalType and wn:lexfile. A word with a single synset gives that synset's full JSON-LD as the only entry.
{
"type": "object",
"title": "get_word_synsetsArguments",
"required": [
"word"
],
"properties": {
"word": {
"type": "string",
"title": "Word"
}
}
}{
"type": "object",
"title": "get_word_synsetsOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}get_entity_info
Full JSON-LD of a DanNet resource: a synset ("synset-3047"), word ("word-11021628") or sense ("sense-21033604"), given bare or prefixed ("dn:synset-3047"), or an external resource by prefix ("ili:i76470", "ontolex:LexicalConcept"). Properties use prefixed names (wn:hypernym, ontolex:isEvokedBy, ...); language-tagged values are {"@value": ..., "@language": ...}.
{
"type": "object",
"title": "get_entity_infoArguments",
"required": [
"identifier"
],
"properties": {
"identifier": {
"type": "string",
"title": "Identifier"
}
}
}get_word_overview
Every sense of the Danish `word` in one call: a list with synset_id, label, definition, lexfile, ontological_types, synonyms (words sharing the synset) and hypernym ({synset_id, label} or null) per synset. Only synsets where the word itself has a sense count, not multi-word expressions containing it.
{
"type": "object",
"title": "get_word_overviewArguments",
"required": [
"word"
],
"properties": {
"word": {
"type": "string",
"title": "Word"
}
}
}{
"type": "object",
"title": "get_word_overviewOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}autocomplete_danish_word
Danish words starting with `prefix` (at least 3 characters), at most `max_results`, as {"autocompletions": [...]} where lemmas are plain strings and inflected forms of a matching lemma are [lemma, form] pairs.
{
"type": "object",
"title": "autocomplete_danish_wordArguments",
"required": [
"prefix"
],
"properties": {
"prefix": {
"type": "string",
"title": "Prefix"
},
"max_results": {
"type": "integer",
"title": "Max Results",
"default": 10
}
}
}fetch_ddo_definition
The full definitions of `synset_id` from DDO (ordnet.dk), where DanNet's own skos:definition may be truncated. Follows the dns:source of each sense. Returns the DanNet definition, the DDO definitions found and any errors; DDO and DanNet have drifted apart, so some source URLs no longer resolve.
{
"type": "object",
"title": "fetch_ddo_definitionArguments",
"required": [
"synset_id"
],
"properties": {
"synset_id": {
"type": "string",
"title": "Synset Id"
}
}
}sparql_query
Run a SPARQL SELECT `query` against DanNet and return standard SPARQL JSON results ({"head": ..., "results": {"bindings": [...]}}). The common prefixes (dn, dns, dnc, dnf, wn, ontolex, lexinfo, skos, rdfs, rdf, owl, marl, dc, ili, en, enl, cor) are declared automatically. `timeout` is in ms (max 15000), `max_results` at most 100, `distinct` adds DISTINCT, and `inference` selects the model: None tries the base model and retries with inference on an empty result; True forces inference, which inverse relations like wn:hyponym and wn:holo_* need; False forces the base model. Performance rules: anchor every query on a known URI or a word lookup (dn:synset-3047 wn:hypernym ?x, never ?x wn:hypernym ?y alone); never FILTER(CONTAINS(...)) over all labels, look the word up first; make every triple pattern share a variable with another; add LIMIT; prefer VALUES over FILTER for several known URIs; the store also holds the English WordNet (en:), so anchor on dn: or "..."@da to stay in Danish. Templates: Synsets of a word: SELECT DISTINCT ?synset ?label WHERE { ?entry ontolex:canonicalForm/ontolex:writtenRep "hund"@da . ?entry ontolex:sense/ontolex:isLexicalizedSenseOf ?synset . ?synset rdfs:label ?label } Taxonomic ancestors: SELECT DISTINCT ?ancestor ?label WHERE { dn:synset-3047 wn:hypernym+ ?ancestor . ?ancestor rdfs:label ?label } Hyponyms (needs inference=True, or query the inverse wn:hypernym): SELECT DISTINCT ?hyponym ?label WHERE { ?hyponym wn:hypernym dn:synset-3047 . ?hyponym rdfs:label ?label } Ontological types (an RDF bag): SELECT ?type WHERE { dn:synset-3047 dns:ontologicalType/?pos ?type . FILTER(STRSTARTS(STR(?pos), STR(rdf:_))) } Taxonomic similarity (dnf:path, dnf:lch, dnf:wup score two synsets of the same language and part of speech, 1.0 for identical): SELECT ?synset ?score WHERE { ?synset a ontolex:LexicalConcept . FILTER(STRSTARTS(STR(?synset), STR(dn:))) BIND(dnf:wup(dn:synset-3047, ?synset) AS ?score) } ORDER BY DESC(?score) LIMIT 20
{
"type": "object",
"title": "sparql_queryArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query"
},
"timeout": {
"type": "integer",
"title": "Timeout",
"default": 8000
},
"distinct": {
"type": "boolean",
"title": "Distinct",
"default": true
},
"inference": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Inference",
"default": null
},
"max_results": {
"type": "integer",
"title": "Max Results",
"default": 100
}
}
}Prompts
8 advertised
analyze_danish_word
A full linguistic analysis of a Danish `word`.
- word
- No description (required)
- include_examples
- No description
compare_danish_words
A semantic comparison of two Danish words.
- word1
- No description (required)
- word2
- No description (required)
explore_semantic_field
The semantic field around a Danish `concept`, `depth` hyponym levels deep.
- concept
- No description (required)
- depth
- No description
trace_taxonomic_path
The taxonomic relationship between two Danish words.
- word1
- No description (required)
- word2
- No description (required)
map_part_whole_relations
The part-whole relations of a Danish `entity`: "parts", "wholes" or "both".
- entity
- No description (required)
- direction
- No description
find_translation_equivalents
Cross-linguistic equivalents of a Danish `word`.
- word
- No description (required)
- target_lang
- No description
analyze_verb_roles
The thematic roles and event structure of a Danish `verb`.
- verb
- No description (required)
explore_polysemy
The distinct senses of a polysemous Danish `word`.
- word
- No description (required)
- include_etymology
- No description
Resources
3 advertised
dannet_schema
The DanNet schema (dns:): DanNet's own relations and properties.
dannet://dannet-schemaontological_types
The ontological types (dnc:) used in dns:ontologicalType.
dannet://ontological-typeswordnet_schema
The Global WordNet schema (wn:): the standard synset relations.
dannet://wordnet-schemaschema
The RDF schema (Turtle) behind a namespace `prefix`: dns (DanNet relations and properties), dnc (ontological types), wn (WordNet relations), ontolex, lexinfo, skos, marl, ...
dannet://schema/{prefix}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.
- 2026-11-06: 1 of 1 checks answered
- 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
- 1085 ms
- 95th percentile latency
- 1085 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1085 ms · metadata changed · 6 tool(s), 3 resource(s), 1 resource template(s), 8 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dannet-mcp https://wordnet.dk/mcpCodex
codex mcp add dannet-mcp --url https://wordnet.dk/mcpCursor
{
"mcpServers": {
"dannet-mcp": {
"url": "https://wordnet.dk/mcp"
}
}
}Cline
{
"mcpServers": {
"dannet-mcp": {
"type": "streamableHttp",
"url": "https://wordnet.dk/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dannet-mcp": {
"type": "http",
"url": "https://wordnet.dk/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dannet-mcp https://wordnet.dk/mcpClaude Desktop
https://wordnet.dk/mcpWindsurf
{
"mcpServers": {
"dannet-mcp": {
"serverUrl": "https://wordnet.dk/mcp"
}
}
}Let your agent find its tools
Find servers like DanNet MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.