Troubleshooting - Middleware MCP Server
This page covers the most common setup and runtime issues when running the Middleware MCP Server locally or connecting it to an MCP client (for example, Claude Desktop). Wherever possible, the checks below are based on what the server expects (env vars, transport mode) and what you should see on startup.
1. Build fails or the binary is not created
What to check:
- Ensure you're using Go 1.23 or later (the project uses Go 1.23.0 with toolchain 1.24.10).
What to do:
Use the standard dependency + build commands:
go mod download
go build -o mcp-middleware .These are the same commands used in the quick start flow.
If you are using Make targets in your workflow, build using:
make install
make build2. Server starts, but it's not authenticated or not pointing to the right project
Most common cause:
Missing or incorrect environment variables. The server relies on:
MIDDLEWARE_API_KEYMIDDLEWARE_BASE_URL
What to check:
Confirm your .env (or runtime env) includes:
MIDDLEWARE_API_KEY=your_api_key_here
MIDDLEWARE_BASE_URL=https://your-project.middleware.ioWhat "good" looks like:
When the server starts successfully, it prints startup lines like:
Middleware MCP Server v1.0.0Connected to: https://your-project.middleware.ioStarting MCP server in stdio mode.
This is a quick sanity check that your base URL is being read correctly.
3. Claude Desktop does not show Middleware tools
This usually comes down to configuration path, command path, or not restarting the client.
What to check:
- You updated the right Claude config file for your OS:
- machine:
~/.config/Claude/claude_desktop_config.json
- machine:
- Your
commandpoints to the built binary:- machine example uses
/full/path/to/mcp-middleware/mcp-middleware
- machine example uses
- You restarted Claude Desktop after updating the config.
Why this matters:
Claude Desktop launches the MCP server from the command path. If the path is wrong or the binary isn't present, the MCP server won't start and the tools will not appear.
4. HTTP / SSE mode issues (can't reach the server, wrong host/port)
The server supports three transport modes:
stdio(default)http(Streamable HTTP transport)sse(Server-Sent Events)
If you run http or sse mode, the server starts on:
http://localhost:8080
What to check:
- Your mode is set correctly (
APP_MODE=httporAPP_MODE=sse). - If
8080doesn't work in your environment, change:APP_HOST(defaultlocalhost)APP_PORT(default8080)
Known-good commands:
APP_MODE=http APP_HOST=localhost APP_PORT=8080 ./mcp-middleware
APP_MODE=sse APP_HOST=localhost APP_PORT=8080 ./mcp-middleware5. Some tools are missing or actions are "not available"
If you intentionally (or accidentally) excluded tools, they won't be registered.
What to check:
Look for EXCLUDED_TOOLS in your environment configuration. It is a comma-separated list of tool names to exclude.
This is explicitly described as useful for read-only instances or restricting destructive operations.
Example:
EXCLUDED_TOOLS=delete_dashboard,delete_widget,create_alert6. Getting help
If you're stuck and need support, contact:
- Middleware Support: [email protected]
Need assistance or want to learn more about Middleware? Contact our support team at [email protected] or join our Slack channel.