BuildBetter MCP Server - API Reference
This reference provides technical details about the BuildBetter MCP Server’s GraphQL API, including schema types, query operators, and tool specifications.
GraphQL Schema Overview
The BuildBetter MCP server exposes a GraphQL API with the following main types:
interview Calls, meetings, and conversations
extraction Customer signals and insights
company Organizations and companies
Core Types
interview
(Calls/Meetings)
Represents customer calls, meetings, and conversations.
query RecentCalls {
interview ( order_by : { display_ts : desc }, limit : 10 ) {
id
name
display_ts
short_summary
attendees {
person {
first_name
last_name
email
}
}
}
}
Customer feedback, issues, requests, and other extracted insights.
Classification (issue, request, praise, etc.)
query CustomerIssues {
extraction (
where : {
types : {
type : {
name : { _eq : "issue" }
}
}
},
order_by : { display_ts : desc },
limit : 20
) {
id
summary
sentiment
call {
name
id
}
}
}
person
Individual contacts (customers and team members).
Role identifier (246 = Customer, 247 = Team Member)
query FindPerson {
person (
where : {
_or : [
{ first_name : { _ilike : "%john%" }},
{ last_name : { _ilike : "%john%" }}
]
}
) {
id
first_name
last_name
email
company {
name
}
}
}
company
Organizations and companies.
Query Operators
Filter Operators
Case-insensitive pattern match (use % for wildcards)
Logical Operators
All conditions must be true
Any condition must be true
query ComplexSearch {
extraction (
where : {
_and : [
{ display_ts : { _gte : "2024-01-01" }},
{ sentiment : { _lt : 0 }},
{
_or : [
{ summary : { _ilike : "%pricing%" }},
{ summary : { _ilike : "%cost%" }}
]
}
]
}
) {
id
summary
sentiment
}
}
Common Query Patterns
Time-Based Queries Pagination Nested Relationships # Last 7 days
query RecentData {
extraction (
where : {
display_ts : { _gte : "2024-01-19T00:00:00Z" }
}
) {
id
summary
}
}
# Last 7 days
query RecentData {
extraction (
where : {
display_ts : { _gte : "2024-01-19T00:00:00Z" }
}
) {
id
summary
}
}
query PaginatedResults {
interview (
limit : 20 ,
offset : 40 ,
order_by : { display_ts : desc }
) {
id
name
}
}
query DeepQuery {
company {
name
persons {
first_name
last_name
interviews {
name
extractions {
summary
types {
type {
name
}
}
}
}
}
}
}
Rate Limits and Best Practices
Query Depth Maximum nesting level of 5
Result Size Maximum 1000 items per query
Batch Queries Combine multiple queries when possible
Caching Schema is cached for 30 minutes
Always filter by date when possible to improve performance.
Error Handling
401 Unauthorized
400 Bad Request
429 Too Many Requests
500 Internal Server Error
{
"error" : "Invalid or missing API key"
}
Responses are generated using AI and may contain mistakes.