addrbookFor publishers
← The evidence ledger

Evidence row 222108

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 81992af4-71b3-49d7-9626-1ed3495e4486
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
1664ad1de2baacde690eb8ee2c3427f24289ccd3b604271ebca151d5dad5a17b
Leaf
0x94c72ab9bed3cf537bfb84532c030ffd6993ecd9cc1ed4d59664e879690c58c9

What was observed

{
  "count": 10,
  "tools": [
    {
      "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consent": {
            "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung",
            "type": "boolean"
          },
          "contact": {
            "description": "E-Mail-Adresse des Nutzers (Pflicht) – geht an den Anbieter",
            "maxLength": 60,
            "type": "string"
          },
          "location": {
            "description": "Optional: PLZ und Ort",
            "maxLength": 40,
            "type": "string"
          },
          "message": {
            "description": "Was gebraucht wird, 10–500 Zeichen",
            "maxLength": 500,
            "type": "string"
          },
          "name": {
            "description": "Name des Nutzers",
            "maxLength": 60,
            "type": "string"
          },
          "phone": {
            "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht",
            "maxLength": 22,
            "type": "string"
          },
          "provider_id": {
            "type": "integer"
          },
          "text_only": {
            "description": "true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe",
            "type": "boolean"
          }
        },
        "required": [
          "provider_id",
          "name",
          "contact",
          "message",
          "consent"
        ],
        "type": "object"
      },
      "name": "contact_provider"
    },
    {
      "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "budget_eur": {
            "maximum": 10000,
            "minimum": 5,
            "type": "number"
          },
          "consent": {
            "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung",
            "type": "boolean"
          },
          "contact": {
            "description": "E-Mail-Adresse (Pflicht, wird nie veröffentlicht)",
            "maxLength": 60,
            "type": "string"
          },
          "display_name": {
            "description": "Kurzname, z. B. 'Maria B.'",
            "maxLength": 40,
            "type": "string"
          },
          "house_call": {
            "type": "boolean"
          },
          "location": {
            "description": "PLZ + Ort, z. B. '69412 Eberbach'",
            "maxLength": 35,
            "type": "string"
          },
          "phone": {
            "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht",
            "maxLength": 22,
            "type": "string"
          },
          "text_only": {
            "description": "true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe",
            "type": "boolean"
          },
          "title": {
            "description": "Was gebraucht wird, 5–240 Zeichen, ohne Adresse/Telefon/Links",
            "maxLength": 240,
            "type": "string"
          }
        },
        "required": [
          "title",
          "contact",
          "location",
          "consent"
        ],
        "type": "object"
      },
      "name": "create_job"
    },
    {
      "description": "Ein einzelnes sichtbares Gesuch (ohne Kontaktdaten), z. B. aus einem geteilten Link …/#gesuch=12. Leere Liste, wenn es nicht mehr sichtbar ist.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "type": "integer"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "get_job"
    },
    {
      "description": "Veröffentlichte Bewertungen eines Anbieters (nur von vermittelten Kunden).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "max_results": {
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          },
          "provider_id": {
            "type": "integer"
          }
        },
        "required": [
          "provider_id"
        ],
        "type": "object"
      },
      "name": "provider_reviews"
    },
    {
      "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "adult": {
            "description": "Nutzer ist volljährig",
            "type": "boolean"
          },
          "consent": {
            "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung",
            "type": "boolean"
          },
          "contact": {
            "description": "E-Mail-Adresse (Pflicht, wird nicht veröffentlicht; dorthin kommen Anfragen)",
            "maxLength": 60,
            "type": "string"
          },
          "is_trader": {
            "description": "true = gewerblicher Anbieter (Unternehmer), false = Privatperson – Selbstauskunft des Nutzers",
            "type": "boolean"
          },
          "location": {
            "description": "PLZ + Ort des Standorts",
            "maxLength": 50,
            "type": "string"
          },
          "name": {
            "description": "Name, Studio oder Betrieb",
            "maxLength": 80,
            "type": "string"
          },
          "phone": {
            "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht",
            "maxLength": 22,
            "type": "string"
          },
          "services": {
            "description": "Leistungen",
            "maxLength": 180,
            "type": "string"
          },
          "trader_info": {
            "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"
          }
        },
        "required": [
          "name",
          "contact",
          "services",
          "location",
          "adult",
          "is_trader",
          "consent"
        ],
        "type": "object"
      },
      "name": "register_provider"
    },
    {
      "description": "Rechtswidrigen Inhalt melden (Art. 16 DSA): target_type job, review oder provider. Mit E-Mail-Adresse in contact kommt automatisch eine Eingangsbestätigung.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "contact": {
            "description": "Optional: E-Mail für Eingangsbestätigung und Rückmeldung zur Entscheidung",
            "maxLength": 90,
            "type": "string"
          },
          "reason": {
            "description": "Begründung, 5–500 Zeichen",
            "maxLength": 500,
            "type": "string"
          },
          "target_id": {
            "type": "integer"
          },
          "target_type": {
            "enum": [
              "job",
              "review",
              "provider"
            ],
            "type": "string"
          }
        },
        "required": [
          "target_type",
          "target_id",
          "reason"
        ],
        "type": "object"
      },
      "name": "report_content"
    },
    {
      "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "description": "PLZ-Anfang oder Ort; für Umkreissuche 5-stellige PLZ",
            "maxLength": 35,
            "type": "string"
          },
          "max_results": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "Stichwort, z. B. 'Rasen'",
            "maxLength": 100,
            "type": "string"
          },
          "radius_km": {
            "description": "Umkreis in km um die PLZ in location",
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "search_jobs"
    },
    {
      "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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "max_results": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "near": {
            "description": "5-stellige PLZ als Mittelpunkt der Umkreissuche",
            "maxLength": 5,
            "type": "string"
          },
          "q": {
            "description": "Stichwort oder PLZ-Anfang",
            "maxLength": 100,
            "type": "string"
          },
          "radius_km": {
            "description": "Umkreis in km um near",
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "search_providers"
    },
    {
      "description": "Als Anbieter ein Angebot zu einem Gesuch abgeben. Es geht mit Name, Kontakt, Preis und Nachricht an den Auftraggeber automatisch per E-Mail. Nur nach Zustimmung des Nutzers. Keine Internet-Links.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consent": {
            "description": "true nur nach ausdrücklicher Zustimmung des Nutzers zur Datenschutzerklärung",
            "type": "boolean"
          },
          "contact": {
            "description": "E-Mail-Adresse (Pflicht) – geht an den Auftraggeber",
            "maxLength": 60,
            "type": "string"
          },
          "job_id": {
            "type": "integer"
          },
          "message": {
            "description": "Kurze Nachricht",
            "maxLength": 350,
            "type": "string"
          },
          "name": {
            "description": "Name oder Betrieb",
            "maxLength": 80,
            "type": "string"
          },
          "phone": {
            "description": "Optional: Telefonnummer – wird zusammen mit der E-Mail-Adresse geschützt weitergegeben, nie veröffentlicht",
            "maxLength": 22,
            "type": "string"
          },
          "price_eur": {
            "maximum": 50000,
            "minimum": 5,
            "type": "number"
          },
          "text_only": {
            "description": "true, wenn der Nutzer nur schriftlich kontaktiert werden möchte (SMS, Messenger oder E-Mail), keine Anrufe",
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "name",
          "contact",
          "consent"
        ],
        "type": "object"
      },
      "name": "submit_offer"
    },
    {
      "description": "Bewertung mit dem einmaligen Bewertungscode (Format XXXX-XXXX), den der Kunde nach einer Vermittlung erhalten hat.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "Bewertungscode",
            "maxLength": 20,
            "type": "string"
          },
          "comment": {
            "description": "Text",
            "maxLength": 500,
            "type": "string"
          },
          "consent": {
            "description": "Zustimmung zur Veröffentlichung",
            "type": "boolean"
          },
          "reviewer_name": {
            "description": "Name oder Kürzel",
            "maxLength": 40,
            "type": "string"
          },
          "stars": {
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "code",
          "stars",
          "consent"
        ],
        "type": "object"
      },
      "name": "submit_review"
    }
  ]
}

What the leaf hashes

{"body":"1664ad1de2baacde690eb8ee2c3427f24289ccd3b604271ebca151d5dad5a17b","id":222108,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793027812191184,"prev":null,"subject":"81992af4-71b3-49d7-9626-1ed3495e4486","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x94c782d5aadb381a3d5061d1ce98f6f99722cca392d5d91dc8225c9b793e6357
  2. 0x9e563de350fb533059598c2548db31866eb68968b84907bbdaea55ec1c6a29af
  3. 0x6471680bd979f3b5d78ad35c68c2df45b552190e69b0e3c1cee09efde87fae3e
  4. 0x00d55915bd9e1cd41310506500bb16bc14b342467489de48027cc562aa8672c9
  5. 0x281d8eb00d41667c417a981c5041e890c63b69d9ecce234b4f23bdf5e4988aac
  6. 0xdcf8a20f3ada8bec749ea4880b6c26532e1e39b270be9f5eb0c64bb8ea2bfd54
  7. 0x308eb491de431156d7f59b7f393a378bb5c3108395bbf27fbd0af1f153f6c412
  8. 0xaac57dd951d3503b1767770dff3dcf6f7dcc012eae1ae708fd3bba3e4ab10cc7
  9. 0xa23016cc90d4fbbf4d59d58b67049ba516391bb9a30b7a08b4a59f881cb1c041
  10. 0x07fa9991702d9e756ee102ffd8326f6ed64c777e9ef41d71d141c1c37856f00e
  11. 0x4c1c9421c6648584bc5a6ac33a99ef69338fb841b9063ca93df8c027794ce0e5
  12. 0x12169ac86722058ecf46a1b83c56e8b21899ab108a12c5a4429da74c5d191294
  13. 0xb314422bc93e7f1c0b706c67f5fff96c5ddf74934bb2fe8ab6291ae016907e37
  14. 0x49062da782c4f73855ddd5fdd51840749f928b5f17d1ce75ac50f2d829104e72
  15. 0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON