Skip to main content
Glama

BuildBetter MCP (Model-Context-Protocol) Server

This repository contains BuildBetter's official MCP adapter. It bridges the BuildBetter API ↔ LLMs (Claude, ChatGPT, etc.) allowing them to run safe, read-only queries and receive rich context.

🚀 Open Beta: Request Access!

This adapter is currently in a Request-Access Open Beta. To get started:

  • Email us at support@buildbetter.app to request your API key.

  • This feature is free on all plans while in beta.

  • It can be used with any MCP client that supports custom servers.

It is purpose-built to:

  • Connect to the BuildBetter's API endpoint

  • Expose BuildBetter's schema as browsable resources

  • Provide tools for running read-only BuildBetter queries (mutations are blocked)

  • Query for relevent data for BuildBetter data

Related MCP server: Linear

Features

Resources

  • Schema List: View all available types in your BuildBetter schema

  • Type Details: Explore fields and structure of specific types

Tools

  • run-query – Execute read-only GraphQL (mutations are blocked)

  • list-types – List all OBJECT types (mutation types are hidden)

  • build-query – Generate a skeleton query for a type + fields

  • find-fields – Introspect fields for a given type

  • search-extractions – Keyword search with optional type and personaIds filters

  • open-resource / read-resource – Fetch static docs exposed as resources

  • schema-overview – Mermaid diagram of core relationships

Prompts

The server ships a library of ready-made prompt templates (see index.ts) such as:

  • recent-calls – latest interviews

  • call-details / call-transcript

  • search-transcript – phrase search inside a call

  • recent-issues / feature-requests

  • top-customer-issues

  • recent-objections / top-objections / customer-objections

  • feature-requests-by-date

  • signal-frequency – aggregation per extraction_type

  • context-guide – instructs the model to open the Markdown guide first

You can discover them with the prompts/list MCP request.

Installation

  1. Clone this repository

  2. Install dependencies:

    npm install
  3. Create an .env file (or set env vars in your shell) with:

    # BuildBetter staging / prod GraphQL endpoint
    BUILDBETTER_ENDPOINT="https://api.buildbetter.app/v1/graphql"
    # Personal API key – generate from BuildBetter dashboard
    BUILDBETTER_API_KEY="YOUR_API_KEY_HERE"
  4. Build the server (compiles TypeScript ➜ ./build):

    npm run build

Usage

Starting the Server

Run the server:

npm start

Connecting with Claude for Desktop

Add the server to your Claude for Desktop configuration by editing your claude_desktop_config.json file:

{
  "mcpServers": {
     "BuildBetter-MCP": {
      "command": "node",
      "args": ["../BuildBetter-MCP/build/index.js"],
      "cwd": "../BuildBetter-MCP",
      "env": {
        "BUILDBETTER_ENDPOINT": "https://api.buildbetter.app/v1/graphql",
        "BUILDBETTER_API_KEY": "ENTER_KEY_HERE"
      }
    }
}

Security & Privacy

  • Read-only – all mutation attempts are blocked at runtime.

  • Persona filtering – helper arguments (personaIds) allow you to restrict queries to Customer-only data.

  • Input validation – every tool verifies arguments before execution.

  • Schema minimisation – mutation types are hidden from list-types and docs.

Development

For development, you can use:

npm run dev

License

All Rights Reserved

Available Tools

15 tools
build-queryC

Build a simple GraphQL query string for a specific type

Inputs: fields (required), typeName (required), filter, limit.

find-fieldsC

Return the field names for a specified GraphQL type (object or input object)

Inputs: typeName (required).

helpC

Get help on using BuildBetter MCP effectively

Inputs: topic.

list-typesB

Get a list of available GraphQL object types (excluding internal ones)

Inputs: no named parameters.

nl-queryC

Generate a GraphQL query from a natural language description

Inputs: description (required).

open-resourceC

Fetch a static resource by URI returned from ListResources

Inputs: uri (required).

query-templateC

Generate a query from predefined templates for common tasks

Inputs: template (required), parameters.

read-resourceB

Alias of open-resource to fetch a static resource by URI

Inputs: uri (required).

recent-conversation-withC

Find the most recent conversation with a specific person by name

Inputs: name (required), limit.

run-queryB

Execute a read-only GraphQL query

Inputs: query (required), variables.

schema-overviewA

Return a markdown cheat-sheet describing key schema relationships (mermaid diagram).

Inputs: no named parameters.

search-extractionsC

Search extractions (signals) by keyword/phrase with optional extraction type filter and limit

Inputs: phrase (required), limit, personaIds, type.

top-customer-issuesC

Get the most common customer issues from extractions/signals

Inputs: days, limit.

topic-conversationsC

Find conversations discussing a specific topic

Inputs: topic (required), limit.

validate-queryB

Check if a GraphQL query is valid before executing it

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 15 tools

    Disambiguation3/5

    Most tools have distinct purposes, but there is notable overlap between open-resource and read-resource (which is explicitly an alias), and between build-query, nl-query, and query-template, which all generate queries in different ways, potentially causing confusion. The other tools, like recent-conversation-with and search-extractions, are more clearly differentiated.

    Naming Consistency3/5

    The naming is mixed, with some tools using verb-noun patterns (e.g., list-types, run-query, validate-query) and others using noun-verb or hyphenated phrases (e.g., schema-overview, top-customer-issues, recent-conversation-with). While readable, the lack of a consistent convention across all tools reduces predictability.

    Tool Count4/5

    With 15 tools, the count is reasonable for a GraphQL and resource management server, covering query building, execution, validation, and data retrieval. It's slightly on the higher side but still well-scoped, as each tool serves a specific function without obvious redundancy beyond the alias.

    Completeness4/5

    The toolset covers core GraphQL operations (query building, execution, validation) and resource fetching, with additional utilities for conversation and extraction search. Minor gaps exist, such as no explicit tools for mutations or subscriptions in GraphQL, but agents can likely work around this given the available query-focused tools.

    Related MCP Connectors

    Related MCP Servers