You, Me, and BugSplat's MCP

You, Me, and BugSplat's MCP

You, Me, and BugSplat's MCP

"If you asked people what they wanted, they would have said faster horses." - Steve Jobs

Is the Trend Your Friend? 🤨

Let's face it - from an experienced developer's perspective, most software trends are, put lightly, incredibly annoying. The last thing a grizzled, old, technical wizard wants to hear is some half-brained junior developer telling them to switch their SQL server to MongoDB, replace the PHP EC2 with serverless Python, or rewrite their entire front-end with HTMX. The hype-train is so intense that even watching TV feels risky, as you might see something as absurd as an ad for AI toothpaste.

Change is inevitable, and trends come and go. Now and then, however, something so disruptive comes along that it reorients the entire world. Smartphones, the cloud, and large language models (LLMs) are three examples of disruptive innovations that have unlocked gargantuan amounts of value. Despite the enormous volume of lackluster fads, some trends are worth paying attention to. The abundance of trends in software development raises the question: How are developers supposed to separate the wheat from the chaff?

What is the Model Context Protocol? 🤖

ChatGPT was released on November 30, 2022, marking the LLM's entry into mainstream software development. Since the release of ChatGPT, the industry has witnessed an explosion in LLM-assisted software development tools. Cursor, Windsurf, Copilot, Claude Code, and Codex are a few examples of new tools that augment developers with a bundled AI companion. These tools provide a more seamless means to share their codebases with LLMs and leverage next-token generation to create and modify software more quickly.

Most developers who have tried "vibe coding" eventually encounter a scenario in which the code is so complex that all they can do is beg Copilot to fix their bug.

Please Fix the Bug Bro

Unfortunately, begging an AI assistant for help is not an effective strategy. For complex problems, developers must have the necessary context to fix bugs effectively. LLMs are helpful tools, but as of May 1, 2025, human developers still need to fix the most complex bugs manually. Historically, gathering the necessary context to fix a bug involved leaving the IDE, downloading a crash report from the web, reviewing log files, and returning to the IDE to scour the codebase for clues.

Anthropic's Model Context Protocol (MCP) enables an LLM to interface with external data that would otherwise require access via a web, desktop, or mobile application or an API. An MCP server provides standardized, LLM-friendly tools and resources. MCP clients can invoke tools and request resources to perform operations in or access data from external systems. For example, Cursor implements an MCP client, and bugsplat-mcp is an MCP server that provides tool calls, allowing Cursor to perform actions with or request items from BugSplat's data. MCP is more than just a CLI for normies; it enables developers to craft complex queries and access external data easily and intuitively, from the comfort of their IDE.

If you haven't seen Mahesh Murag's AI Engineer Model Context Protocol workshop video, it's worth watching. The video discusses the basics of MCP clients, servers, resources, tools, and prompt templates.

Model Context Protocol Workshop

Please refer to the official Model Context Protocol documentation for more information about MCP.

Experimentation 🧪

A great way to distinguish between a fad and a revolutionary new paradigm is through experimentation. At BugSplat, we're unsure if MCP is here to stay, but it has generated enough buzz recently that we felt eager to try it out. What we came up with is very much an experiment, but the initial results seem promising. So far, we've built a local MCP server that developers can install via npm and utilize LLMs to fetch data from and perform actions in BugSplat.

Before getting started, ensure you've installed Node.js 22+, and an MCP-compatible client such as Cursor or Claude Desktop. You can find the MCP configuration options in Cursor by clicking File > Preferences > Cursor Settings. Similarly, with Claude Desktop, you can configure MCP options with File > Settings > Developer > Edit Config.

Navigate to the Integrations page in the BugSplat web app, select the desired database, and generate a new OAuth Client ID/Client Secret pair. Under the mcpServers section, add the following snippet to the config file, replacing the values your-database, your-client-id, and your-client-secret.

{
  "mcpServers": {
    "bugsplat-mcp": {
      "command": "npx",
      "args": ["-y", "bugsplat-mcp@latest"],
      "env": {
        "BUGSPLAT_DATABASE": "your-database",
        "BUGSPLAT_CLIENT_ID": "your-client-id",
        "BUGSPLAT_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Restart your MCP Client (Cursor, Claude Desktop, etc.) and navigate to the settings page. The connection to bugsplat-mcp should now be enabled.

Cursor Connected to a Local BugSplat MCP Server

If everything worked correctly, various tool calls will be displayed below the bugsplat-mcp connection. To use these tools, open the AI Pane with Ctrl+Alt+B or ⌥+⌘+B and set the chat to Agent mode.

Cursor Chat Set to Agent Mode

From here, you can ask questions about your BugSplat database. Some questions that have worked well for us are:

"What are the most important bugs for me to fix according to BugSplat?"
"Show me some recent crashes for the application 'your-application'."
"Can you please get me the stack trace for issue 123 in BugSplat?"

As of May 1st, 2025, the tool calls available in the local bugsplat-mcp server are list-issues, get-issue, get-summary, list-attachments, get-attachment, create-defect, add-defect-link, and remove-defect-link.

Example 👨‍🏫

For demonstration purposes, we built a small TypeScript-based Snake game. The example game is available on GitHub. When an error occurs, the game creates a log file and a screenshot and attaches them to the report. The generated report allows Cursor to use the get-issues, get-issue, list-attachments, and get-attachment tools to find all the context necessary to fix the bug.

To get started, clone the snake-game sample.

git clone https://github.com/BugSplat-Git/snake-game

Navigate to the snake-game directory and install the dependencies.

cd snake-game && npm i

Run the dev server and generate an error report.

npm run dev

The npm run dev command should open a browser and start the snake game. Crashing into one of the walls should yield the following:

Whoops! Snake Game has Crashed

The report sent to BugSplat will look like this:

0:00
/0:15

Snake Game BugSplat Report

The beauty of using bugsplat-mcp is that you don't even have to leave your IDE to get the details of the bug report. The following is a short conversation demonstrating how to use the bugsplat-mcp provided tools to get context relevant to the report and prompt Cursor to fix the bug automatically.

0:00
/1:14

BugSplat MCP Demo in Cursor

For project managers and less-technical folks, you could instead use Claude Desktop to push the BugSplat issue to a defect tracker so that the developer responsible for the affected feature can triage and fix it.

0:00
/1:26

BugSplat MCP Demo in Claude Desktop

What's Next? 💭

The initial release of bugsplat-mcp is a prototype, and it hasn't been battle-tested in realistic scenarios. The initial results are encouraging, and we plan to continue development in this area. We're considering building a remote MCP endpoint to that BugSplat can be accessed by Claude's web app and other web/mobile LLM chatbots that offer MCP integrations. We'd also like to add support for functionality such as symbol management, adding new users to a project, and creating new grouping rules.

What has your experience been with LLMs and MCP? Is there a tool you'd like us to add, or a platform we should integrate with? Please let us know by emailing support@bugsplat.com or joining our Discord server!

Stay up to date

Subscribe to our newsletter to get all new posts and updates sent to your inbox.

Great! Check your inbox and click the link.
Sorry, something went wrong. Please try again.
*Subscribe to our newsletter to receive interesting stories, updates, and new products info.