Skip to main content

MCP Tool Reference

The BuildBetter MCP server exposes tools that give AI agents structured access to your calls, signals, people, documents, knowledge base, product-ops workflows, and raw GraphQL. This page documents the core tool families and usage patterns.

Key Terminology


Call Tools

search-calls

Search for calls by optional phrase and/or date range. Without a phrase, returns the most recent calls.
phrase only matches call names/titles — not transcript content. To search what was discussed inside calls, use search-signals or search-extractions instead.

get-call

Get full details for a single call including summary, attendees, tags, and a sample of signals.

get-call-transcript

Returns the full speaker-attributed transcript for a call, broken into monologue segments with start/end timestamps.
Check hasTranscript in the response before trying to render or search the transcript. Use startSec to build deep-link URLs to specific moments in the call.

Signal / Extraction Tools

Signals are the core data object in BuildBetter — AI-extracted insights from any ingested content. They have types, topics, keywords, sentiment, severity, bias scores, and person/company linkage.

list-signal-types

Returns all configured signal (extraction) types.

search-signals

Search signals by phrase and optionally filter by type, call, or persona. This is the preferred tool for content searches — use it instead of searching calls.

search-extractions

Identical parameters to search-signals. Use this as a reliable alternative if search-signals encounters a loading issue.

list-extractions

Structured list endpoint for extractions with full filter, select, order, and pagination support.
Nested relationship filters (e.g. filtering by type name) may be ignored. Use search-signals or search-extractions with the type parameter for type-based filtering instead.

list-extractions-schema

Returns the expected input schema for list-extractions. Use this when an MCP client validates tool calls strictly or needs to construct a valid filter request before calling list-extractions.
Use list-extractions-schema before building advanced where, select, orderBy, or pagination requests in strict clients.

list-extraction-filter-fields

Returns all metadata fields available from connected integrations (Salesforce, Pendo, HubSpot, etc.) that can be used to filter signals.

Product Ops Tools

BuildBetter MCP also exposes product-ops tools for Projects Hub, Inbox, folders, and Linear. Exact availability depends on your workspace permissions and the MCP client.

Projects and Inbox

Use product-ops tools to:
  • View projects and project details
  • Review Inbox items and backlog counts
  • Inspect project or Inbox evidence
  • Open folder details related to product work
  • Promote approved Inbox items into projects when the client supports approval-based actions

Linear Discovery

Linear tools help discover issues that may belong in Projects Hub. Assistants can search for candidate tickets, summarize why they matter, and prepare selected tickets for approval-based promotion. Signed-in users can search signals with natural-language queries, not only structured filters. Use this for prompts like:
When you need exact filtering or pagination, use list-extractions with the schema helper.

list-signal-properties

Returns custom properties configured for the signal/extraction entity type. These are workspace-level schema definitions, not signal values.

search-signal-property-values

Search the actual taxonomy/property values that have been auto-filled onto signals. Useful for finding signals tagged with specific taxonomy nodes.

People Tools

search-people

Search for person records by name, email, title, or department. Optionally filter by persona ID.
The same person may appear multiple times if they exist in multiple integration sources (e.g. BuildBetter + GitHub + Salesforce).

search-people-properties

Search CRM-enriched person property values. Returns job history, skills, titles, and other enrichment data linked to person records.

Document Tools

search-documents

Search AI-generated documents by phrase. Can optionally include full document content in results.

get-document

Fetch a single document by ID, including its full markdown content.

Knowledge Base Tools

search-knowledge-pages

Search the internal knowledge base (wiki-style pages) by title or content.
This tool uses keyword matching, not semantic search. Short, broad queries work best (e.g. 'pricing', 'workflows'). Long phrases may return 0 results — try a single-word subset instead.

get-knowledge-page

Fetch a single knowledge page by ID with full plain-text content and any child page references.

GraphQL Tools

For advanced queries not covered by the domain-specific tools above. The schema exposes ~700 types covering the full BuildBetter data model.

list-types

Returns all available GraphQL object types in the current authenticated context. Useful for discovering what data is queryable.

find-fields

Returns all field names and their types for a specific GraphQL type. Use this before build-query or run-query to know what fields are available.

build-query

Generates a valid Hasura-style GraphQL query string for a given type and set of fields. Does not execute the query — pass the output to run-query.

run-query

Executes a raw, read-only GraphQL query against the BuildBetter schema. This is the most powerful and flexible tool — use it when domain tools don’t cover your use case.
Recommended workflow for GraphQL:
  1. list-types() — discover available types
  2. find-fields({ typeName }) — discover fields for a type
  3. build-query({ typeName, fields, limit }) — generate query string
  4. run-query({ query }) — execute and get results

  1. Get recent calls: search-calls({ limit: 20 })
  2. Pull signals by topic: search-signals({ phrase: 'API integration', type: 'featureRequest', limit: 30 })
  3. Get full call context: get-call({ id: <id>, signalLimit: 50 })
  4. Read transcript for quotes: get-call-transcript({ id: <id> })
  5. Find relevant docs: search-documents({ phrase: 'integration', includeContent: false })
  1. Find person: search-people({ phrase: 'carol@company.com' })
  2. Get their signals: search-signals({ phrase: 'customer name', limit: 20 })
  3. Get enrichment data: search-people-properties({ phrase: 'company name' })
  1. Discover types: list-types()
  2. Explore fields: find-fields({ typeName: 'extraction' })
  3. Generate query: build-query({ typeName: 'extraction', fields: ['id', 'name', 'sentiment', 'severity'], limit: 10 })
  4. Execute query: run-query({ query: '<output from build-query>' })
  1. Browse pages: search-knowledge-pages({ query: 'pricing' })
  2. Get full page: get-knowledge-page({ id: 34 })
  3. Find related signals: search-signals({ phrase: 'pricing objection', type: 'objection' })

Signal Schema Reference

Every signal returned by search-signals, search-extractions, get-call, and list-extractions shares this schema:

Tool Status Overview


Last updated March 2026