make-mcp-integration-issue

make-mcp-integration-issue

3.4

This document provides a detailed overview of the challenges faced while integrating Make with Claude Desktop using the Model Context Protocol (MCP).

The integration of Make (formerly Integromat) with Claude Desktop using the Model Context Protocol (MCP) involves setting up a server that can handle communication between the two platforms. The server is implemented in Node.js and is designed to communicate with Make's API and Claude Desktop via WebSocket, supporting JSON-RPC 2.0. Despite multiple attempts and configurations, establishing a stable connection has been challenging due to issues such as port conflicts, protocol mismatches, and lack of detailed MCP documentation. The server aims to manage Make scenarios and facilitate seamless interaction with Claude Desktop, but errors like 'address already in use' and 'server disconnected' have been persistent obstacles.

Features

  • Node.js server implementation for MCP
  • WebSocket communication with Claude Desktop
  • JSON-RPC 2.0 support for protocol compliance
  • Scenario management tools for Make
  • Configurable server settings via environment variables

MCP Tools

  • list_scenarios: Fetches a list of all scenarios in Make
  • run_scenario: Executes a scenario in Make

Usage with Different Platforms

Node.js

javascript
const express = require('express');
const WebSocket = require('ws');
const http = require('http');
const dotenv = require('dotenv');

dotenv.config();

const PORT = process.env.PORT || 5555;

const app = express();
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });

wss.on('connection', (ws) => {
  console.log('New WebSocket connection established');
  
  ws.on('message', (message) => {
    try {
      const data = JSON.parse(message);
      console.log('Received message:', data);
      
      if (data.method === 'initialize') {
        ws.send(JSON.stringify({
          jsonrpc: "2.0",
          id: data.id,
          result: {
            serverInfo: {
              name: "simple-make-mcp-server",
              version: "1.0.0"
            },
            capabilities: {}
          }
        }));
      }
    } catch (error) {
      console.error('Error processing message:', error);
    }
  });

  ws.on('close', () => {
    console.log('WebSocket connection closed');
  });
});

app.get('/', (req, res) => {
  res.send('Simple Make MCP Server is running');
});

server.listen(PORT, () => {
  console.log(`Make MCP server listening on port ${PORT}`);
});

Frequently Asked Questions

Is there detailed documentation for the MCP protocol?

Currently, detailed documentation for MCP is limited, which poses challenges in understanding the expected communication format.

What are the common issues faced during MCP server setup?

Common issues include port conflicts, protocol mismatches, and errors related to WebSocket and JSON-RPC 2.0 compliance.

Are there any official tools or libraries for MCP server development?

There are no widely recognized official tools or libraries specifically for MCP server development, making custom implementations necessary.