MCP-Tools — Übersicht
Zugriffsrechte
MCP-Tools werden drei Scope-Leveln zugeordnet:
| Scope | Bedeutung |
|---|---|
read | Nur lesender Zugriff; kein Anlegen, Bearbeiten oder Löschen |
write | Lesen und Schreiben von Quellen, Kanälen, Inbox; kein Zugriff auf Team-Einstellungen |
admin | Voller MCP-Zugriff inklusive Team-Einstellungen |
Bei OAuth-Verbindungen begrenzt der beim Autorisieren gewählte Scope, welche Tools aufrufbar sind. Bei API-Tokens bestimmt die Token-Rolle das Zugriffsmaximum.
Workspace-Auswahl
Der MCP-Server liegt unter https://picasi.app/mcp, ohne Workspace in der Adresse.
| Anmeldung | Workspace |
|---|---|
| API-Token | fest, der Workspace des Tokens; kein Parameter nötig |
| OAuth | alle Workspaces des Kontos; jeder Aufruf braucht workspace_id |
Bei OAuth liefert list_workspaces die möglichen Werte. Fehlt workspace_id, wird der Aufruf abgelehnt.
Read-Tools
Alle Read-Tools erfordern mindestens Scope read.
search_updates
Durchsucht Updates nach Suchbegriffen, Quellen, Tags und Zeitraum.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
query | String | Volltext-Suchbegriff (optional) |
source_id | String | Updates einer bestimmten Quelle (optional) |
tags | Array | Themen-Tags, nach denen gefiltert wird (optional) |
folder | String | inbox, saved oder dropped (optional) |
source_ownership | String | all (Standard), own (nur eigene Quellen) oder competitor (nur fremde Quellen) |
limit | Integer | Anzahl der Ergebnisse (Standard: 20, max: 100) |
Der Filter source_ownership nutzt das Feld is_own an der Quelle. Er ist das Gegenstück zum Ownership-Filter in der Inbox-UI und erlaubt dem KI-Assistenten, gezielt nur eigene Präsenz oder nur Wettbewerber zu betrachten.
get_update_details
Gibt den vollständigen Inhalt eines einzelnen Updates zurück.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
update_id | String | ID des Updates |
list_sources
Listet alle Quellen des Workspace.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
is_own | Boolean | true = nur eigene Quellen, false = nur Wettbewerber, weglassen = alle |
Jede zurückgegebene Quelle enthält das Feld is_own, damit KI-Assistenten eigene Präsenz und Wettbewerber trennen können, ohne eine zweite Anfrage stellen zu müssen.
Zu jedem Kanal kommen drei Felder, die auseinanderzuhalten sind:
| Feld | Bedeutung |
|---|---|
monitoring_active | Der Schalter des Kanals: an oder aus. Kein Gesundheitszustand. |
state | Der Zustand des Abrufs: healthy, degraded, broken, quarantined oder paused. E-Mail-Kanäle werden nicht abgerufen, sondern empfangen; sie melden receiving, stale oder waiting. null heißt, dass noch kein Abruf hängt. |
last_checked | Der letzte Abrufversuch, bei E-Mail-Kanälen die zuletzt empfangene Nachricht. |
Für die vollständige Diagnose eines einzelnen Kanals ist get_channel_status zuständig.
list_reports
Listet verfügbare Reports.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
type | String | summary, feedback, list, linkedin_post, conversation_starters (optional) |
limit | Integer | Anzahl (Standard: 10) |
get_report
Gibt den vollständigen Inhalt eines Reports zurück.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
report_id | String | ID des Reports |
get_team_context
Gibt den KI-Kontext des Workspace zurück: Team-Metadaten (Name, Sprache, Zeitzone), Website-URL, Kontext-Dokumente und die Ownership-Konfiguration.
Erforderlicher Scope: read
Keine Pflicht-Parameter.
Antwort enthält im context-Block:
website_url– hinterlegte Organisations-URLis_own_sources_configured–true, sobald mindestens eine Quelle als eigene markiert istown_sources_count– Anzahl eigener Quellen
KI-Assistenten sollen Voice-Share- oder Momentum-Vergleiche nur dann anbieten, wenn is_own_sources_configured true ist — sonst fehlt die Vergleichsbasis.
list_tags
Listet alle Tags des Workspace.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
type | String | sources, channels, updates (optional) |
get_update_statistics
Zählt Updates, statt sie aufzulisten. Nimmt dieselben Filter wie search_updates und kennt keine Obergrenze von 100 Ergebnissen.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
group_by | String | source (Standard), source_tag, update_tag, day, week, month, quarter |
compare_previous_period | Boolean | Zählt zusätzlich den gleich langen Zeitraum davor und weist die Differenz aus |
query | String | Volltext-Suchbegriff (optional) |
source_id | String | Auf eine Quelle beschränken (optional) |
source_tags | Array | Quellen-Tags (optional) |
update_tags | Array | Themen-Tags (optional) |
source_ownership | String | all (Standard), own oder competitor |
platform | String | Auf eine Plattform beschränken, etwa linkedin (optional) |
folder | Array | inbox, saved; Standard sind beide |
days | Integer | Zeitraum in Tagen, 1 bis 365 (Standard: 30) |
date_from, date_to | String | Zeitraum als Datum, statt days |
Nach Plattform lässt sich nicht gruppieren. Verworfene und Overflow-Updates werden nicht gezählt.
get_channel_status
Gibt den Zustand eines Kanals zurück: letzter Abruf, letzter Erfolg, letzter Fehler, Zahl der Fehlversuche in Folge, nächster geplanter Versuch und die Zahl der Updates aus diesem Kanal.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
channel_id | String | ID des Kanals, aus list_sources mit include_channels=true |
discover_channels
Untersucht eine Website und meldet die Kanäle, die sich beobachten ließen. Legt nichts an.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
url | String | Zu untersuchende Website (optional, wenn source_id gesetzt ist) |
source_id | String | Nutzt die Website dieser Quelle und markiert, welche Kanäle sie schon hat |
list_workspaces
Listet die Workspaces des angemeldeten Kontos mit workspace_id, Name und Rolle.
Erforderlicher Scope: keiner; das Tool steht jeder Verbindung offen
Ohne Parameter.
Report-Tools
create_report
Erzeugt einen Report aus den Updates, die auf einen Filter passen. Die Filter sind dieselben wie bei search_updates.
Die Erzeugung läuft im Hintergrund: der Aufruf liefert sofort eine request_id zurück. Den Stand fragt get_report_status ab, den fertigen Report liest get_report.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
type | String | Pflicht. summary, feedback, list oder conversation_starters |
title | String | Name des Reports (optional) |
instructions | String | Fokus für die KI (optional) |
language | String | Sprachcode, etwa de; Standard ist die Workspace-Sprache |
query | String | Volltext-Suchbegriff (optional) |
source_ids | Array | Auf diese Quellen beschränken (optional) |
source_tags | Array | Quellen-Tags (optional) |
source_tags_mode | String | AND oder OR |
update_tags | Array | Themen-Tags (optional) |
update_tags_mode | String | AND oder OR |
source_ownership | String | all, own oder competitor |
platform | String | Auf eine Plattform beschränken (optional) |
folder | Array | Ordner der Datenbasis; Standard sind inbox und saved |
days | Integer | Zeitraum in Tagen, 1 bis 365 (Standard: 30) |
date_from, date_to | String | Zeitraum als Datum, statt days |
get_report_status
Gibt den Stand eines mit create_report beauftragten Reports zurück.
Erforderlicher Scope: read
| Parameter | Typ | Beschreibung |
|---|---|---|
request_id | String | Die request_id aus create_report |
| Status | Bedeutung |
|---|---|
queued | wartet in der Warteschlange |
running | wird erzeugt |
ready | fertig; mit get_report und der report_id lesen |
empty | fertig, aber kein Update passte auf die Filter |
failed | abgebrochen; der Grund steht in der Antwort |
Write-Tools
Alle Write-Tools erfordern mindestens Scope write.
create_source
Legt eine neue Quelle an.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
url | String | Website-URL der Quelle |
name | String | Interner Name |
tags | Array | Tag-IDs (optional) |
update_source
Ändert Name, URL oder Tags einer bestehenden Quelle.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
source_id | String | ID der Quelle |
name | String | Neuer Name (optional) |
url | String | Neue URL (optional) |
delete_source
Löscht eine Quelle inklusive aller Kanäle und Updates.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
source_id | String | ID der Quelle |
create_channel
Legt einen Kanal manuell an.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
source_id | String | ID der übergeordneten Quelle |
url | String | Kanal-URL |
name | String | Kanalname (optional) |
update_channel
Ändert Name oder Beschreibung eines Kanals.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
channel_id | String | ID des Kanals |
name | String | Neuer Name (optional) |
delete_channel
Löscht einen Kanal.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
channel_id | String | ID des Kanals |
toggle_channel
Aktiviert oder deaktiviert einen Kanal.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
channel_id | String | ID des Kanals |
active | Boolean | true = aktiv, false = inaktiv |
create_tag
Legt einen neuen Tag an.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
name | String | Tag-Name |
type | String | sources, channels oder updates |
description | String | KI-Tagging-Beschreibung (optional) |
update_tag
Ändert Name oder Beschreibung eines Tags.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
tag_id | String | ID des Tags |
name | String | Neuer Name (optional) |
description | String | Neue KI-Beschreibung (optional) |
update_update_state
Verschiebt Updates zwischen den Ordnern des Workspace.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
update_ids | Array | Update-IDs, höchstens 100 je Aufruf |
folder | String | inbox, saved oder dropped |
Der Zustand gilt je Workspace und verändert das Update selbst nicht. Die Antwort meldet jede ID einzeln.
tag_update
Weist Updates vorhandene Themen-Tags zu.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
update_ids | Array | Update-IDs, höchstens 100 je Aufruf |
tags | Array | Tags als Slug, ID oder Name |
mode | String | add (Standard) behält vorhandene Tags, replace setzt genau diese |
Nur Tags mit applies_to = updates sind zulässig; ein Quellen-Tag wird abgelehnt. Fehlende Tags vorher mit create_tag anlegen.
untag_update
Entfernt Themen-Tags von Updates.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
update_ids | Array | Update-IDs, höchstens 100 je Aufruf |
tags | Array | Zu entfernende Tags als Slug, ID oder Name |
Entfernt wird nur die Zuordnung dieses Workspace. Der Tag selbst bleibt bestehen.
refresh_source_channels
Führt die Kanalerkennung für eine bestehende Quelle erneut aus.
Erforderlicher Scope: write
| Parameter | Typ | Beschreibung |
|---|---|---|
source_id | String | ID der Quelle |
create_detected | Boolean | false (Standard) meldet nur, true legt die fehlenden Kanäle an |
Vorhandene Kanäle werden nicht doppelt angelegt; ein deaktivierter Kanal gilt als vorhanden. Neue Kanäle beginnen von selbst mit dem Abruf.