Weblate MCP by usefulapi

Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
96%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~5,605Tokens (Tool-Definitionen)
~1.7 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.38% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "weblate": {
      "url": "https://weblate.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://weblate.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (23)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢weblate_list_projects(page, page_size)

List the projects visible to this token: name, slug, website and settings (review workflow, access control). GET /api/projects/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_project(project)

One project by slug: name, website, settings, instructions and links. GET /api/projects/{project}/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    }
  },
  "required": [
    "project"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_components(project, page, page_size)

List translation components (one translatable file set in a repository), with repository, file mask, source language and status flags. Give a project to list only its components. Repository URLs have embedded credentials removed. GET /api/components/ or /api/projects/{project}/components/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "description": "Only this project's components.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_component(project, component)

One component: repository, branch, file mask, template, source language, commit and merge settings, lock state. GET /api/components/{project}/{component}/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    }
  },
  "required": [
    "project",
    "component"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_translations(project, component, page, page_size)

List the translations (one language each) of a component with their statistics: total, translated, fuzzy, percent, last change. GET /api/components/{project}/{component}/translations/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "project",
    "component"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_translation(project, component, language)

One translation (a component in one language): statistics, language, file name, revision and links. GET /api/translations/{project}/{component}/{language}/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans')."
    }
  },
  "required": [
    "project",
    "component",
    "language"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_statistics(project, component, language, page, page_size)

Translation progress: strings and words total, translated, needing edit, with percentages and checks. Scope by project; add a component for per-language statistics of a component, add a language too for one translation. GET /api/projects/{project}/statistics/, /api/components/{project}/{component}/statistics/ or /api/translations/{project}/{component}/{language}/statistics/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans')."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "project"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_project_languages(project, page, page_size)

Per-language translation statistics for a whole project (code, total, translated, percentages). GET /api/projects/{project}/languages/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "project"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_languages(page, page_size)

List the languages known to this Weblate instance: code, name, text direction, plural forms. GET /api/languages/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_units(project, component, language, q, page, ...)

List or search translation strings (units): source, target, state (0 untranslated, 10 needs editing, 20 translated, 30 approved, 100 read-only), context, location, failing checks. Search with Weblate's query syntax, for example state:<translated or has:suggestion. Give project + component + language to read one translation; without them all visible strings are searched. GET /api/translations/{project}/{component}/{language}/units/ or /api/units/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans')."
    },
    "q": {
      "description": "Weblate search query (https://docs.weblate.org/en/latest/user/search.html), for example 'state:<translated' or 'source:hello'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_unit(unit_id)

One string by id: source and target forms, state, context, location, flags, labels, explanation, suggestions/comments flags, web link. GET /api/units/{id}/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    }
  },
  "required": [
    "unit_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_unit_comments(unit_id, page, page_size)

Comments on one string (Weblate 5.15+). GET /api/units/{id}/comments/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "unit_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_suggestions(unit_id, page, page_size)

List suggestions (proposed translations waiting for review), newest first (Weblate 2026.8+). Give a unit id for one string's suggestions. GET /api/suggestions/ or /api/units/{id}/suggestions/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_list_changes(project, component, language, user, action, ...)

The activity log: who changed or translated what, when, with the action name and the changed text. Scope by project, component or translation (language), or filter by user, action id and time range. GET /api/changes/ or the project/component/translation changes endpoint.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans')."
    },
    "user": {
      "description": "Only changes by this username.",
      "type": "string",
      "minLength": 1,
      "maxLength": 150
    },
    "action": {
      "description": "Only these action ids (see Weblate's change actions).",
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 1000
      }
    },
    "timestamp_after": {
      "description": "Only changes after this ISO 8601 time.",
      "type": "string",
      "maxLength": 64
    },
    "timestamp_before": {
      "description": "Only changes before this ISO 8601 time.",
      "type": "string",
      "maxLength": 64
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_search_memory(source, source_language, target_language, project, page, ...)

Browse the translation memory entries visible to the token, filtered by source text (substring), languages or project. GET /api/memory/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "source": {
      "description": "Case-insensitive substring of the source text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "source_language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "target_language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_lookup_memory(strings, source_language, target_language, project, exact)

Find translation memory matches (exact or fuzzy) for up to 20 source strings in one language pair. Read-only: nothing is stored. POST /api/memory/lookup/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "strings": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 5000
      },
      "description": "Source strings to look up."
    },
    "source_language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Source language code."
    },
    "target_language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Target language code."
    },
    "project": {
      "description": "Restrict to this project's memory.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "exact": {
      "description": "Return exact matches only, skipping fuzzy matching.",
      "type": "boolean"
    }
  },
  "required": [
    "strings",
    "source_language",
    "target_language"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢weblate_get_repository_status(project, component)

Version-control status: pending changes to commit, upstream changes to merge, changes to push, remote commit, merge failure. For a project (summary of all its repositories) or one component. GET /api/projects/{project}/repository/ or /api/components/{project}/{component}/repository/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    }
  },
  "required": [
    "project"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴weblate_update_translation(unit_id, target, state)

WRITE: set the translation of one string (replaces the current target). `target` is the list of plural forms. `state` is required (Weblate rejects a partial update without both): 0 untranslated with an empty target, 10 needs editing, 20 translated or 30 approved (approval needs the review workflow and permission). The number of plural forms must match the language. Changes are committed to the repository by Weblate's normal schedule. PATCH /api/units/{id}/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    },
    "target": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 20000
      },
      "description": "The text as a list of plural forms; use a one-element list for a string without plurals."
    },
    "state": {
      "anyOf": [
        {
          "type": "number",
          "const": 0
        },
        {
          "type": "number",
          "const": 10
        },
        {
          "type": "number",
          "const": 20
        },
        {
          "type": "number",
          "const": 30
        }
      ],
      "description": "New state: 0 untranslated (target must be empty), 10 needs editing, 20 translated, 30 approved."
    }
  },
  "required": [
    "unit_id",
    "target",
    "state"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴weblate_add_suggestion(unit_id, target)

WRITE: propose a translation for one string; normally a reviewer accepts it later, but the author's automatic upvote (or an existing identical suggestion) can reach the project's auto-accept threshold and apply it at once. Needs the Add suggestion permission and suggestions enabled (Weblate 2026.8+). POST /api/units/{id}/suggestions/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    },
    "target": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 20000
      },
      "description": "The text as a list of plural forms; use a one-element list for a string without plurals."
    }
  },
  "required": [
    "unit_id",
    "target"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴weblate_accept_suggestion(suggestion_id, approve)

WRITE: apply a suggestion to its string (replaces the current translation). `approve` also marks it approved (review workflow and permission needed). Weblate 2026.8+. POST /api/suggestions/{id}/accept/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "suggestion_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Suggestion id (from weblate_list_suggestions)."
    },
    "approve": {
      "description": "Also mark the translation approved.",
      "type": "boolean"
    }
  },
  "required": [
    "suggestion_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡weblate_add_unit_comment(unit_id, comment, scope)

WRITE: add a comment to one string (Markdown, @username mentions notify users). `scope` is global (all languages), translation (this language) or report (a source-string issue report; needs the review workflow). Weblate 5.12+. POST /api/units/{id}/comments/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Weblate unit id (from weblate_list_units)."
    },
    "comment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "description": "The comment text (max 1000 characters)."
    },
    "scope": {
      "description": "Comment scope (default global).",
      "type": "string",
      "enum": [
        "global",
        "translation",
        "report"
      ]
    }
  },
  "required": [
    "unit_id",
    "comment"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴weblate_repository_operation(project, component, operation)

WRITE: commit (write pending translations into the local repository), pull (merge upstream changes) or push (publish committed changes to the remote repository) for a project or one component. Push changes the remote repository. reset and cleanup are not offered. POST /api/projects/{project}/repository/ or /api/components/{project}/{component}/repository/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "description": "Omit to run the operation on every component of the project.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "operation": {
      "type": "string",
      "enum": [
        "commit",
        "pull",
        "push"
      ]
    }
  },
  "required": [
    "project",
    "operation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴weblate_autotranslate(project, component, language, mode, auto_source, ...)

WRITE: fill a translation automatically from other components (auto_source others, default) or from machine translation (mt, needs engines). `mode` suggest only adds suggestions (default), translate writes translations, fuzzy marks them needing edit. `q` limits it to strings matching a search (default state:<translated, the strings that are not translated yet); threshold is the minimum match score (default 80). Use background to schedule a task instead of waiting. POST /api/translations/{project}/{component}/{language}/autotranslate/.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project slug (the URL name, for example 'hello')."
    },
    "component": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Component slug. A component inside a category is 'category/component'."
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans')."
    },
    "mode": {
      "description": "suggest (default), translate, fuzzy or approved.",
      "type": "string",
      "enum": [
        "suggest",
        "translate",
        "fuzzy",
        "approved"
      ]
    },
    "auto_source": {
      "description": "others = other components (default), mt = machine translation engines (needs engines).",
      "type": "string",
      "enum": [
        "mt",
        "others"
      ]
    },
    "q": {
      "description": "Only strings matching this search (default 'state:<translated').",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "engines": {
      "description": "Machine translation engine ids; required when auto_source is mt.",
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60
      }
    },
    "threshold": {
      "description": "Minimum match score, 1-100 (default 80).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "background": {
      "description": "Schedule as a background task and return a task url (Weblate 2026.10+).",
      "type": "boolean"
    }
  },
  "required": [
    "project",
    "component",
    "language"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet23 Tools