---
title: Cursor
description: Connect Cursor to Hamloy in one click, or with one entry in .cursor/mcp.json. It holds no secret, so it can be committed. You sign in in the browser.
url: https://hamloy.com/docs/cursor
---

[Docs](https://hamloy.com/docs)

# Cursor

Connect Cursor to Hamloy in one click, or with one entry in .cursor/mcp.json. It holds no secret, so it can be committed. You sign in in the browser.

Cursor reads its MCP servers from a JSON file. Put Hamloy in the project's file and its agent gets Hamloy's tools in that project; put it in your own file and it has them in every project.

## What you need

- A Hamloy account and a project. [Create a free board](https://hamloy.com/registration/new) if you have none.
- Cursor.

## Connect

Add Hamloy to Cursor in one click, for every folder:

[Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?config=eyJ1cmwiOiJodHRwczovL2hhbWxveS5jb20vbWNwIn0%3D&name=hamloy) Cursor asks to add Hamloy, then you sign in in your browser.

Or, to keep it to one folder, put this in `.cursor/mcp.json` in the folder you work in. If the file already has servers, add `hamloy` beside them.

```
{
  "mcpServers": {
    "hamloy": {
      "url": "https://hamloy.com/mcp/YOUR_PROJECT_ID"
    }
  }
}
```

Your project's own address is on Hamloy's **Connect** page: pick the project and then the Cursor tab, and the file is there filled in. The file holds no secret, so it can be committed with the repo; each person who opens it signs in as themselves.

Cursor asks you to sign in the first time. Your browser opens on Hamloy and asks _Let "Cursor" in?_ Choose **Allow**.

### In every project

The button above does this for you. To do it by hand, put it in `~/.cursor/mcp.json` instead, with your account's address. It reaches every project you are on, and the agent says which one each time.

```
{
  "mcpServers": {
    "hamloy": {
      "url": "https://hamloy.com/mcp"
    }
  }
}
```

## Check that it worked

Ask Cursor's agent "What's open in Hamloy?" It calls the `list` tool:

```
Pebble · 4 open, 1 done
backlog
  ## Streaks
  [] B-k3f9@2 Streak counter on the habit card (claimed by claude on streak-counter in pebble)
  [] B-m2xq@1 Share a streak as an image
requests
  [] R-q4ve@1 Create an Apple developer account
questions
  [] Q-7hnc@1 How should a shared streak look? options: 1) A square card (recommended) 2) A story-sized image
```

Claude Code holds B-k3f9 here, so Cursor's agent claims B-m2xq instead. Hamloy refuses a claim on a task another agent holds, whichever app it runs in.

_Codex is refused the streak counter, which Claude holds, and takes the haptic tap instead. Claude Code or Codex, the claim holds._

## With a token instead

For a machine nobody signs in on, make an [API token](https://hamloy.com/docs/api-tokens) on the Connect page. Cursor reads it from `HAMLOY_TOKEN`:

```
{
  "mcpServers": {
    "hamloy": {
      "url": "https://hamloy.com/mcp/YOUR_PROJECT_ID",
      "headers": {
        "Authorization": "Bearer ${env:HAMLOY_TOKEN}"
      }
    }
  }
}
```

Put `export HAMLOY_TOKEN=YOUR_TOKEN` in your shell profile, not in the repo, and start Cursor again.

## If it doesn't work

- **No sign-in window.** Start Cursor again after saving the file, so it reads it.
- **The window says "This link doesn't work."** Hamloy doesn't know the app that sent you. Take the entry out, save, put it back, and sign in again.
- **The token isn't used.** Cursor reads `HAMLOY_TOKEN` when it starts. Quit it and start it again once the variable is in your shell profile.
- **The file has a mistake.** Compare it with the one on the Connect page. Every server sits under `mcpServers`, and the file is plain JSON: no trailing commas.
- **You want to cut the connection.** The Connect page lists Cursor under **Connected apps** , with **Disconnect**.

Cursor runs beside your terminal agents. See [Claude Code](https://hamloy.com/docs/claude-code) and [Codex](https://hamloy.com/docs/codex) for the program that sets those up.
