Tools
Reference for every tool exposed by the Temso MCP server.
Most tools are read-only. A set of write tools can also modify your project's configuration — these require an API key with the mcp:write scope (see Write tools below). Your assistant picks the right tool from your question — this reference tells you what's available and how each tool behaves.
Project selection
Every tool except list-projects takes an optional projectId:
| Parameter | Type | Description |
|---|---|---|
projectId | string (optional) | Project to query. Can be omitted when your connection has access to exactly one project; otherwise the assistant must call list-projects first and pass an ID. |
list-projects
Lists the projects your connection can access, with their IDs and names. The assistant calls this first when it doesn't know which project ID to use. No parameters.
Analytics tools
All analytics tools share these parameters on top of projectId:
| Parameter | Type | Description |
|---|---|---|
days | number (optional) | Days to look back from today. Default: 14. Ignored when startDate and endDate are set. |
startDate | string (optional) | Start date in ISO format (YYYY-MM-DD). Use together with endDate. |
endDate | string (optional) | End date in ISO format (YYYY-MM-DD). Use together with startDate. |
languages | string[] (optional) | Filter by language codes, e.g. ["en", "de"]. |
countries | string[] (optional) | Filter by country codes, e.g. ["US", "DE"]. |
personaIds | string[] (optional) | Filter by persona IDs. |
offeringIds | string[] (optional) | Filter by offering IDs. |
promptIds | string[] (optional) | Filter by prompt IDs. |
models | string[] (optional) | Filter by AI model names. |
Tools marked paged additionally accept:
| Parameter | Type | Description |
|---|---|---|
limit | number (optional) | Max results to return. |
sortBy | string (optional) | Field to sort by. |
sortOrder | asc | desc (optional) | Sort direction. |
fetch-brand-rankings
Fetches AI visibility brand rankings within a time range — visibility, source presence, mentions, responses, and share of voice per brand, for your own brand and competitors. Paged, default limit 20.
fetch-share-of-voice
Fetches the share of voice breakdown showing your brand versus competitors within a time range.
fetch-performance-breakdown
Fetches your brand's AI visibility performance grouped by a dimension.
| Parameter | Type | Description |
|---|---|---|
dimension | language | country | offering | persona | models (required) | Dimension to group results by. |
fetch-prompt-analytics
Fetches per-prompt performance analytics for your own brand within a time range. Paused prompts are excluded.
fetch-brand-perception
Fetches brand perception analytics — how brands are described in AI answers (e.g. reliable, innovative, affordable).
| Parameter | Type | Description |
|---|---|---|
mode | total | byBrand (optional) | total for your own brand only, byBrand for a comparison across all brands. Default: byBrand. |
fetch-sentiment
Fetches own-brand sentiment analytics from Perception > Sentiment, including positive, neutral, and negative shares plus a breakdown by model or another dimension.
| Parameter | Type | Description |
|---|---|---|
dimension | language | country | offering | persona | models (optional) | Dimension to group the sentiment breakdown by. Default: models. |
fetch-sentiment-sources
Fetches source pages for a selected sentiment bucket from Perception > Sentiment > Sources. Paged, default limit 20.
| Parameter | Type | Description |
|---|---|---|
sentiment | positive | neutral | negative (required) | Sentiment bucket to fetch sources for. |
fetch-perception-sources
Fetches source pages for a selected brand-perception attribute from Perception > Attributes > Sources. Use fetch-brand-perception first to discover available attribute names. Paged, default limit 20.
| Parameter | Type | Description |
|---|---|---|
attribute | string (required) | Perception attribute, e.g. reliable, innovative, or affordable. |
fetch-top-domains
Fetches the top cited source domains with presence, brand mentions, category, and model coverage within a time range. Paged, default limit 20, sorted by response count descending.
fetch-source-urls
Fetches individual source URLs with citation analytics within a time range. Paged, default limit 50.
| Parameter | Type | Description |
|---|---|---|
domainContains | string (optional) | Only return URLs whose domain contains this text. |
urlContains | string (optional) | Only return URLs containing this text. |
minCited | number (optional) | Minimum cited percentage, from 0 to 100. |
fetch-cited-pages
Alias of fetch-source-urls for cited-page/source-URL analytics — same parameters. Paged, default limit 50.
Backlink tools
Read the project's backlink profile: links, referring domains, and the competitor link gap. Backlink data comes from scheduled or manual scans — if a project has never completed one, fetch-backlink-overview returns neverSynced: true and the list tools return nothing.
fetch-backlink-overview
Fetches the backlink profile summary: sync status (last sync, cooldown, warnings) plus KPIs — domain rank, backlinks, referring domains, AI-cited domains, and new/lost counts. Takes only projectId.
fetch-backlink-timeseries
Fetches the backlink profile history: one snapshot per sync with rank, backlinks, referring domains, AI-cited domains, and new/lost counts.
| Parameter | Type | Description |
|---|---|---|
months | number (optional) | Months of history, 1 to 60. Default 12. |
fetch-backlinks
Lists individual backlinks (referring page → target URL) with anchor, referring-domain rank, dofollow flag, and the AI signal on the referring domain. Paged, default page size 20.
Each row carries citedInAiAnswers (the referring domain was named outright as a source) and appearedAsAiSource (it fed an AI answer at all). The second includes the first — it is the wider signal, not the uncited remainder. The response's totalMatchingFilters counts the rows matching the filters you passed, not the size of the whole profile.
| Parameter | Type | Description |
|---|---|---|
dofollow | boolean (optional) | Only dofollow (true) or only nofollow (false) links. |
status | live | new | lost (optional) | live = currently seen, new = added by the latest successful scan, lost = gone. |
aiCited | boolean (optional) | Only referring domains that AI answers cite (or don't). |
search | string (optional) | Substring match on the referring domain, URL, or anchor. |
sortBy | domainFromRank | firstSeenAt | lastSeenAt (optional) | Sort field. Default domainFromRank. |
sortDir | asc | desc (optional) | Sort direction. Default desc. |
page | number (optional) | 1-based page number. Default 1. |
pageSize | number (optional) | Rows per page, 1 to 100. Default 20. |
fetch-backlink-domains
Lists referring domains with their rank, backlink and dofollow counts, and their AI signal. Takes the same filters as fetch-backlinks, except sortBy is rank | backlinksCount | firstSeenAt (default rank). Paged, default page size 20.
Each row carries citedInAiAnswersCount (AI answers that named the domain outright) and appearedAsAiSourceCount (AI answers it fed at all). The second already includes the first. As above, totalMatchingFilters is scoped to the filters you passed — do not report it as the project's referring-domain total.
fetch-backlink-gap
Lists domains that link to the tracked competitors but not to this project — link-building prospects, sorted by how many competitors they link to. Paged, default page size 20.
| Parameter | Type | Description |
|---|---|---|
search | string (optional) | Substring match on the prospect domain. |
minOverlap | number (optional) | Only domains linking to at least this many competitors. Capped at gapCompetitorsUsed. |
sortDir | asc | desc (optional) | Sort direction on overlap. Default desc. |
page | number (optional) | 1-based page number. Default 1. |
pageSize | number (optional) | Rows per page, 1 to 100. Default 20. |
gapCompetitorsUsed lower than gapCompetitorsTotal means the gap covers only
a subset of your tracked competitors — the fan-out is capped by your plan and by
the month's remaining scan allowance.
Configuration tools
These take only projectId and return the project's setup:
fetch-brand-details
Fetches your own brand's details.
fetch-competitors
Fetches the competitors tracked in the project.
fetch-prompts
Fetches the prompts configured for monitoring.
fetch-personas
Fetches the configured personas.
fetch-offerings
Fetches the configured offerings/products.
fetch-monitor-settings
Fetches the monitoring settings: run frequency and which AI models are tracked.
Action planner tools
fetch-campaigns
Fetches campaigns for a project.
| Parameter | Type | Description |
|---|---|---|
status | open | completed | dismissed (optional) | Filter by campaign status. |
fetch-actions
Fetches actions with optional filters.
| Parameter | Type | Description |
|---|---|---|
campaignId | string (optional) | Filter by campaign ID. |
status | open | in_progress | completed | dismissed (optional) | Filter by action status. |
priority | high | medium | low (optional) | Filter by priority label. |
page | number (optional) | Page number, 1-indexed. |
limit | number (optional) | Page size, max 100. |
sortBy | createdAt | updatedAt | priority (optional) | Sort field. |
sortOrder | asc | desc (optional) | Sort order. |
Content pieces
Read content pieces and their per-step outputs. These tools are designed for progressive disclosure — list pieces first, inspect one piece's steps, then read a single step's output — so your assistant pulls only what it needs instead of loading whole documents.
fetch-content-pieces
Lists content pieces as compact one-line summaries (id, status, title, format, current step). No step bodies are returned.
| Parameter | Type | Description |
|---|---|---|
status | created | processing | waiting_for_input | revising | ready | published | failed | archived (optional) | Filter by piece status. |
formatKey | string (optional) | Filter by content format key (e.g. blog_guide, linkedin_thought_leadership). |
fetch-content-piece
Returns one piece's header and a per-step table (label, kind, human-input policy, current revision, quality/brandkit/factcheck outcomes, size). Metadata only — no step bodies.
| Parameter | Type | Description |
|---|---|---|
pieceId | string (required) | The content piece id, from fetch-content-pieces. |
read-content-piece-step
Reads a single step's output, rendered to markdown (doc/markdown steps) or pretty JSON (json steps) and length-capped. Image steps have no readable artifact.
| Parameter | Type | Description |
|---|---|---|
pieceId | string (required) | The content piece id, from fetch-content-pieces. |
step | string (required) | The step id, from fetch-content-piece. |
Write tools
These tools modify your project's configuration and mirror the write capabilities of the in-app Project Manager Agent. They apply changes immediately — your AI assistant is the approval surface, so review proposed changes before confirming.
Write tools require an API key with the mcp:write scope. Keys with only
mcp:read (and legacy keys created before scopes existed) cannot see or call
these tools. See Setup for how to grant scopes.
Each write tool takes the optional projectId parameter described above. The bulk-apply-* tools accept an operations array so you can create, update, and delete several items in a single call:
| Parameter | Type | Description |
|---|---|---|
operations | array (required) | One or more { op, data } entries. op is create, update, or delete. create takes the entity fields; update and delete take data._id plus any fields to change. |
Each call returns a summary with per-operation results (succeeded, failed, total, and a results array), so a failure on one item does not abort the rest of the batch.
update-brand-details
Updates your own brand's details. All fields optional: name, description, website, aliases (string[]), domainAliases (string[]).
bulk-apply-competitors
Creates / updates / deletes tracked competitors. Create fields: name, website (URL), optional description. Update fields: _id plus any of name, website, description.
bulk-apply-offerings
Creates / updates / deletes offerings (products/services). Create fields: name, optional description. Update fields: _id plus any of name, description.
bulk-apply-personas
Creates / updates / deletes personas. Create fields: name, description. Update fields: _id plus any of name, description.
bulk-apply-prompt-tags
Creates / updates / deletes prompt tags. Create fields: name, color. Update fields: _id plus any of name, color.
bulk-apply-prompts
Creates / updates / deletes (archives) prompts. Create fields: text, language, country, and optional tagIds, personaId, offeringId, topicId. Update fields: _id plus any of language, type, isPaused, tagIds, personaId, offeringId, topicId (pass null to clear a link). A delete operation archives the prompt.
add-manual-backlink
Registers a backlink you know about but the provider's index is missing. The target URL must be a page on this project's own site and the referring page must be on another site. Free — it makes no third-party call and does not count against your scan allowance.
| Parameter | Type | Description |
|---|---|---|
urlFrom | string (required) | Full URL of the referring page, including https://. |
urlTo | string (required) | Full URL of the page on this project's site that it links to. |
anchor | string (optional) | Anchor text of the link, if known. |
dofollow | boolean (optional) | Whether the link passes authority. Default true. |
trigger-backlink-sync
Starts a manual backlink scan.
This tool spends money — it calls a paid third-party API (DataForSEO) and the rows it reads count against your monthly allowance. Manual scans are limited to one per project per day on plans without on-demand scanning.
Call it without confirm first: that returns the current sync status (target domain, last scan time, cooldown, any warnings) without starting anything. Show that to the user, and call again with confirm: true only after they explicitly approve.
| Parameter | Type | Description |
|---|---|---|
confirm | boolean (optional) | Set true only after the user has explicitly approved paying for a new scan. |