wiktionary-de-mcp
An MCP server that lets Claude (or any other MCP client) look things up in the German Wiktionary, de.wiktionary.org. Instead of answering from memory, Claude checks the dictionary itself and cites the entry.
It's useful when you want a reliable answer to questions like:
- „Gibt es das Wort ‚verschlimmbessern'?"
- "What's the gender and plural of ‚Band' in the sense of a music group?"
- "Is it ‚gewinkt' or ‚gewunken'?"
- "Conjugate ‚gehen' in Konjunktiv II."
- "Does ‚laufen' take ‚haben' or ‚sein' in the perfect tense?"
No API key or account is needed.
Tools
| Tool | What it does |
|---|---|
lookup_word |
Checks whether a word exists and returns its dictionary entry: part of speech, gender, inflected forms (plural and cases, comparative and superlative, principal verb forms, auxiliary verb), hyphenation, pronunciation (IPA), meanings, etymology, synonyms, antonyms and example sentences. Upper- and lower-case spellings are tried automatically (Laufen vs. laufen). If the word isn't in Wiktionary, the result says NOT FOUND and suggests similar entries. |
get_inflection_table |
The complete conjugation of a verb: every tense, mood and person, plus participles and the imperative. For nouns and adjectives it returns the declension or comparison forms. |
search_wiktionary |
Searches titles and full text, with "did you mean" suggestions. Handy for misspellings or for finding compounds that contain a word stem. |
get_raw_wikitext |
The raw source of a page, for anything the other tools leave out (translations, references). Returns 8,000 characters at a time and can be narrowed to one section. |
Entries are written in German, as on Wiktionary. The German Wiktionary also documents
words from other languages, explained in German. Use lookup_word with
language: "en" (or "Englisch", "French", "*" for all) to get those.
Setup
You need uv installed. uv
downloads and runs the server for you (via uvx), so there is nothing else to install.
Claude Desktop
Open Settings → Developer → Edit Config, or edit claude_desktop_config.json
directly:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server:
{
"mcpServers": {
"wiktionary-de": {
"command": "uvx",
"args": ["wiktionary-de-mcp"]
}
}
}
Restart Claude Desktop, then ask it something about a German word.
If Claude Desktop reports that it can't start the server, it usually can't find uvx.
Desktop apps often don't see the PATH from your shell. Run which uvx (macOS) or
where uvx (Windows) and put the full path in "command", for example
"/Users/you/.local/bin/uvx".
Claude Code
claude mcp add --scope user wiktionary-de -- uvx wiktionary-de-mcp
--scope user makes it available in every project. Leave it out to add it to the
current project only.
Other MCP clients
Any client that supports stdio servers works. Configure the command uvx with the
argument wiktionary-de-mcp. If you prefer pip, install with pip install wiktionary-de-mcp
and use the command wiktionary-de-mcp.
Updating
uvx caches the package. To get a newer release, run uvx wiktionary-de-mcp@latest
once, or pin a version in the config with "args": ["wiktionary-de-mcp@0.2.0"].
Good to know
- Grammar is per word. Wiktionary records the grammar of individual words: gender, plural, cases, conjugation, auxiliary verb. It doesn't explain general rules such as when to use the dative or where commas go. Claude answers those from its own knowledge.
- Wiktionary isn't exhaustive. Not finding a word doesn't prove it isn't German. Many valid compounds (Donaudampfschifffahrt) have no entry of their own.
- Privacy. The server sends only the words you look up to the public Wikimedia API at de.wiktionary.org. Nothing else leaves your machine. Responses are cached in memory for 15 minutes.
Development
git clone https://github.com/joelbarmettlerUZH/wiktionary-mcp
cd wiktionary-mcp
uv sync
uv run pytest -m "not network" # offline tests
uv run pytest # also runs live tests against de.wiktionary.org
npx @modelcontextprotocol/inspector uv run wiktionary-de-mcp # try the tools interactively
To use your local checkout from Claude Desktop, use this server entry:
"wiktionary-de": {
"command": "uv",
"args": ["run", "--directory", "/path/to/wiktionary-mcp", "wiktionary-de-mcp"]
}
The code is small: server.py defines the tools, wikitext.py turns Wiktionary's page
source into readable text, and client.py talks to the MediaWiki API.
Releasing
Every push to main runs release.yml. If the version in
pyproject.toml isn't on PyPI yet, the workflow tests, builds and publishes the package
with Trusted Publishing (no stored token). It
then creates a matching vX.Y.Z GitHub release. If that version is already on PyPI, it
does nothing. To release:
uv version --bump patch # or minor / major; updates pyproject.toml and uv.lock
git commit -am "Release vX.Y.Z" && git push
License
The code is licensed under the Apache License 2.0. Dictionary content returned by the tools comes from Wiktionary contributors and is licensed under CC BY-SA 4.0.
Metadata
Release files for wiktionary-de-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wiktionary_de_mcp-0.1.0.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wiktionary_de_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.2 kB
Release files / wiktionary_de_mcp-0.1.0.tar.gz
| Download URL | wiktionary_de_mcp-0.1.0.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18c2230e65c6688e5e9c9fa1aaa69ed7c66f6af456edb95324e37da136855a0e
|
|
BLAKE2b-256 checksum How to use checksums |
292905c350acf81520296c78620535eea194265de21ba725974f0b1ef4f43faf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / wiktionary_de_mcp-0.1.0-py3-none-any.whl
| Download URL | wiktionary_de_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c3b945d5fc2ad7113d8d483ef80e4563e1e8a896691718383487a2bf1967539c
|
|
BLAKE2b-256 checksum How to use checksums |
1a0809117df101ea812f2f8934332ad4821c33b4a22cbfde79e47dd2626233bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|