Skip to content
Open App

MCP Tools — Overview

Access Rights

MCP tools are assigned to three scope levels:

ScopeMeaning
readRead-only access; cannot create, edit, or delete
writeRead and write sources, channels, and Inbox; no access to team settings
adminFull MCP access, including team settings

For OAuth connections, the scope selected during authorization determines which tools can be accessed. For API tokens, the token role determines the maximum access level.

Workspace selection

The MCP server sits at https://picasi.app/mcp, with no Workspace in the address.

Sign-inWorkspace
API tokenfixed, the token’s Workspace; no parameter needed
OAuthall Workspaces of the account; every call needs workspace_id

With OAuth, list_workspaces returns the possible values. Without workspace_id the call is rejected.


Read Tools

All read tools require at least scope read.

search_updates

Searches updates by keywords, sources, tags, and time period.

Required Scope: read

ParameterTypeDescription
queryStringFull-text search term (optional)
source_idStringUpdates from a specific source (optional)
tagsArrayTopic tags to filter by (optional)
folderStringinbox, saved, or dropped (optional)
source_ownershipStringall (default), own (only own sources), or competitor (only external sources)
limitIntegerNumber of results (default: 20, max: 100)

The source_ownership filter uses the is_own field at the source. It is the counterpart to the ownership filter in the Inbox UI and allows the AI assistant to specifically view only its own presence or only competitors.


get_update_details

Returns the full content of a single update.

Required Scope: read

ParameterTypeDescription
update_idStringUpdate ID

list_sources

Lists all sources in the Workspace.

Required Scope: read

ParameterTypeDescription
is_ownBooleantrue = own sources only, false = competitors only, omit = all

Each returned source contains the is_own field so that AI assistants can distinguish between their own presence and that of competitors without having to make a second request.

Each channel comes with three fields that need to be kept apart:

FieldMeaning
monitoring_activeThe switch of the channel: on or off. Not a health state.
stateThe state of retrieval: healthy, degraded, broken, quarantined or paused. Email channels are not fetched but receive; they report receiving, stale or waiting. null means no retrieval is attached yet.
last_checkedThe last fetch attempt, for email channels the message received last.

For the full diagnosis of a single channel, get_channel_status is the tool.


list_reports

Lists available reports.

Required scope: read

ParameterTypeDescription
typeStringsummary, feedback, list, linkedin_post, conversation_starters (optional)
limitIntegerNumber (default: 10)

get_report

Returns the complete content of a report.

Required scope: read

ParameterTypeDescription
report_idStringReport ID

get_team_context

Returns the AI context of the Workspace: team metadata (name, language, time zone), website URL, context documents, and ownership configuration.

Required scope: read

No required parameters.

The response contains the following in the context block:

  • website_url – stored organization URL
  • is_own_sources_configured – true, as soon as at least one source is marked as its own
  • own_sources_count – number of its own sources

AI assistants should only offer Voice Share or Momentum comparisons if is_own_sources_configured is true — otherwise, there is no basis for comparison.


list_tags

Lists all tags in the Workspace.

Required scope: read

ParameterTypeDescription
typeStringsources, channels, updates (optional)

get_update_statistics

Counts Updates instead of listing them. Takes the same filters as search_updates and has no cap of 100 results.

Required Scope: read

ParameterTypeDescription
group_byStringsource (default), source_tag, update_tag, day, week, month, quarter
compare_previous_periodBooleanAlso counts the equally long preceding period and reports the difference
queryStringFull-text search term (optional)
source_idStringRestrict to one source (optional)
source_tagsArraySource tags (optional)
update_tagsArrayTopic tags (optional)
source_ownershipStringall (default), own or competitor
platformStringRestrict to one platform, e.g. linkedin (optional)
folderArrayinbox, saved; the default is both
daysIntegerTime range in days, 1 to 365 (default: 30)
date_from, date_toStringTime range as a date, instead of days

Grouping by platform is not available. Dropped and overflow Updates are not counted.


get_channel_status

Returns the state of a channel: last fetch, last success, last error, number of consecutive failures, next scheduled attempt and the number of Updates from this channel.

Required Scope: read

ParameterTypeDescription
channel_idStringChannel ID, from list_sources with include_channels=true

discover_channels

Inspects a website and reports the channels that could be monitored. Creates nothing.

Required Scope: read

ParameterTypeDescription
urlStringWebsite to inspect (optional if source_id is set)
source_idStringUses this source’s website and marks the channels it already has

list_workspaces

Lists the Workspaces of the signed-in account with workspace_id, name and role.

Required Scope: none; the tool is open to every connection

No parameters.


Report Tools

create_report

Creates a report from the Updates matching a filter. The filters are the same as for search_updates.

Generation runs in the background: the call returns a request_id right away. get_report_status reports where it stands, get_report reads the finished report.

Required Scope: read

ParameterTypeDescription
typeStringRequired. summary, feedback, list or conversation_starters
titleStringName of the report (optional)
instructionsStringFocus for the AI (optional)
languageStringLanguage code, e.g. de; the default is the Workspace language
queryStringFull-text search term (optional)
source_idsArrayRestrict to these sources (optional)
source_tagsArraySource tags (optional)
source_tags_modeStringAND or OR
update_tagsArrayTopic tags (optional)
update_tags_modeStringAND or OR
source_ownershipStringall, own or competitor
platformStringRestrict to one platform (optional)
folderArrayFolders of the data basis; the default is inbox and saved
daysIntegerTime range in days, 1 to 365 (default: 30)
date_from, date_toStringTime range as a date, instead of days

get_report_status

Returns where a report ordered with create_report stands.

Required Scope: read

ParameterTypeDescription
request_idStringThe request_id from create_report
StatusMeaning
queuedwaiting in the queue
runningbeing generated
readyfinished; read it with get_report and the report_id
emptyfinished, but no Update matched the filters
failedaborted; the reason is in the answer

Write Tools

All Write Tools require at least scope write.

create_source

Creates a new source.

Required Scope: write

ParameterTypeDescription
urlStringSource website URL
nameStringInternal name
tagsArrayTag IDs (optional)

update_source

Changes the name, URL, or tags of an existing source.

Required scope: write

ParameterTypeDescription
source_idStringSource ID
nameStringNew name (optional)
urlStringNew URL (optional)

delete_source

Deletes a source, including all channels and updates.

Required scope: write

ParameterTypeDescription
source_idStringSource ID

create_channel

Manually creates a channel.

Required scope: write

ParameterTypeDescription
source_idStringParent source ID
urlStringChannel URL
nameStringChannel name (optional)

update_channel

Changes the name or description of a channel.

Required scope: write

ParameterTypeDescription
channel_idStringChannel ID
nameStringNew name (optional)

delete_channel

Deletes a channel.

Required scope: write

ParameterTypeDescription
channel_idStringChannel ID

toggle_channel

Enables or disables a channel.

Required Scope: write

ParameterTypeDescription
channel_idStringChannel ID
activeBooleantrue = active, false = inactive

create_tag

Creates a new tag.

Required scope: write

ParameterTypeDescription
nameStringTag Name
typeStringsources, channels, or updates
descriptionStringAI tagging description (optional)

update_tag

Changes the name or description of a tag.

Required scope: write

ParameterTypeDescription
tag_idStringTag ID
nameStringNew name (optional)
descriptionStringNew AI description (optional)

update_update_state

Moves Updates between the Workspace folders.

Required Scope: write

ParameterTypeDescription
update_idsArrayUpdate IDs, at most 100 per call
folderStringinbox, saved or dropped

The state applies per Workspace and does not change the Update itself. The answer reports each ID separately.


tag_update

Assigns existing topic tags to Updates.

Required Scope: write

ParameterTypeDescription
update_idsArrayUpdate IDs, at most 100 per call
tagsArrayTags as slug, ID or name
modeStringadd (default) keeps existing tags, replace sets exactly these

Only tags with applies_to = updates are allowed; a source tag is refused. Create missing tags with create_tag first.


untag_update

Removes topic tags from Updates.

Required Scope: write

ParameterTypeDescription
update_idsArrayUpdate IDs, at most 100 per call
tagsArrayTags to remove, as slug, ID or name

Only this Workspace’s assignment is removed. The tag itself stays.


refresh_source_channels

Runs channel detection again for an existing source.

Required Scope: write

ParameterTypeDescription
source_idStringSource ID
create_detectedBooleanfalse (default) only reports, true creates the missing channels

Existing channels are not created twice; a deactivated channel counts as existing. New channels start fetching on their own.