Tools reference
Every buzzabout__* MCP tool — name, group, required parameters, returned shape.
The MCP server exposes 32 tools across 9 groups. Each tool's
description in the live tools/list response opens with a
[<Group>] prefix so in-host pickers stay scannable even before any
filtering.
All tools require auth — see Authentication. The single
exception is buzzabout__ask, which requires OAuth/JWT and rejects
api-key callers with a forbidden error.
Group: datasets (8)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__list_datasets | — | { content: Dataset[], cursor } |
buzzabout__get_dataset | dataset_id | Dataset or { error } |
buzzabout__create_dataset | name | { id, name, created_at } |
buzzabout__update_dataset | dataset_id, name | Dataset |
buzzabout__delete_dataset | dataset_id | { ok: true } (soft delete) |
buzzabout__create_dataset_run | dataset_id, search_query | { run_id, dataset_id, status: "pending", next_step, created_at } |
buzzabout__list_dataset_runs | dataset_id | { content: DatasetRun[], cursor } |
buzzabout__get_dataset_run | dataset_id, run_id | DatasetRun or { error } |
search_query is a discriminated union — { type: "prompt", sources, search_query } for keyword search, or { type: "url", source_urls }
for direct URL scraping. Optional parameters mirror
POST /v1/datasets/{id}/runs.
Group: mentions (1)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__list_mentions | — | { content: Mention[], cursor } |
Defaults to all account-owned datasets. Pass dataset_ids to narrow.
Filters, sort, order, cursor, limit mirror the
REST mentions endpoint.
Group: audience_datasets (8)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__list_audience_datasets | — | { content: AudienceDataset[], cursor } |
buzzabout__get_audience_dataset | audience_dataset_id | AudienceDataset |
buzzabout__create_audience_dataset | name | { id, name, created_at } |
buzzabout__update_audience_dataset | audience_dataset_id, name | AudienceDataset |
buzzabout__delete_audience_dataset | audience_dataset_id | { ok: true } |
buzzabout__create_audience_dataset_run | audience_dataset_id, source_dataset_id | { run_id, ..., status: "pending", next_step, created_at } |
buzzabout__list_audience_dataset_runs | audience_dataset_id | { content: AudienceDatasetRun[], cursor } |
buzzabout__get_audience_dataset_run | audience_dataset_id, run_id | AudienceDatasetRun |
total_profile_count defaults to 850 (range 1–2000) on
create_audience_dataset_run.
Group: audience_profiles (1)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__list_audience_profiles | — | { content: Profile[], cursor } |
Mirrors POST /v1/audience_profiles. Defaults to scoping by all account-owned audience datasets.
Group: tracking_agents (8)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__create_tracking_agent | name, instructions | TrackingAgent |
buzzabout__list_tracking_agents | — | { content: TrackingAgent[], cursor } |
buzzabout__get_tracking_agent | agent_id | TrackingAgent |
buzzabout__pause_tracking_agent | agent_id | { ok: true } |
buzzabout__resume_tracking_agent | agent_id | { ok: true } |
buzzabout__delete_tracking_agent | agent_id | { ok: true } |
buzzabout__trigger_tracking_agent_run | agent_id | { run_id, status: "pending", next_step } |
buzzabout__list_tracking_agent_messages | agent_id | { content: TrackingAgentMessage[], cursor } |
PATCH is deliberately not exposed via MCP — uncommon admin op; do it via the REST endpoint.
Group: patterns (4)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__create_pattern_detection | dataset_id, research_question, name | { run_id, status: "pending", next_step, created_at } |
buzzabout__get_pattern_detection_run | run_id | { run_id, status, pattern_id } (polling shape) |
buzzabout__get_pattern | pattern_id | Pattern |
buzzabout__get_pattern_item | pattern_id, item_id | PatternItem |
Group: custom_parameters (9)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__list_custom_parameters | — | { content: CustomParameter[], cursor } |
buzzabout__create_custom_parameter | name, instructions, value_type | CustomParameter |
buzzabout__get_custom_parameter | parameter_id | CustomParameter |
buzzabout__update_custom_parameter | parameter_id, body | CustomParameter |
buzzabout__delete_custom_parameter | parameter_id | { ok: true } |
buzzabout__preview_custom_parameter | instructions, value_type, post_refs (1–5) | preview rows (no charge) |
buzzabout__trigger_custom_parameter_run | parameter_id, scope: { kind: "dataset", id } | { run_id, status: "pending", next_step } |
buzzabout__list_custom_parameter_runs | parameter_id | { content: CustomParameterRun[], cursor } |
buzzabout__get_custom_parameter_run | parameter_id, run_id | CustomParameterRun with mentions_total / done / error |
scope stays a tagged union with one variant in v1 so additional
scopes can land additively.
Group: chat (3)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__ask | prompt | { chat_id, message_id, text, references } (OAuth/JWT only — API-key callers get forbidden) |
buzzabout__get_chat | chat_id | { id, name, tracking_agent_id, created_at } |
buzzabout__list_chat_messages | chat_id | { content: ChatMessage[], cursor } — ascending by created_at, default limit=25, max 100 |
buzzabout__ask — the assistant tool
Hand a prompt to the AI assistant; get a markdown reply, an optional
chat_id to continue the conversation, and a references[] array of
typed pointers into buzzabout resources.
Input:
| Field | Type | Required | Notes |
|---|---|---|---|
prompt | string | yes | Free-form question. |
chat_id | string | no | Continue a prior chat. KSUID, no prefix. Omit to start fresh. |
context.datasets | string[] | no | Scope the assistant to one or more dataset_ids. |
context.audience_datasets | string[] | no | Scope to one or more audience_dataset_ids. |
Output:
{
"chat_id": "01H...",
"message_id": "01H...",
"text": "...markdown body with inline [post links](post:reddit:t3_1...)...",
"references": [
{ "type": "pattern", "id": "pt_..." },
{ "type": "dataset", "id": "ds_..." }
]
}The text is markdown; inline post citations use the
[label](post:source:id) scheme. references[] is a flat list of
typed pointers — see Reference types for the
six types and their resolution endpoints.
Pass the returned chat_id back as the chat_id argument to continue
the same chat across turns.
Group: account (2)
| Tool | Required parameters | Returns |
|---|---|---|
buzzabout__get_me | — | User with account, plan, members, teams |
buzzabout__list_usage_history | — | { content: UsageItem[], cursor } |
Pagination model
All list_* tools return:
{
"content": [ /* rows */ ],
"cursor": "eyJ...="
}Pass the cursor back as the cursor argument to fetch the next page.
A null cursor means you've hit the end. Cursors on filtered list
endpoints (mentions, audience profiles) encode the sort dimension, so
don't reuse a cursor across sort changes.
Polling async runs
create_dataset_run, create_audience_dataset_run,
create_pattern_detection, trigger_custom_parameter_run, and
trigger_tracking_agent_run all return:
{
"run_id": "dr_01H...",
"status": "pending",
"next_step": "Call buzzabout__get_dataset_run with this run_id to poll completion."
}Poll the corresponding get_*_run until status.type is completed
or failed. Each tool's response carries the same status envelope as
the REST API:
{
"status": {
"type": "working",
"steps": [
{ "name": "scraping", "completed_at": 1714564890 }
]
}
}Error shape
Tool errors come back as a JSON object with an error field:
{
"error": {
"code": "dataset_not_found",
"message": "Dataset not found",
"status": 404
}
}The code is stable — match on it. The message is for humans.
status mirrors the HTTP status the equivalent REST call would
return.
PATCH and DELETE tools exist for datasets, audience_datasets, custom_parameters, and tracking_agents — but PATCH for tracking_agents intentionally stays REST-only (uncommon admin op).
Next steps
- Use in your agent — wire MCP into Claude, Cursor, ChatGPT, or your own SDK.
- Reference types — how
references[]and inline post links work. - API reference — REST equivalents of each tool.