Open Platform

Marktplatz fuer Anliegen: Angebot gegen Nachfrage, von Agenten lesbar und bedienbar.

Should I use this

Quality & Safety

B
Description quality
81%
Schema completeness
83%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'profil_ansehen' description lacks action verbin profil_ansehen
  • LOWTool 'profil_aendern' description lacks action verbin profil_aendern
  • LOWTool 'post_melden' description lacks action verbin post_melden
  • LOWTool 'feedback_geben' description lacks action verbin feedback_geben
  • LOWTool 'meine_treffer' description lacks action verbin meine_treffer

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,320Tokens (tool definitions)
~807 BTypical response size
Significant attention impact (2.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "open-platform": {
      "url": "https://mcp.openplatform.space"
    }
  }
}

Remote endpoints

https://mcp.openplatform.spacestreamable-http

What it can do

Tool inventory

Tools (15)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢markt_ansehen(fachgebiet, art, suche, anzahl, seite, ...)

Liest Eintraege von Open Platform (Marktplatz fuer Angebote und Gesuche, ortsbezogen). OHNE ARGUMENTE BEKOMMST DU ALLES — alle Filter sind freiwillig. Die Antwort nennt 'gesamt' (wie viele es insgesamt gibt) und 'weitere'; zum vollstaendigen Abholen 'seite' hochzaehlen, solange 'weitere' true ist. Willst du eine eigene Kopie pflegen: einmal alles holen, danach nur noch mit 'seit' (Zeitstempel des letzten Abrufs) die neuen Eintraege nachladen. So kannst du selbst entscheiden, was zu deinem Nutzer passt, statt dich auf die Vorauswahl der Plattform zu verlassen.

Input Schema

{
  "type": "object",
  "properties": {
    "fachgebiet": {
      "type": "string",
      "description": "Nur ein Fachgebiet, z.B. 'handwerk'. Verfuegbare Werte liefert kategorien_ansehen."
    },
    "art": {
      "type": "string",
      "enum": [
        "request",
        "offer"
      ],
      "description": "'request' = Gesuche, 'offer' = Angebote"
    },
    "suche": {
      "type": "string",
      "description": "Volltextsuche im Text der Eintraege"
    },
    "anzahl": {
      "type": "number",
      "description": "Eintraege pro Abruf (1-200, Standard 50)"
    },
    "seite": {
      "type": "number",
      "description": "Seite ab 0. Zum Blaettern hochzaehlen, solange 'weitere' true ist."
    },
    "sortierung": {
      "type": "string",
      "enum": [
        "relevanz",
        "neueste"
      ],
      "description": "Standard: relevanz"
    },
    "seit": {
      "type": "string",
      "description": "Nur Eintraege, die nach diesem Zeitpunkt entstanden sind (ISO-8601). Fuer den Abgleich einer eigenen Kopie."
    }
  }
}
🟢kategorien_ansehen

Listet alle Fachgebiete mit der Anzahl aktiver Eintraege, aufgeteilt nach Gesuchen und Angeboten. Nutze das zuerst, um zu sehen, welche Bereiche es ueberhaupt gibt und wo etwas los ist — danach gezielt mit markt_ansehen hineingehen.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢meine_posts

Listet die eigenen Eintraege des Nutzers mit Fachgebiet, Status, Datum und der Anzahl gefundener Treffer. Nutze das, um zu wissen, wonach dein Nutzer sucht oder was er anbietet.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡post_erstellen(text, art, ort)

Stellt im Namen des Nutzers ein Gesuch oder Angebot ein. Schreib es so, wie der Nutzer es sagen wuerde: ein bis zwei Saetze, konkret, ohne Werbesprache. Die Plattform ordnet es selbst einem Fachgebiet zu und sucht danach im Hintergrund nach passenden Leuten. Hoechstens 5 pro Stunde. Frag den Nutzer vorher, ob er das wirklich einstellen will — es ist oeffentlich sichtbar.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "Was gesucht oder angeboten wird, in eigenen Worten"
    },
    "art": {
      "type": "string",
      "enum": [
        "request",
        "offer"
      ],
      "description": "'request' = ich suche, 'offer' = ich biete"
    },
    "ort": {
      "type": "string",
      "description": "Ortsname wie 'Muenster', 'Muenster Kreuzviertel' oder 'Wien Leopoldstadt' -- weltweit. Gib ihn IMMER mit, wenn der Nutzer sagt, wo er ist oder dass er woanders ist. Laesst du ihn weg, wird der Ort des letzten Posts uebernommen; gibt es keinen, wird zurueckgefragt. Rate nicht — frag den Nutzer. Die Antwort nennt den Ort, der daraus geworden ist, samt Land — SAG IHN DEM NUTZER, damit er widersprechen kann."
    }
  },
  "required": [
    "text",
    "art"
  ]
}
🟡nachricht_senden(chat_id, post_id, text)

Schreibt im Marktplatz-Chat von Open Platform. Du handelst im Auftrag des Kontoinhabers unter seinem Namen — Marktplatz-Kontakt, kein privater Posteingang. Zum ANTWORTEN in einem laufenden Chat: chat_id aus chats_ansehen oder benachrichtigungen (bevorzugt — verhindert vermischte Threads). Zum ERSTEN Kontakt: post_id aus markt_ansehen oder meine_treffer; dann entsteht der Chat. Genau eines von beidem. Schreib konkret. Hoechstens 20 pro Stunde. Es gibt kein Push — nach dem Senden spaeter benachrichtigungen oder chats_ansehen pollen. Zeig dem Nutzer den Text, bevor du ihn abschickst.

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "type": "string",
      "description": "Bestehende Unterhaltung (Antworten). Aus chats_ansehen / benachrichtigungen."
    },
    "post_id": {
      "type": "number",
      "description": "Fremder Eintrag fuer den ersten Kontakt. Aus markt_ansehen / meine_treffer."
    },
    "text": {
      "type": "string",
      "description": "Die Nachricht"
    }
  },
  "required": [
    "text"
  ]
}
🔴post_verwalten(post_id, aktion)

Nimmt einen eigenen Eintrag zurueck oder stellt ihn wieder ein. Die post_id kommt aus meine_posts. Drei Moeglichkeiten: 'schliessen' nimmt ihn aus dem Markt, er bleibt aber erhalten und kann zurueckgeholt werden — das ist der normale Weg, wenn die Sache erledigt ist. 'wieder_aktivieren' stellt einen geschlossenen Eintrag zurueck in den Markt; die Suche nach passenden Leuten laeuft danach erneut. 'loeschen' entfernt ihn endgueltig, samt Treffern — das laesst sich NICHT rueckgaengig machen. Nur eigene Eintraege. Vor 'loeschen' den Nutzer ausdruecklich fragen und im Zweifel 'schliessen' vorschlagen.

Input Schema

{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "number",
      "description": "Der eigene Eintrag, aus meine_posts"
    },
    "aktion": {
      "type": "string",
      "enum": [
        "schliessen",
        "wieder_aktivieren",
        "loeschen"
      ],
      "description": "Was mit dem Eintrag passieren soll"
    }
  },
  "required": [
    "post_id",
    "aktion"
  ]
}
🟢chats_ansehen(anzahl)

Listet die laufenden Unterhaltungen: mit wem, zu welchem Eintrag, ob der Eintrag dem Nutzer gehoert (mein_post), ob der Chat noch leer ist, letzte Nachricht und Ungelesene. Kein Push — pollen, wenn der Nutzer fragt ob jemand geschrieben hat, oder periodisch. Bei ungelesen_gesamt > 0: nachrichten_lesen, dann nachricht_senden mit chat_id.

Input Schema

{
  "type": "object",
  "properties": {
    "anzahl": {
      "type": "number",
      "description": "Wie viele Unterhaltungen (1-100, Standard 30), neueste zuerst"
    }
  }
}
🟢nachrichten_lesen(chat_id, anzahl)

Liest den Verlauf einer Unterhaltung inkl. Kopf (post_id, Eintrag-Snippet, mit wem, mein_post). Die chat_id kommt aus chats_ansehen oder benachrichtigungen. Standard: letzte 50, aelteste zuerst. von_mir markiert eigene Nachrichten. Vor dem Antworten lesen — sonst schreibst du an etwas vorbei.

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "type": "string",
      "description": "Die Unterhaltung, aus chats_ansehen / benachrichtigungen"
    },
    "anzahl": {
      "type": "number",
      "description": "Wie viele Nachrichten (1-200, Standard 50)"
    }
  },
  "required": [
    "chat_id"
  ]
}
🟢benachrichtigungen(nur_ungelesen, anzahl)

Posteingang fuer Agents: Treffer, Chat-Nachrichten und Plattform-Hinweise. Ungelesene zuerst. art=nachricht hat chat_id (Antworten mit nachricht_senden + chat_id). ungelesen_gesamt zaehlt Notification-Zeilen UND ungelesene Chats ohne Doppelzaehlung. Kein Push — pollen. Ablauf: wenn ungelesen_gesamt > 0 → nachrichten_lesen → antworten.

Input Schema

{
  "type": "object",
  "properties": {
    "nur_ungelesen": {
      "type": "boolean",
      "description": "Nur die ungelesenen (Standard: alle)"
    },
    "anzahl": {
      "type": "number",
      "description": "Wie viele (1-100, Standard 30)"
    }
  }
}
🟢profil_ansehen(nutzer_id)

Liest ein Profil. Ohne Argument das eigene Profil des Nutzers — mit Name, Beschreibung, Stichworten und der Einstellung, ob er angeschrieben werden moechte. Mit nutzer_id das oeffentliche Profil einer anderen Person, etwa bevor du sie anschreibst.

Input Schema

{
  "type": "object",
  "properties": {
    "nutzer_id": {
      "type": "string",
      "description": "Wessen Profil. Weglassen fuer das eigene."
    }
  }
}
🔴profil_aendern(name, beschreibung, stichworte, kontaktierbar)

Aendert das eigene Profil des Nutzers. Nur die Felder mitgeben, die sich aendern sollen — alles andere bleibt stehen. 'kontaktierbar' auf false heisst, dass ihn niemand mehr ueber den Marktplatz anschreiben kann. Sag dem Nutzer, was du aenderst, bevor du es tust.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Angezeigter Name"
    },
    "beschreibung": {
      "type": "string",
      "description": "Kurzer Text ueber sich, hoechstens 300 Zeichen"
    },
    "stichworte": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Womit er zu tun hat, z.B. ['mathe','nachhilfe']"
    },
    "kontaktierbar": {
      "type": "boolean",
      "description": "Ob ihn andere anschreiben duerfen"
    }
  }
}
⚪chat_verwalten(chat_id, aktion)

Raeumt eine Unterhaltung auf. 'gelesen' setzt sie auf gelesen, damit der Zaehler stimmt. 'archivieren' blendet sie aus der Liste aus — sie ist nicht geloescht, und sobald jemand wieder hineinschreibt, kommt sie zurueck. Die chat_id kommt aus chats_ansehen.

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "type": "string",
      "description": "Die Unterhaltung, aus chats_ansehen"
    },
    "aktion": {
      "type": "string",
      "enum": [
        "gelesen",
        "archivieren"
      ],
      "description": "Was passieren soll"
    }
  },
  "required": [
    "chat_id",
    "aktion"
  ]
}
🟡post_melden(post_id, grund, anmerkung)

Meldet einen fremden Eintrag der Moderation — Spam, Betrug, Beleidigungen, unangemessene Inhalte. Die post_id kommt aus markt_ansehen. Das ist derselbe Weg wie der Melden-Knopf auf der Webseite; ein Mensch sieht sich das danach an. Frag den Nutzer vorher, ob er das wirklich melden will.

Input Schema

{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "number",
      "description": "Der Eintrag, um den es geht"
    },
    "grund": {
      "type": "string",
      "enum": [
        "spam",
        "belaestigung",
        "betrug",
        "unangemessen",
        "sonstiges"
      ],
      "description": "Warum gemeldet wird"
    },
    "anmerkung": {
      "type": "string",
      "description": "Was genau das Problem ist, in eigenen Worten"
    }
  },
  "required": [
    "post_id",
    "grund"
  ]
}
⚪feedback_geben(text)

Gibt Rueckmeldung zur Plattform selbst weiter — was nicht funktioniert, was fehlt, was stoert. Landet bei den Betreibern. Nutze das, wenn dein Nutzer sich ueber die Plattform beschwert oder sich etwas wuenscht, statt es nur zu bestaetigen.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "Die Rueckmeldung, in den Worten des Nutzers"
    }
  },
  "required": [
    "text"
  ]
}
🟢meine_treffer

Zeigt die Treffer zu den eigenen Eintraegen: welcher fremde Eintrag passt, wie weit entfernt und mit welcher Begruendung entschieden wurde.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded15 tools