> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/en/ai/model-context-protocol/claude/migration.md).

# Migrating from a Local Server

{% hint style="danger" %}
The local MCP server is no longer updated, and support will end within the second half of 2026.\
Please follow this guide to complete your migration.
{% endhint %}

{% hint style="info" %}
**Does moving to the remote server send data outside?**\
The remote server runs on Hackle infrastructure. Requests from your AI client query and respond with Workspace data through the Hackle MCP server, without going through any separate external system.
{% endhint %}

If you have been using the local MCP server (as an npm package), you can follow this guide to move to the remote server.

### Why should you migrate?

* **No installation or updates required.** You are freed from managing npm packages, Node.js versions, and dependency conflicts.
* **New tools are added only to the remote server.** Recent tools such as CRM statistics analysis are not available on the local server.
* **Always up to date.** Server-side improvements and bug fixes apply immediately, with no client update required.

### Key changes

You add the remote server through the **custom connector UI inside the client**. It is not done by writing `command` / `args` in `claude_desktop_config.json` as with the local server, and adding a `url` key in that same file does not work either.

| Item             | Local Server                                                                           | Remote Server                                 |
| ---------------- | -------------------------------------------------------------------------------------- | --------------------------------------------- |
| How to add       | Register `command` / `args` / `env` under `mcpServers` in `claude_desktop_config.json` | The client's **Add custom connector** UI      |
| API key location | Environment variable (`env.API_KEY`)                                                   | Entered in the client's authentication screen |

### Migration steps

{% stepper %}
{% step %}

### Issue a new MCP key

The API key you used with the local server cannot access some features of the remote server.\
You can request a new API key from the **MCP Integration** menu in the [Hackle Dashboard](https://dashboard.hackle.io/).
{% endstep %}

{% step %}

### Remove the existing local server configuration (Claude Desktop)

Claude Desktop -> Settings -> Developer -> Edit Config

* Mac: \~/Library/Application Support/Claude/claude\_desktop\_config.json
* Windows: %APPDATA%\Claude\claude\_desktop\_config.json
* Linux: \~/.config/Claude/claude\_desktop\_config.json

Open the `claude_desktop_config.json` file in a text editor and remove the local Hackle server entry.

**Before — Local Server**:

```json
{
  "mcpServers": {
    "hackle-mcp": {
      "command": "npx",
      "args": ["-y", "@hackle-io/hackle-mcp@latest"],
      "env": {
        "API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
```

Delete the `hackle-mcp` entry above and save. If there are other servers in the `mcpServers` object, keep them.

**After — Local Server**:

```json
{
  "mcpServers": {
    
  }
}
```

{% endstep %}

{% step %}

### Add the remote server as a connector

* Left sidebar **Customize** → **Connectors** → **+** → **Add custom connector** → remote MCP server URL `https://mcp.hackle.io/mcp` → enter your Hackle API key on the authentication screen.
* For detailed steps, see [claude.ai Web Integration](https://docs.hackle.io/external-link/model-context-protocol/claude-ai-web).
* [Connect directly](https://claude.ai/customize/connectors?modal=add-custom-connector)
  {% endstep %}

{% step %}

### Verify the integration

In a new conversation, try entering the message below.

```
Tell me the available Hackle tools
```

If the response includes tool names, your migration is complete.
{% endstep %}

{% step %}

### Clean up the local server package (optional)

If you installed the npm package globally, remove it.

```bash
npm uninstall -g @hackle-io/hackle-mcp
```

If you ran it with `npx -y`, clearing the cache is enough.

```bash
npx clear-npx-cache
```

{% endstep %}

{% step %}

### Tool compatibility

The remote server includes all tools from the local server, with new domains added.

{% hint style="info" %}
You can keep using your existing prompts. Tool names have not changed.
{% endhint %}

| Domain                                      | Local Server | Remote Server |
| ------------------------------------------- | ------------ | ------------- |
| Experiment (A/B Test)                       | ✅            | ✅             |
| In-App Message                              | ✅            | ✅             |
| Push Message                                | ✅            | ✅             |
| Auto Metrics (DAU / Retention / Stickiness) | ✅            | ✅             |
| Analytics (Data Report / Chart)             | ✅            | ✅             |
| Remote Config                               | ✅            | ✅             |
| Text Message                                | —            | ✅             |
| Kakao Message                               | —            | ✅             |
| In-App Message Statistics                   | —            | ✅             |
| Push Message Statistics                     | —            | ✅             |
| Text Message Statistics                     | —            | ✅             |
| Kakao Message Statistics                    | —            | ✅             |
| {% endstep %}                               |              |               |
| {% endstepper %}                            |              |               |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/en/ai/model-context-protocol/claude/migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
