Helfer & Profi

Free German neighborhood marketplace: search local help requests and providers by postal code.

사용해야 할까요

품질 및 안전성

B
설명 품질
78%
스키마 완전성
90%
이름 품질
92%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (6)

  • HIGHTool poisoning patterns detected
  • LOWTool 'provider_reviews' description lacks action verbprovider_reviews에서
  • LOWTool 'create_job' description lacks action verbcreate_job에서
  • LOWTool 'submit_offer' description lacks action verbsubmit_offer에서
  • LOWTool 'register_provider' description lacks action verbregister_provider에서
  • INFOTool description contains placeholder or incomplete textsubmit_review에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,097토큰 (도구 정의)
~1.5 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.64%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "helfer-und-profi": {
      "url": "https://pcbyuhvyjgadanzlghmw.supabase.co/functions/v1/mcp"
    }
  }
}

원격 엔드포인트

https://pcbyuhvyjgadanzlghmw.supabase.co/functions/v1/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (10)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_jobs(q, location, radius_km, max_results)

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.

입력 스키마

{
  "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
}
🟢search_providers(q, near, radius_km, max_results)

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.

입력 스키마

{
  "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
}
🟢get_job(job_id)

Ein einzelnes sichtbares Gesuch (ohne Kontaktdaten), z. B. aus einem geteilten Link …/#gesuch=12. Leere Liste, wenn es nicht mehr sichtbar ist.

입력 스키마

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer"
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false
}
🟢provider_reviews(provider_id, max_results)

Veröffentlichte Bewertungen eines Anbieters (nur von vermittelten Kunden).

입력 스키마

{
  "type": "object",
  "properties": {
    "provider_id": {
      "type": "integer"
    },
    "max_results": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "provider_id"
  ],
  "additionalProperties": false
}
🟢contact_provider(provider_id, name, contact, message, location, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "provider_id": {
      "type": "integer"
    },
    "name": {
      "type": "string",
      "description": "Name des Nutzers",
      "maxLength": 60
    },
    "contact": {
      "type": "string",
      "description": "Telefon (mind. 6 Ziffern) oder E-Mail – geht an den Anbieter",
      "maxLength": 90
    },
    "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
}
🟡create_job(title, contact, display_name, location, budget_eur, ...)

Gesuch für den Nutzer aufgeben. Nur nach Bestätigung durch den Nutzer. Erscheint je nach Einstellung sofort oder nach Prüfung. Enthält contact eine E-Mail-Adresse, bekommt der Nutzer Angebote automatisch per E-Mail; mit nur einer Telefonnummer ruft der Betreiber an.

입력 스키마

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Was gebraucht wird, 5–240 Zeichen, ohne Adresse/Telefon/Links",
      "maxLength": 240
    },
    "contact": {
      "type": "string",
      "description": "Telefon oder E-Mail (wird nie veröffentlicht; mit E-Mail kommen Angebote automatisch)",
      "maxLength": 90
    },
    "display_name": {
      "type": "string",
      "description": "Kurzname, z. B. 'Maria B.'",
      "maxLength": 40
    },
    "location": {
      "type": "string",
      "description": "PLZ + Ort, z. B. '69412 Eberbach'",
      "maxLength": 35
    },
    "budget_eur": {
      "type": "number",
      "minimum": 5,
      "maximum": 10000
    },
    "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"
    },
    "consent": {
      "type": "boolean",
      "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"
    }
  },
  "required": [
    "title",
    "contact",
    "location",
    "consent"
  ],
  "additionalProperties": false
}
🟡submit_offer(job_id, name, contact, price_eur, message, ...)

Als Anbieter ein Angebot zu einem Gesuch abgeben. Es geht mit Name, Kontakt, Preis und Nachricht an den Auftraggeber (per E-Mail, sonst über den Betreiber). Nur nach Zustimmung des Nutzers. Keine Internet-Links.

입력 스키마

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer"
    },
    "name": {
      "type": "string",
      "description": "Name oder Betrieb",
      "maxLength": 80
    },
    "contact": {
      "type": "string",
      "description": "Telefon (mind. 6 Ziffern) oder E-Mail – geht an den Auftraggeber",
      "maxLength": 90
    },
    "price_eur": {
      "type": "number",
      "minimum": 5,
      "maximum": 50000
    },
    "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
}
⚪register_provider(name, contact, services, location, adult, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name, Studio oder Betrieb",
      "maxLength": 80
    },
    "contact": {
      "type": "string",
      "description": "Telefon oder E-Mail",
      "maxLength": 90
    },
    "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"
    },
    "consent": {
      "type": "boolean",
      "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung"
    }
  },
  "required": [
    "name",
    "contact",
    "services",
    "location",
    "adult",
    "consent"
  ],
  "additionalProperties": false
}
🟡submit_review(code, stars, comment, reviewer_name, consent)

Bewertung mit dem einmaligen Bewertungscode (Format XXXX-XXXX), den der Kunde nach einer Vermittlung erhalten hat.

입력 스키마

{
  "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
}
⚪report_content(target_type, target_id, reason, contact)

Rechtswidrigen Inhalt melden (Art. 16 DSA): target_type job, review oder provider.

입력 스키마

{
  "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 Rückmeldung",
      "maxLength": 90
    }
  },
  "required": [
    "target_type",
    "target_id",
    "reason"
  ],
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 10개