Search / io.github.kuhumcst/dannet
dannet
R0· no sign-inDanNet - Danish WordNet with rich lexical relationships and SPARQL access.
v1.0.2 · active · repository · descriptor JSON · versions
Search / io.github.kuhumcst/dannet
R0· no sign-inDanNet - Danish WordNet with rich lexical relationships and SPARQL access.
v1.0.2 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"dannet": {
"type": "http",
"url": "https://wordnet.dk/mcp"
}
}
}claude mcp add --transport http dannet https://wordnet.dk/mcp[mcp_servers.dannet]
url = "https://wordnet.dk/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dannet": {
"type": "remote",
"url": "https://wordnet.dk/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"dannet": {
"type": "http",
"url": "https://wordnet.dk/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=dannet&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd29yZG5ldC5kay9tY3AifQ%3D%3D"
}{
"servers": {
"dannet": {
"type": "http",
"url": "https://wordnet.dk/mcp"
}
}
}{
"mcpServers": {
"dannet": {
"httpUrl": "https://wordnet.dk/mcp"
}
}
}extensions:
"dannet":
enabled: true
name: "dannet"
type: streamable_http
uri: "https://wordnet.dk/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: sparql_query (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_word_synsets (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); autocomplete_danish_word (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 1,199 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +reachable +uptime-100% -stale-279d
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://wordnet.dk/mcp streamable-http | none | yes | 100% | 898 ms | 2025-06-18 | 2026-10-19 |
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. |
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. |
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": ...}. |
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. |
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. |
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 |
Schemas: list_tools.
{
"name": "io.github.kuhumcst/dannet",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://wordnet.dk/mcp",
"type": "streamable-http"
}
],
"version": "1.0.2",
"repository": {
"url": "https://github.com/kuhumcst/DanNet",
"source": "github"
},
"description": "DanNet - Danish WordNet with rich lexical relationships and SPARQL access."
}