Skip to main content
Glama
TheOctMind

Super Fireberry MCP

by TheOctMind

Super Fireberry MCP


Overview

Super Fireberry MCP is a production-grade implementation of the Model Context Protocol (MCP) specifically engineered for Fireberry CRM. It provides a high-fidelity interface for Large Language Models (LLMs) to interact with CRM data using natural language.

This server acts as an intelligent middleware, abstracting the complexities of the Fireberry REST API into a set of powerful, self-documenting tools.

Related MCP server: Follow Up Boss MCP Server

Architecture

The project is built on a modular service-oriented architecture, ensuring high performance and type safety.

graph TD
    A[LLM / Claude] -->|MCP Protocol| B[Super Fireberry Server]
    B -->|Normalization Layer| C[API Service]
    C -->|Authenticated REST| D[Fireberry CRM API]
    D -->|JSON Response| C
    C -->|Typed Objects| B
    B -->|Structured Output| A

Key Components

  • Normalization Service: Maps human-readable entity names to internal system codes.

  • Query Engine: Translates natural language intent into structured Fireberry Query API payloads.

  • Batch Handler: Manages high-volume data operations with efficient error recovery.

Features

  • Full Metadata Reflection: Zero-config support for custom objects and fields.

  • Power Query: Advanced filtering (logical AND/OR), sorting, and deep pagination.

  • Financial Integration: Native support for Invoices, Receipts, and Transaction Items.

  • Batch Processing: High-throughput creation and updates for enterprise data loads.

  • Relationship Intelligence: Navigate complex record hierarchies effortlessly.

Toolset

Tool

Capability

Typical Use Case

get_objects

System Discovery

"What modules are available?"

get_fields

Schema Inspection

"What are the fields for 'Projects'?"

query

Advanced Search

"Find all leads from LinkedIn with status 'New'."

manage_record

Full CRUD

"Update the status of Account #105 to 'Active'."

get_related_records

Hierarchy Traversal

"Get all tasks linked to this contact."

Installation & Setup

Prerequisites

  • Node.js v18.0.0 or higher

  • A valid Fireberry API Access Token

Local Setup

git clone https://github.com/TheOctMind/super-fireberry-mcp.git
cd super-fireberry-mcp
npm install
npm run build

Integration

Claude Desktop Configuration

Add the following entry to your claude_desktop_config.json:

{
  "mcpServers": {
    "super-fireberry": {
      "command": "node",
      "args": ["/absolute/path/to/super-fireberry-mcp/build/index.js"],
      "env": {
        "FIREBERRY_TOKEN_ID": "YOUR_API_TOKEN"
      }
    }
  }
}

Roadmap

  • v1.1: Direct file attachment streaming.

  • v1.2: Webhook integration for real-time notifications.

  • v2.0: Native support for Fireberry Workflow execution.

Contributing

We welcome contributions! Please see our Contributing Guidelines for more details.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Available Tools

5 tools
get_fieldsA

Retrieve detailed field definitions for any object. Essential before creating or updating records to know which fields exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectTypeYesThe object name or type code (e.g., 'Account', 'Contact', '1')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly implies a read-only operation via 'Retrieve', but it does not mention potential errors, authentication needs, or response format. This is adequate for a simple fetch tool but lacks deeper behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the added sentence explains practical value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with full schema coverage and no output schema, the description is largely complete. It explains what the tool does and why it matters, though it does not specify the shape or richness of the returned field definitions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for the single parameter, including examples like 'Account', 'Contact', and '1'. The description adds no additional parameter-level meaning beyond reiterating that it applies to 'any object', so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Retrieve') and resource ('detailed field definitions for any object'), making the tool's function immediately clear. It also distinguishes itself from siblings like get_objects and query by focusing specifically on field definitions rather than objects or record data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it is essential before creating or updating records to know which fields exist. It does not explicitly name when not to use it or list alternatives, but the stated purpose is enough to guide an agent toward appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_objectsA

Discover all available CRM modules and custom objects. Use this first to understand the system structure.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral disclosure. 'Discover' implies a read-only listing operation, and 'available' scopes the result to existing modules/objects. However, it does not detail the return shape, any prerequisites, or possible side effects, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two crisp sentences with no wasted words; the core action is front-loaded and the usage hint follows immediately. Ideal size for an agent-reading description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter discovery tool, the description is largely complete: it states the output concept (available modules/custom objects) and the recommended usage position. It stops short of describing the exact response format, but that is a minor gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters and the schema confirms this, so the baseline of 4 applies. The description adds no parameter-specific detail, but none is required since there is nothing to configure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Discover all available CRM modules and custom objects.' The phrase 'Use this first to understand the system structure' clearly positions it as the entry-level discovery tool, distinguishing it from siblings like query and get_fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit timing guidance: 'Use this first to understand the system structure.' This tells the agent when to invoke it, though it does not explicitly name alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_recordA

Create, Update, or Delete CRM records. For 'update', recordId is mandatory. For 'create', include the data object with field values.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
actionYes
recordIdNo
objectTypeYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses that delete and update operations exist but does not state whether delete is destructive/permanent, what update overwrites, permissions needed, or error behavior. This is a significant transparency gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the core purpose and then gives conditional parameter details, making it easy to scan quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter mutation tool with no annotations and no output schema, this description is too thin. It misses the required objectType parameter, delete behavior, and any response or error expectations, leaving an agent under-informed for safe and correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It partially explains recordId and data, but omits objectType, which is required, and leaves the data object vague. The action enum is self-explanatory, but the overall parameter guidance is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool creates, updates, or deletes CRM records, giving a clear verb and resource. It is easily distinguished from the read-oriented siblings like get_objects and query, so an agent can tell this is the mutation tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear action-specific guidance: update requires recordId, and create requires a data object. It does not explicitly name alternatives or exclusions, but the mutation context makes when to use it clear relative to the read-focused sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queryC

Execute complex search queries with logical filters. Supports pageNumber, pageSize, and filter strings (e.g., 'accountname contains "test"').

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
objectTypeYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the behavioral disclosure burden. It usefully reveals the filter string syntax with the 'contains' example and notes pagination support. However, it does not state whether the operation is read-only, what the response looks like, what errors may occur, or any rate limits or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action and includes a concrete example. It is lean with no fluff, though it does repeat some parameter names already visible in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a nested input schema, no annotations, no output schema, and no parameter descriptions, the description is too thin to be self-sufficient. An agent is left unsure what objectType should contain, how orderby behaves, and what a successful result looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful detail for filter syntax and mentions pageNumber/pageSize, but it omits the required objectType parameter entirely and does not explain orderby or how the nested query object should be structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Execute') and identifies a clear capability: complex search queries with logical filters and a concrete filter example. However, it never names the target resource ('objects', 'records', etc.) and does not differentiate itself from siblings like get_objects or get_related_records, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus alternatives. The phrase 'complex search queries' implies a niche, but the description never mentions get_objects, get_related_records, or conditions for choosing one over the other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 5 tool updatesv1.0.0
    • First observedget_fields
    • First observedget_objects
    • First observedget_related_records
    • First observedmanage_record
    • First observedquery

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool addresses a clearly distinct layer: object metadata, field metadata, record search, record mutations, and relationship traversal. Even though query and get_related_records both return records, their purposes are separated by general filtered search versus direct linked-record navigation.

Naming Consistency3/5

The get_objects, get_fields, and get_related_records tools follow a consistent get_ prefix, but query is a bare noun/verb and manage_record uses a generic 'manage' verb. The naming is readable but mixes conventions rather than following a uniform verb_noun pattern.

Tool Count5/5

Five tools is a well-scoped count for a CRM MCP server. Each tool covers a major capability—discovery, metadata, search, mutations, and relationships—without unnecessary fragmentation or overwhelming breadth.

Completeness4/5

The tool set covers metadata discovery, record creation/updating/deletion, complex search, and relationship traversal, which covers core CRM workflows. Minor gaps exist, such as no explicit single-record fetch and no relationship mutation tools, but query and manage_record can likely work around these.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready MCP server for Method CRM API integration. It enables LLMs to interact with Method CRM data through tools for tables, files, users, events, and API key management.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A production-ready MCP server that exposes the Salesmate CRM to Claude Desktop, enabling search, update, and creation of contacts, deals, tasks, notes, and activities.
    8
    MIT