Helfer & Profi
Server Details
Free German neighborhood marketplace: search local help requests and providers by postal code.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- helferundprofi/helfer-und-profi
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 15 tools
Each tool has a distinct resource and action, covering provider contact, job creation or participation, item exchange, offers, reviews, and reporting. Superficially similar operations such as contact_provider, ding_anfragen, and submit_offer are clearly differentiated by their targets and workflows.
All tools use snake_case, but naming alternates between English verb_noun forms such as create_job and search_jobs and German noun_verb forms such as ding_anlegen and dinge_suchen. The mixed languages, inconsistent word ordering, and verb-less provider_reviews make the convention readable but not predictable.
Fifteen tools is at the upper end of a well-scoped set, but the breadth is justified by provider discovery, service jobs, shared jobs, and item lending or giving. Each tool supports a recognizable workflow, with no obvious redundant filler.
The set covers discovery and transaction initiation across providers, jobs, shared jobs, items, reviews, and moderation. However, users cannot update or cancel jobs, edit provider registrations, or manage most created content through the tools; item listings have only a partial email-link workaround, leaving notable lifecycle gaps.
Available Tools
15 toolscontact_providerAnbieter anfragenAInspect
Einen Anbieter aus dem Verzeichnis für den Nutzer anfragen (provider_id aus search_providers). Nur nach Zustimmung des Nutzers. Die Anfrage geht mit Name, Kontakt, Ort und Nachricht an den Anbieter; er meldet sich direkt beim Nutzer. Keine Internet-Links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name des Nutzers | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| contact | Yes | E-Mail-Adresse des Nutzers (Pflicht) – geht an den Anbieter | |
| message | Yes | Was gebraucht wird, 10–500 Zeichen | |
| location | No | Optional: PLZ und Ort | |
| text_only | No | true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe | |
| provider_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only hint-level annotations (readOnlyHint=false, destructiveHint=false), the description carries real weight and delivers: it discloses that the user's name, contact, location and message are transmitted to a third party, that the provider replies directly to the user, and that consent is mandatory. It does not mention rate limits, reversibility, or what happens on failure, leaving a few gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying distinct information: what the tool does, the consent precondition, the data flow and follow-up, plus a constraint. Front-loaded with the action and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, no-output-schema mutation tool, the description covers the essential contract: consent gating, transmitted fields, and result behavior. It omits finer points such as handling of phone/text_only preferences and error cases, but the schema descriptions largely cover those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 88%, so the baseline is 3, but the description adds genuine meaning: it lists which fields (Name, Kontakt, Ort, Nachricht) actually travel to the provider and clarifies that provider_id must come from search_providers. That is useful semantic framing beyond the per-property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (anfragen) and resource (Anbieter aus dem Verzeichnis), and explicitly ties provider_id to search_providers, which distinguishes it from sibling tools like register_provider or provider_reviews. An agent can identify the operation and its input source without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('Nur nach Zustimmung des Nutzers') and points to search_providers as the way to obtain provider_id, establishing the intended workflow. It stops short of naming alternatives or stating when-not-to-use conditions, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_jobGesuch aufgebenAInspect
Gesuch für den Nutzer aufgeben. Nur nach Bestätigung durch den Nutzer. Erscheint je nach Einstellung sofort oder nach Prüfung. contact muss eine E-Mail-Adresse sein (hat der Nutzer keine, die eines Angehörigen). Der Nutzer bekommt dorthin einen Bestätigungslink: Erst nach dem Klick (innerhalb von 48 Stunden, sonst Löschung) erscheint das Gesuch. Angebote kommen danach automatisch per E-Mail.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Nur für Heizöl-Lieferungen: heizoel (dann quantity_l Pflicht, kein Betrag – Händler nennen den Preis je 100 Liter) | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| title | Yes | Was gebraucht wird, 5–480 Zeichen, ohne Adresse/Telefon/Links | |
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| contact | Yes | E-Mail-Adresse (Pflicht, wird nie veröffentlicht) | |
| group_ok | No | true = Nachbarn mit derselben PLZ dürfen sich anschließen (gemeinsam beauftragen; nicht bei Taschengeld-Jobs) | |
| location | Yes | PLZ + Ort, z. B. '69412 Eberbach' | |
| text_only | No | true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe | |
| budget_eur | No | Betrag in Euro zur Preisart (bei hourly, fixed und budget Pflicht) | |
| house_call | No | ||
| price_type | No | hourly = pro Stunde, fixed = für die gesamte Aufgabe, budget = Budget bis zu …, open = Nutzer weiß es noch nicht, Anbieter schlagen einen Preis vor (dann kein budget_eur) | |
| quantity_l | No | Nur bei kind=heizoel: ungefähre Menge in Litern | |
| display_name | No | Kurzname, z. B. 'Maria B.' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the real behavioral consequences: publication is immediate or moderated depending on settings, a double opt-in link is sent to contact, and the request is deleted if not confirmed within 48 hours. That 48-hour auto-deletion and the moderation gate are exactly the kind of non-obvious traits an agent must know before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six short sentences, front-loaded with purpose and the consent precondition, then the confirmation flow. The confirmation-link sentence bundles several facts (48h, deletion, visibility, offer delivery) but each fact is distinct and none is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, 4-required mutation tool with no output schema, the description covers the full lifecycle from submission to confirmation and follow-up offers. The one gap is that it never says what the call returns (e.g., a job identifier), which matters since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 92%, so the schema carries most parameter meaning. The description still adds value beyond it by specifying that contact must be an email address and, crucially, that a relative's address should be used if the user has none — a fallback rule absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Gesuch für den Nutzer aufgeben'), so the creation role is unambiguous against read-oriented siblings like get_job or search_jobs. It does not, however, explicitly contrast itself with submit_offer or the other write-path siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A hard precondition is stated up front: 'Nur nach Bestätigung durch den Nutzer', which tells the agent not to call it on its own initiative. It gives clear context but no explicit exclusions or named alternatives for the other job-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ding_anfragenEintrag anfragenAInspect
Für den Nutzer bei einem Eintrag anfragen (ding_id aus dinge_suchen). Nur nach Zustimmung des Nutzers. Die Anfrage geht mit Name, Kontakt und Nachricht an die eintragende Person; sie meldet sich direkt beim Nutzer. Höchstens eine Anfrage je Eintrag und Tag. Keine Internet-Links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name des Nutzers, 2–60 Zeichen | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| ding_id | Yes | ||
| kontakt | Yes | E-Mail-Adresse des Nutzers (Pflicht) – geht an die eintragende Person | |
| nachricht | Yes | Wann und wofür der Nutzer es braucht – bei „Ich suche …“: was er anbieten kann (leihen oder schenken), 10–500 Zeichen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false, openWorld=false), it explains that name, contact and message are forwarded to the entry owner, that the owner replies directly to the user, and that there is a hard cap of one request per entry per day. Those delivery, privacy and rate-limit facts are exactly what the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the action and the consent precondition, followed by delivery behavior and the rate limit. Every sentence carries a constraint an agent would otherwise get wrong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write-side request tool with no output schema, it covers permission, recipient, delivery channel, rate limit and content rules. It does not say what a successful or rejected submission returns, which is a minor gap given there is no output schema to describe that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents most fields; the description still adds the origin of ding_id (from dinge_suchen) and reinforces the consent requirement, which is the highest-risk parameter. The optional phone parameter is not mentioned in the description, a small remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action and target: requesting contact with the person behind an entry, and it explicitly ties ding_id to dinge_suchen, which separates it from pure search tools. It does not distinguish itself from the sibling contact_provider, which also sounds like a contact/request flow, so an agent may still hesitate between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition ('Nur nach Zustimmung des Nutzers'), a rate limit ('Höchstens eine Anfrage je Eintrag und Tag') and a content restriction ('Keine Internet-Links'). What is missing is an explicit statement that the entry must first be found via dinge_suchen, and no explicit comparison with contact_provider.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ding_anlegenEtwas verleihen, verschenken oder suchenAInspect
Für den Nutzer etwas zum Verleihen oder Verschenken eintragen (nur kostenlos, nur Abholung). Nur auf ausdrücklichen Wunsch und nach Bestätigung durch den Nutzer. Öffentlich werden titel, beschreibung, ort und kurzname – dort keine Adresse, Telefonnummer, E-Mail oder Links. kontakt muss eine E-Mail-Adresse sein: Dorthin kommt ein Bestätigungslink (48 Stunden gültig, sonst Löschung), erst danach ist der Eintrag 60 Tage sichtbar. Anfragen kommen per E-Mail; beenden oder verlängern kann der Nutzer mit dem Link aus der E-Mail. Mit art=suchen trägt der Nutzer ein, was er sucht („Ich suche …“, 30 Tage sichtbar, ohne Fotos).
| Name | Required | Description | Default |
|---|---|---|---|
| art | Yes | verleihen = nur ausleihen, verschenken = geschenkt, suchen = „Ich suche …“ (der Nutzer möchte etwas leihen oder geschenkt bekommen) | |
| ort | Yes | PLZ und Ort, z. B. '69412 Eberbach' (ohne Straße) | |
| titel | Yes | Was es ist, 5–80 Zeichen, z. B. 'Bohrmaschine mit Koffer' | |
| consent | Yes | true nur, wenn der Nutzer mindestens 18 ist und ausdrücklich der Datenschutzerklärung und der Veröffentlichung von Ort und Kurzname zugestimmt hat | |
| kontakt | Yes | E-Mail-Adresse (Pflicht, wird nie veröffentlicht; dorthin kommen Bestätigungslink und Anfragen) | |
| kurzname | Yes | Öffentlicher Kurzname, 2–30 Zeichen, z. B. 'Petra aus Eberbach' | |
| kategorie | Yes | Rubrik: werkzeug, garten, fahrzeug (Auto, Anhänger, Transporter), fahrrad, boot (Boot, Kanu, SUP), haushalt, moebel, kinder, freizeit (Sport, Camping), technik, buecher (auch Spiele, Medien), bau (Bau, Renovierung), kleidung, sonstiges | |
| regeln_ok | Yes | true nur, wenn der Nutzer bestätigt: kostenlos (kein Preis, keine Miete, kein Verkauf) und nichts Verbotenes dabei | |
| fahrzeug_ok | No | Bei kategorie fahrzeug oder boot Pflicht (true): Nutzer lässt sich vor der Übergabe den Führerschein zeigen (beim Boot den Bootsführerschein, wenn einer nötig ist) und klärt die Versicherung – bei art=suchen: Nutzer zeigt vor der Übergabe seinen Führerschein, und die Versicherung wird vorher geklärt | |
| beschreibung | No | Optional: Zustand, Größe, wann abholbar – höchstens 480 Zeichen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond the annotations: which fields become public, what must not appear publicly, the email confirmation link with 48-hour validity and deletion on failure, 60-day visibility after confirmation, and 30-day visibility without photos for art=suchen. It discloses the full lifecycle and communication flow, which the annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose and constraints. Every sentence carries relevant rules or lifecycle information, though the paragraph packs several distinct concerns and could be slightly easier to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex create-listing tool with 10 parameters and no output schema, the description covers the essential workflow, visibility, consent, confirmation, expiry, and contact behavior. It does not repeat every schema detail, but it provides the contextual information an agent needs to call the tool correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description still adds useful meaning by emphasizing public visibility rules for titel, beschreibung, ort, and kurzname, and by clarifying the email confirmation workflow tied to kontakt. It does not explain every parameter, but it adds meaningful constraints beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: creating a listing for lending, giving away, or searching, including the art=suchen variant. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as dinge_suchen, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage conditions: only on the user's explicit request, only after confirmation, only free of charge, and only for pickup. It does not name alternative tools or explain when to use those instead, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dinge_suchenVerleihen & Verschenken durchsuchenARead-onlyInspect
Sichtbare Einträge bei Verleihen & Verschenken (ohne Kontaktdaten): id, art (verleihen = zum Leihen, verschenken = geschenkt, suchen = „Ich suche …“: jemand möchte etwas leihen oder geschenkt bekommen), kategorie, titel, beschreibung, ort, kurzname, seit, km (Luftlinie bei Umkreissuche). ort: nur Ziffern = Anfang der PLZ ('69'), sonst Ortsname. Umkreissuche: ort = 5-stellige PLZ und umkreis_km (1–200); dann nach Entfernung sortiert. fotos: bis zu 3 Fotos mit url (groß) und vorschau. Link zu einem Eintrag: https://helferundprofi.de/teilen/#ding=
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Stichwort, z. B. 'Anhänger' | |
| art | No | ||
| ort | No | PLZ-Anfang oder Ort; für Umkreissuche 5-stellige PLZ | |
| kategorie | No | Rubrik: werkzeug, garten, fahrzeug (Auto, Anhänger, Transporter), fahrrad, boot (Boot, Kanu, SUP), haushalt, moebel, kinder, freizeit (Sport, Camping), technik, buecher (auch Spiele, Medien), bau (Bau, Renovierung), kleidung, sonstiges | |
| umkreis_km | No | Umkreis in km um die PLZ in ort | |
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description still adds useful context beyond that: results are 'sichtbare Einträge (ohne Kontaktdaten)', meaning contact data is withheld, and it explains that distance-sorted results appear only for Umkreissuche and that each entry carries up to three photos plus a shareable link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, but it is front-loaded with the scope and then the result fields, followed by filter semantics. Every sentence carries operational detail, though the run-on packing of field definitions makes it slightly harder to scan than a structured list would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no output schema, and no annotations covering return values, the description comprehensively documents the response shape (id, art, kategorie, titel, beschreibung, ort, kurzname, seit, km, fotos, link) and the sorting behavior for Umkreissuche. Nothing essential for calling or interpreting this search tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 67% of parameters, and the description meaningfully adds to it: it defines art values (verleihen = to lend, verschenken = gifted, suchen = seeking), clarifies that ort with only digits means a PLZ prefix while otherwise it is a place name, and states that umkreis_km (1–200) must accompany a 5-digit PLZ. It does not add anything for q or max_results, and kategorie is explained mainly in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: listing visible entries in the Verleihen & Verschenken category, and it enumerates the result fields. It distinguishes itself implicitly from the singular ding_holen by describing a plural, filtered list, but it never names a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the enumeration of filters (q, art, ort, umkreis_km) and the remark that Umkreissuche requires a 5-digit PLZ. However, there is no explicit guidance on when to use this tool instead of siblings like ding_holen or ding_anfragen, and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ding_holenEinzelner Eintrag (Verleihen & Verschenken)ARead-onlyInspect
Ein einzelner sichtbarer Eintrag (ohne Kontaktdaten), z. B. aus einem geteilten Link …/teilen/#ding=12. Antwort ok=false, wenn es ihn nicht mehr gibt.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/non-destructive annotations, it discloses that contact data is omitted and that ok=false signals a vanished entry. That is useful behavioral context for a read operation; auth/rate-limit details are absent but annotations already lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, front-loading the resource and privacy note before the example. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with annotations and no output schema, it covers visibility, contact-data omission, and the not-found response. Adequate for correct invocation, with minor gaps around the full success response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required id parameter. The description partially compensates by linking it to the #ding=12 fragment in shared links, but does not state id format, valid range, or behavior for invalid ids.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (fetch a single visible entry) and resource (ding), plus privacy scope 'ohne Kontaktdaten' and a shared-link example. It implicitly distinguishes itself from plural search siblings via 'ein einzelner', though it does not name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context, e.g. from a shared link ending in #ding=12, which implies when to call it. However, it does not explicitly say when to use this versus dinge_suchen or other lookup tools, nor state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobEinzelnes GesuchARead-onlyInspect
Ein einzelnes sichtbares Gesuch (ohne Kontaktdaten), z. B. aus einem geteilten Link …/#gesuch=12. Leere Liste, wenn es nicht mehr sichtbar ist. Bei gemeinsamen Gesuchen kommt die Karte der Gruppe (Felder wie bei search_jobs).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/destructive=false and closed-world, so the safety bar is met. The description adds genuine behavioral detail beyond that: contact data is withheld, an empty list is returned when the entry is no longer visible, and shared jobs return the group card with search_jobs-shaped fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, then edge-case behavior. The URL fragment is illustrative rather than wasteful, though the phrasing 'Leere Liste' inside a single-item getter takes a moment to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return shape (empty list on invisibility, group card for shared jobs, fields matching search_jobs) and the notable omission of contact data. Nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single required job_id, so the description must compensate. It only implies the value format via the '#gesuch=12' URL fragment, giving a usable hint about what the integer represents but not stating it directly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: fetching a single visible Gesuch, explicitly without contact data. The reference to search_jobs and the shared-link example distinguish it from the list-oriented sibling, though the title 'Einzelnes Gesuch' already carries most of this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete usage scenario (resolving a job from a shared link like …/#gesuch=12), which implies when to reach for it, but never states when to prefer search_jobs instead or what to do when the id is unknown. Usage is inferable rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_jobEinem gemeinsamen Gesuch anschließenAInspect
„Ich brauche das auch“: Der Nutzer schließt sich einem gemeinsamen Gesuch (group_ok=true aus search_jobs) an. Nur mit derselben PLZ und nach Zustimmung des Nutzers. Es entsteht ein eigenes Gesuch des Nutzers: Er bekommt einen Bestätigungslink per E-Mail (48 Stunden gültig), danach kommen Angebote automatisch zu ihm. Öffentlich erscheinen nur Ort, Menge (Heizöl) und die Notiz. Jeder Haushalt entscheidet, vereinbart und bezahlt nur für sich. Die Antwort ist immer gleich, auch wenn der Nutzer schon dabei ist.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional, öffentlich: kurze Notiz ohne Adresse/Telefon/Links, z. B. 'bei mir 8 Fenster' | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| job_id | Yes | ||
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| contact | Yes | E-Mail-Adresse (Pflicht, wird nie veröffentlicht) | |
| location | Yes | PLZ + Ort des Nutzers, gleiche PLZ wie das Gesuch, z. B. '69412 Eberbach' | |
| quantity_l | No | Bei Heizöl-Gesuchen Pflicht: ungefähre Menge in Litern |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses rich behavioral details beyond the annotations: a confirmation email link valid for 48 hours, automatic offer delivery afterward, public visibility limited to location, quantity, and note, and that each household decides and pays independently. It also notes that the response is always the same even if the user has already joined, which is useful idempotency context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then adds only relevant prerequisites and outcomes. Despite being a single paragraph, every sentence contributes useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity, high schema coverage, and annotations covering the safety profile, the description provides enough context for an agent to call the tool correctly. It covers prerequisites, side effects, visibility rules, and response behavior, and no output schema is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high at 86%, so the schema already documents most parameters. The description still adds meaningful context: it reinforces that the location must share the request's postal code and clarifies which fields become public, enhancing the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: the user joins a shared request identified via group_ok=true from search_jobs. It names the resource and the resulting behavior, making it clearly distinguishable from siblings such as create_job or search_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear prerequisites: the request must come from search_jobs with group_ok=true, the user must have the same postal code, and consent is required. It does not explicitly name an alternative tool for cases where these conditions are not met, but the usage context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provider_reviewsBewertungen eines AnbietersCRead-onlyInspect
Veröffentlichte Bewertungen eines Anbieters (nur von vermittelten Kunden).
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | ||
| provider_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive and closed-world, so safety is covered. The description adds the important scope constraint that only reviews from brokered customers are returned, which the agent could not derive from annotations. It does not mention pagination despite max_results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the resource. It is concise but perhaps too short for a 2-parameter tool with no documented schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should at least say what a review contains or how results are ordered/limited. With 0% parameter coverage and no output schema, the definition leaves the agent under-informed about both inputs and returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the parameter load, but it says nothing about provider_id or max_results, including the 1-200 cap on results. The agent gets no guidance on what provider_id refers to or how max_results affects the response.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (published reviews of a provider) and clarifies scope (only from brokered customers). It does not explicitly distinguish itself from the sibling submit_review, which is the write counterpart, but the verb 'Bewertungen veröffentlicht' implies retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and never mentions submit_review as the alternative for submitting a review. The agent must infer that this is the read-side of the review flow from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_providerAls Anbieter anmeldenAInspect
Anmeldung als Anbieter (nur Volljährige). Erscheint nach Prüfung durch den Betreiber. name, location und services werden öffentlich: dort keine Telefonnummer, E-Mail, Straße oder Links – Kontaktdaten nur in contact. Vorher fragen, ob der Nutzer gewerblich oder als Privatperson anbietet (is_trader, Selbstauskunft). Gewerbliche Anbieter brauchen trader_info (Impressum: Name bzw. Firma, Anschrift mit PLZ, E-Mail-Adresse); trader_info wird öffentlich angezeigt. Private Helfer vor Ort mit Postleitzahl in Baden-Württemberg können „Pflegekasse möglich“ angeben (pflegekasse=true, dazu pflegekasse_regeln=true nach ausdrücklicher Bestätigung der Regeln durch den Nutzer).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name, Studio oder Betrieb | |
| adult | Yes | Nutzer ist volljährig | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| contact | Yes | E-Mail-Adresse (Pflicht, wird nicht veröffentlicht; dorthin kommen Anfragen) | |
| location | Yes | PLZ + Ort des Standorts | |
| services | Yes | Leistungen | |
| is_trader | Yes | true = gewerblicher Anbieter (Unternehmer), false = Privatperson – Selbstauskunft des Nutzers | |
| pflegekasse | No | Nur private Helfer vor Ort (is_trader=false) mit Postleitzahl in Baden-Württemberg: true = Pflegebedürftige können den Helfer über den Entlastungsbetrag der Pflegekasse bezahlen (ehrenamtliche Einzelhelfer); wird im Verzeichnis als „Pflegekasse möglich“ angezeigt | |
| trader_info | No | Nur bei is_trader=true: Anbieterkennzeichnung (Impressum) mit Name bzw. Firma, Anschrift mit PLZ und E-Mail-Adresse, 20–400 Zeichen, ohne Links. Wird öffentlich angezeigt. | |
| pflegekasse_regeln | No | Bei pflegekasse=true Pflicht: true nur, wenn der Nutzer ausdrücklich bestätigt hat – nur Hilfe im Alltag (keine Pflege, keine Handwerkerarbeiten), höchstens 2 Personen gleichzeitig, nicht für Verwandte oder Verschwägerte bis zum 2. Grad, nicht im eigenen Haushalt und nicht für jemanden, dessen Pflegeperson man ist, jeden Einsatz schriftlich bestätigen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses important behavior: the registration appears only after operator review, name/location/services become public, contact details must stay in contact, and trader_info is publicly displayed. It also explains conditional display of “Pflegekasse möglich” and the need for explicit rule confirmation, which is valuable operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: purpose and adult-only restriction come first, followed by review/publicness constraints and then conditional requirements. Despite being a single German paragraph, every sentence carries relevant registration constraints and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter registration tool with no output schema, the description covers the essential workflow: adult-only registration, operator review, public versus protected fields, commercial versus private classification, trader_info obligations, and Pflegekasse conditions. The remaining schema-level details, such as consent, are already fully documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already defines all parameters in detail. The description still adds useful cross-parameter semantics, especially which fields become public, where contact data belongs, and how is_trader, trader_info, pflegekasse, and pflegekasse_regeln interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: registering as a provider, with the key restriction that only adults may register. It is clearly distinct in practice from sibling tools such as contact_provider, but it does not explicitly name alternatives or draw that contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this to register a provider, only for adults, ask beforehand whether the user is commercial or private, and apply trader_info or Pflegekasse rules conditionally. It does not explicitly state when to use a sibling tool instead, so it falls short of full alternative-routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_contentInhalt meldenAInspect
Rechtswidrigen Inhalt melden (Art. 16 DSA): target_type job, review, provider oder ding (Eintrag bei Verleihen & Verschenken). Mit E-Mail-Adresse in contact kommt automatisch eine Eingangsbestätigung.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Begründung, 5–500 Zeichen | |
| contact | No | Optional: E-Mail für Eingangsbestätigung und Rückmeldung zur Entscheidung | |
| target_id | Yes | ||
| target_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, non-destructive write operation in a closed world. The description adds useful context: the report is tied to DSA Art. 16, and providing a contact email triggers an automatic confirmation of receipt—a behavioral side effect not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with a colon-separated list of target types. Every clause adds value—legal basis, valid targets, and contact behavior—with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter reporting tool with annotations but no output schema, the description covers purpose, legal context, target types, and the contact-email side effect. What happens after submission (moderation flow, anonymity) is not described, but that is a minor omission for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies the enum values for target_type (especially 'ding' as an entry under Lending & Giving) and reiterates the contact email behavior already in the schema. However, target_id (an integer) remains completely undocumented in both schema and description, leaving a notable gap at 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('melden') and resource ('rechtswidrigen Inhalt') and references the legal basis (Art. 16 DSA). It also enumerates the valid target types, making it unmistakable what the tool does and how it differs from all siblings (none of which are reporting tools).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (to report illegal content), but there is no explicit guidance on when not to use it or on alternatives. A sibling like 'contact_provider' could appear related, yet the description does not clarify the boundary between reporting content and contacting a provider.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsGesuche suchenARead-onlyInspect
Offene Gesuche suchen (ohne Kontaktdaten). location: nur Ziffern = Anfang der PLZ ('69'), sonst Ortsname. Umkreissuche: location = 5-stellige PLZ und radius_km (1–200); dann mit distance_km (Luftlinie) und nach Entfernung sortiert. youth_ok=true: Taschengeld-Job – Eltern können ihr Kind (14–17) nur direkt auf helferundprofi.de melden. Preis: budget_eur mit price_type hourly (pro Stunde), fixed (für die gesamte Aufgabe), budget (Budget bis zu) oder open (Preis nach Absprache); ohne price_type ist budget_eur eine Preisvorstellung (ältere Gesuche). Gemeinsame Gesuche (group_ok=true) erscheinen einmal: households = Zahl der Haushalte, members = je Haushalt Ort, Menge und Notiz (ohne Namen/Kontakt), weitere Haushalte mit derselben PLZ können sich mit join_job anschließen. kind=heizoel: Heizöl, liters_total = Gesamtmenge in Litern, Angebote je 100 Liter (per_100l).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Stichwort, z. B. 'Rasen' | |
| location | No | PLZ-Anfang oder Ort; für Umkreissuche 5-stellige PLZ | |
| radius_km | No | Umkreis in km um die PLZ in location | |
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a read-only, non-destructive, non-open-world tool. The description adds meaningful behavioral context: results exclude contact data, radius results include distance_km and are distance-sorted, and shared requests appear once.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and topics are ordered, but the description is a dense semicolon-separated block. Clauses about parameters absent from the schema reduce efficiency and add noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does useful work by explaining privacy, distance sorting, group result shape, and heating-oil units. It still leaves gaps around max_results and creates confusion by describing filter parameters the agent cannot pass.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds useful semantics beyond the schema for location (digits as PLZ prefix vs city name) and radius_km (requires a 5-digit PLZ, results include distance). However, max_results is undocumented, and the description references filters such as youth_ok, budget_eur, price_type, group_ok, and kind that are not present in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: searching open 'Gesuche' without contact data. The resource distinguishes it from provider search, though it does not explicitly name search_providers as the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage rules for location and radius searches, including the 5-digit PLZ requirement for radius search, and points to join_job for shared requests. It lacks explicit when-not guidance versus search_providers or get_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_providersAnbieter suchenARead-onlyInspect
Freigeschaltete Anbieter mit Durchschnittsbewertung. q: Stichwort oder Anfang der PLZ. Umkreissuche: near = 5-stellige PLZ und radius_km (1–200); dann mit distance_km (Luftlinie) und nach Entfernung sortiert. pflegekasse=true im Ergebnis: „Pflegekasse möglich“ – Bezahlung über den Entlastungsbetrag der Pflegekasse möglich (private Helfer in Baden-Württemberg, Angabe des Helfers). nur_pflegekasse=true zeigt nur solche Helfer.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Stichwort oder PLZ-Anfang | |
| near | No | 5-stellige PLZ als Mittelpunkt der Umkreissuche | |
| radius_km | No | Umkreis in km um near | |
| max_results | No | ||
| nur_pflegekasse | No | true = nur Helfer mit „Pflegekasse möglich“ (bisher nur Baden-Württemberg) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, closed-world operation, so the bar is lower; the description still adds real behavior: only activated (freigeschaltete) providers are returned, geo results carry distance_km and are sorted by distance, and the pflegekasse flag is explained in business terms (Entlastungsbetrag, private helpers, Baden-Württemberg).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: resource description first, then parameter behavior. Some sentences merge result-shape details with filter semantics, making it slightly dense to parse, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully reveals result fields (Durchschnittsbewertung, distance_km, sorting, pflegekasse marker), which is what an agent needs. The gaps are max_results semantics and any note on empty-result behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so baseline is 3; the description goes beyond the schema by explaining what q can be (keyword or PLZ prefix), how near and radius_km combine into a radius search, and what pflegekasse/nur_pflegekasse actually mean commercially. Only max_results is left unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opening line names the resource precisely (freigeschaltete Anbieter mit Durchschnittsbewertung) and the tool's action is unambiguous as a search. It does not explicitly contrast itself with siblings like provider_reviews or contact_provider, though the names make the split fairly obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete guidance on the two modes: keyword/PLZ-prefix via q, or radius search via near plus radius_km (1–200), and the result ordering under each mode. It lacks explicit 'use this instead of X' routing to siblings such as contact_provider or provider_reviews.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_offerAngebot abgebenAInspect
Als Anbieter ein Angebot zu einem Gesuch abgeben. Es geht mit Name, Kontakt, Preis und Nachricht an den Auftraggeber automatisch per E-Mail – bei gemeinsamen Gesuchen an alle Haushalte (dann separate_contracts=true nötig). Nur nach Zustimmung des Nutzers. Keine Internet-Links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name oder Betrieb | |
| phone | No | Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht | |
| job_id | Yes | ||
| consent | Yes | true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung | |
| contact | Yes | E-Mail-Adresse (Pflicht) – geht an den Auftraggeber | |
| message | No | Kurze Nachricht | |
| price_eur | No | Preis in Euro (freiwillig; wenn angegeben, mit price_type; bei Heizöl Pflicht: je 100 Liter, 10–500) | |
| text_only | No | true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe | |
| price_type | No | hourly = pro Stunde, fixed = für die gesamte Aufgabe (bei gemeinsamen Gesuchen je Haushalt), per_100l = je 100 Liter inkl. MwSt. (nur und immer bei Heizöl) | |
| separate_contracts | No | Bei gemeinsamen Gesuchen mit mehreren Haushalten Pflicht (true): Der Anbieter bestätigt, dass jeder Haushalt einen eigenen Vertrag und eine eigene Rechnung bekommt und keiner für einen anderen zahlt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the key side effect: the offer is emailed automatically to the client (and to all households in shared jobs), plus the consent gate and the 'no internet links' content rule. It stops short of saying whether offers can be withdrawn or edited afterwards, which matters for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the action front-loaded, followed by delivery behaviour and constraints. No filler, though the 'no internet links' rule sits a little detached at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, no output schema, but full annotations, the definition covers the essential behaviour: who receives the offer, consent requirement, shared-job specifics. Missing only post-submission behaviour (confirmation, editability), which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 90%, so the baseline is 3. The description adds a rule not stated in the schema alone: shared jobs require separate_contracts=true, and it enumerates the core payload (name, contact, price, message) in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Als Anbieter ein Angebot zu einem Gesuch abgeben') and implicitly distinguishes it from create_job/join_job by framing it as the provider-side response to an existing job. An agent knows exactly what action is performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions: only after explicit user consent, and separate_contracts=true for shared jobs across multiple households. It does not explicitly contrast with sibling tools, but the context is clear enough to select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_reviewBewertung abgebenAInspect
Bewertung mit dem einmaligen Bewertungscode (Format XXXX-XXXX), den der Kunde nach einer Vermittlung erhalten hat.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Bewertungscode | |
| stars | Yes | ||
| comment | No | Text | |
| consent | Yes | Zustimmung zur Veröffentlichung | |
| reviewer_name | No | Name oder Kürzel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive write in a closed world, so the safety profile is covered. Beyond that, the description adds genuinely useful behavior: the code is single-use ('einmalig') and originates from a completed placement, which the agent needs in order to set expectations. It still says nothing about moderation, publication timing, or what happens with an already-consumed code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the critical prerequisite (the code) is stated immediately. It is arguably too terse for a review-submission tool, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, 3 required, and no output schema, the description covers the gating prerequisite but omits the outcome: whether the review is published immediately, moderated, or tied to the consent flag. An agent can call the tool correctly, but cannot set the user's expectations about what happens next.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents most parameters; the baseline is 3. The description adds the code format (XXXX-XXXX) beyond the schema's generic 'Bewertungscode', but stays silent on stars, comment, consent, and reviewer_name, so the added value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (submitting a review) and names the required artifact (the one-time review code in XXXX-XXXX format), so the agent understands what the tool consumes. It does not, however, differentiate itself from the sibling provider_reviews, which also concerns reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the code is described as one the customer received after a placement ('nach einer Vermittlung'), which tells the agent this is a post-transaction, customer-facing action. There is no explicit when-to-use vs. alternative guidance, e.g. how this relates to provider_reviews or what to do if the customer has no code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
ding_anfragen1 field changed- changed
Input schema / properties / nachricht / descriptionPrevious value: -"Wann und wofür der Nutzer es braucht, 10–500 Zeichen"New value: +"Wann und wofür der Nutzer es braucht – bei „Ich suche …“: was er anbieten kann (leihen oder schenken), 10–500 Zeichen"
- Changed
ding_anlegen3 fields changed- changed
Input schema / properties / art / descriptionPrevious value: -"verleihen = nur ausleihen, verschenken = geschenkt"New value: +"verleihen = nur ausleihen, verschenken = geschenkt, suchen = „Ich suche …“ (der Nutzer möchte etwas leihen oder geschenkt bekommen)" - changed
Input schema / properties / art / enumPrevious value: -[ - "verleihen", - "verschenken" -]New value: +[ + "verleihen", + "verschenken", + "suchen" +] - changed
Input schema / properties / fahrzeug_ok / descriptionPrevious value: -"Bei kategorie fahrzeug oder boot Pflicht (true): Nutzer lässt sich vor der Übergabe den Führerschein zeigen (beim Boot den Bootsführerschein, wenn einer nötig ist) und klärt die Versicherung"New value: +"Bei kategorie fahrzeug oder boot Pflicht (true): Nutzer lässt sich vor der Übergabe den Führerschein zeigen (beim Boot den Bootsführerschein, wenn einer nötig ist) und klärt die Versicherung – bei art=suchen: Nutzer zeigt vor der Übergabe seinen Führerschein, und die Versicherung wird vorher geklärt"
- Changed
dinge_suchen1 field changed- changed
Input schema / properties / art / enumPrevious value: -[ - "verleihen", - "verschenken" -]New value: +[ + "verleihen", + "verschenken", + "suchen" +]
2 tool updates
- Changed
register_provider2 fields changed- added
Input schema / properties / pflegekasseAdded value: +{ + "description": "Nur private Helfer vor Ort (is_trader=false) mit Postleitzahl in Baden-Württemberg: true = Pflegebedürftige können den Helfer über den Entlastungsbetrag der Pflegekasse bezahlen (ehrenamtliche Einzelhelfer); wird im Verzeichnis als „Pflegekasse möglich“ angezeigt", + "type": "boolean" +} - added
Input schema / properties / pflegekasse_regelnAdded value: +{ + "description": "Bei pflegekasse=true Pflicht: true nur, wenn der Nutzer ausdrücklich bestätigt hat – nur Hilfe im Alltag (keine Pflege, keine Handwerkerarbeiten), höchstens 2 Personen gleichzeitig, nicht für Verwandte oder Verschwägerte bis zum 2. Grad, nicht im eigenen Haushalt und nicht für jemanden, dessen Pflegeperson man ist, jeden Einsatz schriftlich bestätigen", + "type": "boolean" +}
- Changed
search_providers1 field changed- added
Input schema / properties / nur_pflegekasseAdded value: +{ + "description": "true = nur Helfer mit „Pflegekasse möglich“ (bisher nur Baden-Württemberg)", + "type": "boolean" +}
5 tool updates
- Added
ding_anfragen - Added
ding_anlegen - Added
ding_holen - Added
dinge_suchen - Changed
report_content1 field changed- changed
Input schema / properties / target_type / enumPrevious value: -[ - "job", - "review", - "provider" -]New value: +[ + "job", + "review", + "provider", + "ding" +]
3 tool updates
- Changed
create_job9 fields changed- added
Input schema / properties / budget_eur / descriptionAdded value: +"Betrag in Euro zur Preisart (bei hourly, fixed und budget Pflicht)" - changed
Input schema / properties / budget_eur / maximumPrevious value: -10000New value: +100000 - changed
Input schema / properties / budget_eur / minimumPrevious value: -5New value: +1 - added
Input schema / properties / group_okAdded value: +{ + "description": "true = Nachbarn mit derselben PLZ dürfen sich anschließen (gemeinsam beauftragen; nicht bei Taschengeld-Jobs)", + "type": "boolean" +} - added
Input schema / properties / kindAdded value: +{ + "description": "Nur für Heizöl-Lieferungen: heizoel (dann quantity_l Pflicht, kein Betrag – Händler nennen den Preis je 100 Liter)", + "enum": [ + "heizoel" + ], + "type": "string" +} - added
Input schema / properties / price_typeAdded value: +{ + "description": "hourly = pro Stunde, fixed = für die gesamte Aufgabe, budget = Budget bis zu …, open = Nutzer weiß es noch nicht, Anbieter schlagen einen Preis vor (dann kein budget_eur)", + "enum": [ + "hourly", + "fixed", + "budget", + "open" + ], + "type": "string" +} - added
Input schema / properties / quantity_lAdded value: +{ + "description": "Nur bei kind=heizoel: ungefähre Menge in Litern", + "maximum": 30000, + "minimum": 100, + "type": "integer" +} - changed
Input schema / properties / title / descriptionPrevious value: -"Was gebraucht wird, 5–240 Zeichen, ohne Adresse/Telefon/Links"New value: +"Was gebraucht wird, 5–480 Zeichen, ohne Adresse/Telefon/Links" - changed
Input schema / properties / title / maxLengthPrevious value: -240New value: +480
- Added
join_job - Changed
submit_offer5 fields changed- added
Input schema / properties / price_eur / descriptionAdded value: +"Preis in Euro (freiwillig; wenn angegeben, mit price_type; bei Heizöl Pflicht: je 100 Liter, 10–500)" - changed
Input schema / properties / price_eur / maximumPrevious value: -50000New value: +100000 - changed
Input schema / properties / price_eur / minimumPrevious value: -5New value: +1 - added
Input schema / properties / price_typeAdded value: +{ + "description": "hourly = pro Stunde, fixed = für die gesamte Aufgabe (bei gemeinsamen Gesuchen je Haushalt), per_100l = je 100 Liter inkl. MwSt. (nur und immer bei Heizöl)", + "enum": [ + "hourly", + "fixed", + "per_100l" + ], + "type": "string" +} - added
Input schema / properties / separate_contractsAdded value: +{ + "description": "Bei gemeinsamen Gesuchen mit mehreren Haushalten Pflicht (true): Der Anbieter bestätigt, dass jeder Haushalt einen eigenen Vertrag und eine eigene Rechnung bekommt und keiner für einen anderen zahlt", + "type": "boolean" +}
4 tool updates
- Changed
contact_provider3 fields changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Telefon (mind. 6 Ziffern) oder E-Mail – geht an den Anbieter"New value: +"E-Mail-Adresse des Nutzers (Pflicht) – geht an den Anbieter" - changed
Input schema / properties / contact / maxLengthPrevious value: -90New value: +60 - added
Input schema / properties / phoneAdded value: +{ + "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht", + "maxLength": 22, + "type": "string" +}
- Changed
create_job3 fields changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Telefon oder E-Mail (wird nie veröffentlicht; mit E-Mail kommen Angebote automatisch)"New value: +"E-Mail-Adresse (Pflicht, wird nie veröffentlicht)" - changed
Input schema / properties / contact / maxLengthPrevious value: -90New value: +60 - added
Input schema / properties / phoneAdded value: +{ + "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht", + "maxLength": 22, + "type": "string" +}
- Changed
register_provider3 fields changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Telefon oder E-Mail (wird nicht veröffentlicht)"New value: +"E-Mail-Adresse (Pflicht, wird nicht veröffentlicht; dorthin kommen Anfragen)" - changed
Input schema / properties / contact / maxLengthPrevious value: -90New value: +60 - added
Input schema / properties / phoneAdded value: +{ + "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht", + "maxLength": 22, + "type": "string" +}
- Changed
submit_offer3 fields changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Telefon (mind. 6 Ziffern) oder E-Mail – geht an den Auftraggeber"New value: +"E-Mail-Adresse (Pflicht) – geht an den Auftraggeber" - changed
Input schema / properties / contact / maxLengthPrevious value: -90New value: +60 - added
Input schema / properties / phoneAdded value: +{ + "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht", + "maxLength": 22, + "type": "string" +}
2 tool updates
- Changed
register_provider4 fields changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Telefon oder E-Mail"New value: +"Telefon oder E-Mail (wird nicht veröffentlicht)" - added
Input schema / properties / is_traderAdded value: +{ + "description": "true = gewerblicher Anbieter (Unternehmer), false = Privatperson – Selbstauskunft des Nutzers", + "type": "boolean" +} - added
Input schema / properties / trader_infoAdded value: +{ + "description": "Nur bei is_trader=true: Anbieterkennzeichnung (Impressum) mit Name bzw. Firma, Anschrift mit PLZ und E-Mail-Adresse, 20–400 Zeichen, ohne Links. Wird öffentlich angezeigt.", + "maxLength": 400, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "name", - "contact", - "services", - "location", - "adult", - "consent" -]New value: +[ + "name", + "contact", + "services", + "location", + "adult", + "is_trader", + "consent" +]
- Changed
report_content1 field changed- changed
Input schema / properties / contact / descriptionPrevious value: -"Optional: E-Mail für Rückmeldung"New value: +"Optional: E-Mail für Eingangsbestätigung und Rückmeldung zur Entscheidung"
10 tool updates
- First observed
contact_provider - First observed
create_job - First observed
get_job - First observed
provider_reviews - First observed
register_provider - First observed
report_content - First observed
search_jobs - First observed
search_providers - First observed
submit_offer - First observed
submit_review
Related MCP Connectors
Search German flea markets (Flohmarkt, Trödelmarkt) by city, PLZ, date range or radius.
Local businesses across Germany (81 categories) near a postcode or coordinates, with opening status.
Find and book people for short on-site tasks in Switzerland. Free public pilot, early stage.
Search and discover local community listings, classifieds, services and events.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to Kleinanzeigen.de listings, including compact search, listing details, availability checks, and route calculations with optional distance and driving information.-
- AlicenseNot gradedqualityBmaintenanceSearch Kleinanzeigen.de, Germany's largest classifieds site, via MCP tools without API keys.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search Kleinanzeigen listings by keyword, category, location, price and seller type, with extra server-side filtering for title matches and required or excluded terms. It also retrieves full ad details, downloadable photos for visual inspection, category attributes, and seller reputation information.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying German distribution grid operator data from vnbdigital.de and BDEW register, including lookup by ID, postcode, coordinates, and free-text search.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.