{"name":"io.github.helferundprofi/helfer-und-profi","slug":"helferundprofi-helfer-und-profi","title":"Helfer & Profi","description":"Free German neighborhood marketplace: search local help requests and providers by postal code.","url":"https://mcp.market/server/helferundprofi-helfer-und-profi","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-17T18:42:36.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:25:32.181Z","last_ok_at":"2026-11-04T07:25:32.181Z","latency_ms":288},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/helferundprofi/helfer-und-profi","website":"https://helferundprofi.de/","version":"1.5.1","remotes":[{"type":"streamable-http","url":"https://pcbyuhvyjgadanzlghmw.supabase.co/functions/v1/mcp"}],"packages":[],"tools":[{"name":"contact_provider","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"provider_id":{"type":"integer"},"name":{"type":"string","description":"Name des Nutzers","maxLength":60},"contact":{"type":"string","description":"E-Mail-Adresse des Nutzers (Pflicht) – geht an den Anbieter","maxLength":60},"phone":{"type":"string","description":"Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht","maxLength":22},"message":{"type":"string","description":"Was gebraucht wird, 10–500 Zeichen","maxLength":500},"location":{"type":"string","description":"Optional: PLZ und Ort","maxLength":40},"text_only":{"type":"boolean","description":"true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe"},"consent":{"type":"boolean","description":"true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"}},"required":["provider_id","name","contact","message","consent"],"additionalProperties":false}},{"name":"create_job","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"Was gebraucht wird, 5–480 Zeichen, ohne Adresse/Telefon/Links","maxLength":480},"contact":{"type":"string","description":"E-Mail-Adresse (Pflicht, wird nie veröffentlicht)","maxLength":60},"phone":{"type":"string","description":"Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht","maxLength":22},"display_name":{"type":"string","description":"Kurzname, z. B. 'Maria B.'","maxLength":40},"location":{"type":"string","description":"PLZ + Ort, z. B. '69412 Eberbach'","maxLength":35},"price_type":{"type":"string","enum":["hourly","fixed","budget","open"],"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)"},"budget_eur":{"type":"number","minimum":1,"maximum":100000,"description":"Betrag in Euro zur Preisart (bei hourly, fixed und budget Pflicht)"},"house_call":{"type":"boolean"},"text_only":{"type":"boolean","description":"true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe"},"group_ok":{"type":"boolean","description":"true = Nachbarn mit derselben PLZ dürfen sich anschließen (gemeinsam beauftragen; nicht bei Taschengeld-Jobs)"},"kind":{"type":"string","enum":["heizoel"],"description":"Nur für Heizöl-Lieferungen: heizoel (dann quantity_l Pflicht, kein Betrag – Händler nennen den Preis je 100 Liter)"},"quantity_l":{"type":"integer","minimum":100,"maximum":30000,"description":"Nur bei kind=heizoel: ungefähre Menge in Litern"},"consent":{"type":"boolean","description":"true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"}},"required":["title","contact","location","consent"],"additionalProperties":false}},{"name":"get_job","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"integer"}},"required":["job_id"],"additionalProperties":false}},{"name":"join_job","description":"„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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"integer"},"contact":{"type":"string","description":"E-Mail-Adresse (Pflicht, wird nie veröffentlicht)","maxLength":60},"phone":{"type":"string","description":"Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht","maxLength":22},"location":{"type":"string","description":"PLZ + Ort des Nutzers, gleiche PLZ wie das Gesuch, z. B. '69412 Eberbach'","maxLength":35},"quantity_l":{"type":"integer","minimum":100,"maximum":30000,"description":"Bei Heizöl-Gesuchen Pflicht: ungefähre Menge in Litern"},"note":{"type":"string","description":"Optional, öffentlich: kurze Notiz ohne Adresse/Telefon/Links, z. B. 'bei mir 8 Fenster'","maxLength":150},"consent":{"type":"boolean","description":"true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"}},"required":["job_id","contact","location","consent"],"additionalProperties":false}},{"name":"provider_reviews","description":"Veröffentlichte Bewertungen eines Anbieters (nur von vermittelten Kunden).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"provider_id":{"type":"integer"},"max_results":{"type":"integer","minimum":1,"maximum":200}},"required":["provider_id"],"additionalProperties":false}},{"name":"register_provider","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Name, Studio oder Betrieb","maxLength":80},"contact":{"type":"string","description":"E-Mail-Adresse (Pflicht, wird nicht veröffentlicht; dorthin kommen Anfragen)","maxLength":60},"phone":{"type":"string","description":"Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht","maxLength":22},"services":{"type":"string","description":"Leistungen","maxLength":180},"location":{"type":"string","description":"PLZ + Ort des Standorts","maxLength":50},"adult":{"type":"boolean","description":"Nutzer ist volljährig"},"is_trader":{"type":"boolean","description":"true = gewerblicher Anbieter (Unternehmer), false = Privatperson – Selbstauskunft des Nutzers"},"trader_info":{"type":"string","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},"consent":{"type":"boolean","description":"true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"}},"required":["name","contact","services","location","adult","is_trader","consent"],"additionalProperties":false}},{"name":"report_content","description":"Rechtswidrigen Inhalt melden (Art. 16 DSA): target_type job, review oder provider. Mit E-Mail-Adresse in contact kommt automatisch eine Eingangsbestätigung.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target_type":{"type":"string","enum":["job","review","provider"]},"target_id":{"type":"integer"},"reason":{"type":"string","description":"Begründung, 5–500 Zeichen","maxLength":500},"contact":{"type":"string","description":"Optional: E-Mail für Eingangsbestätigung und Rückmeldung zur Entscheidung","maxLength":90}},"required":["target_type","target_id","reason"],"additionalProperties":false}},{"name":"search_jobs","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Stichwort, z. B. 'Rasen'","maxLength":100},"location":{"type":"string","description":"PLZ-Anfang oder Ort; für Umkreissuche 5-stellige PLZ","maxLength":35},"radius_km":{"type":"integer","minimum":1,"maximum":200,"description":"Umkreis in km um die PLZ in location"},"max_results":{"type":"integer","minimum":1,"maximum":100}},"required":[],"additionalProperties":false}},{"name":"search_providers","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Stichwort oder PLZ-Anfang","maxLength":100},"near":{"type":"string","description":"5-stellige PLZ als Mittelpunkt der Umkreissuche","maxLength":5},"radius_km":{"type":"integer","minimum":1,"maximum":200,"description":"Umkreis in km um near"},"max_results":{"type":"integer","minimum":1,"maximum":100}},"required":[],"additionalProperties":false}},{"name":"submit_offer","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"integer"},"name":{"type":"string","description":"Name oder Betrieb","maxLength":80},"contact":{"type":"string","description":"E-Mail-Adresse (Pflicht) – geht an den Auftraggeber","maxLength":60},"phone":{"type":"string","description":"Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht","maxLength":22},"price_eur":{"type":"number","minimum":1,"maximum":100000,"description":"Preis in Euro (freiwillig; wenn angegeben, mit price_type; bei Heizöl Pflicht: je 100 Liter, 10–500)"},"price_type":{"type":"string","enum":["hourly","fixed","per_100l"],"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)"},"separate_contracts":{"type":"boolean","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"},"message":{"type":"string","description":"Kurze Nachricht","maxLength":350},"text_only":{"type":"boolean","description":"true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe"},"consent":{"type":"boolean","description":"true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"}},"required":["job_id","name","contact","consent"],"additionalProperties":false}},{"name":"submit_review","description":"Bewertung mit dem einmaligen Bewertungscode (Format XXXX-XXXX), den der Kunde nach einer Vermittlung erhalten hat.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","description":"Bewertungscode","maxLength":20},"stars":{"type":"integer","minimum":1,"maximum":5},"comment":{"type":"string","description":"Text","maxLength":500},"reviewer_name":{"type":"string","description":"Name oder Kürzel","maxLength":40},"consent":{"type":"boolean","description":"Zustimmung zur Veröffentlichung"}},"required":["code","stars","consent"],"additionalProperties":false}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-10-28T18:34:00.423Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-28T18:34:00.337Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 639ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 3 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://pcbyuhvyjgadanzlghmw.supabase.co/functions/v1/mcp","reachable":true,"authRequired":false,"latencyMs":639,"serverInfo":{"name":"helfer-und-profi","version":"1.10.0"}}],"packages":[],"repo":{"found":true,"owner":"helferundprofi","repo":"helfer-und-profi","archived":false,"pushedAt":"2026-10-17T18:42:36Z","stars":0,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/344069934?v=4","ownerCreatedAt":"2026-10-17T18:38:48Z"},"icon":{"url":"https://helferundprofi.de/logo-512.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-10-17T18:42:36.000Z","score":23}}}},"grade_history":[],"reviews":[]}