# MCP server

Connect Claude and other AI clients to your Easerix workspace at mcp.easerix.com.

Canonical: https://easerix.com/docs/developers/mcp

<Answer label="What the MCP server does">
Easerix runs a hosted MCP server at **mcp.easerix.com**. Add it to Claude or
any MCP-compliant AI client, approve it once in your browser, and the AI can
act on your workspace — create issues and short links, pull analytics, check
documents, log CRM activity — limited to the tools your workspace has enabled.
</Answer>

MCP (Model Context Protocol) is an open standard that lets AI assistants call
tools on external services — the Easerix MCP server is how an AI client gets
hands on your workspace.

## Add it to Claude

**claude.ai / Claude Desktop** — Settings → Connectors → Add custom connector,
with the URL:

```
https://mcp.easerix.com/mcp
```

**Claude Code** — one command:

```bash
claude mcp add --transport http easerix https://mcp.easerix.com/mcp
```

Any other MCP client that supports streamable HTTP and OAuth works the same
way — point it at `https://mcp.easerix.com/mcp`.

## Signing in happens automatically

The server is an OAuth 2.1 resource server, and compliant clients handle the
whole flow on their own: on first use the client discovers
`auth.easerix.com`, registers itself, and opens your browser to approve the
connection. You pick **one workspace** to grant — everything the AI does is
scoped to it. To switch workspaces, disconnect and connect again. Revoke a
connection anytime under **account.easerix.com → Connected apps**.

## Available tools

Tools are gated by workspace access: a tool group only appears if that Easerix
tool is enabled for the granted workspace. `whoami` is always available and
tells the AI who it's acting as, in which workspace, with which tools.

### Tasks

Tools that change something for good, or start work in the background, need
`confirm: true` in the call. Without it they refuse and change nothing.

#### Issues

| Tool | What it does |
|---|---|
| `tasks_list_teams` | List the teams in the workspace (id, key, name) |
| `tasks_list_issues` | List issues, 50 at a time, filtered by team, assignee, state, project, cycle, label, parent or creator |
| `tasks_count_issues` | Count issues grouped by status, priority, assignee, project or cycle, without listing them |
| `tasks_get_issue` | One issue in full: title, description, state, assignee, priority, estimate, due date, project, cycle, labels |
| `tasks_get_issue_activity` | An issue's history: who changed what, and when |
| `tasks_create_issue` | Create an issue, with its status, priority, assignee, project, cycle, estimate, due date, labels or parent in one call |
| `tasks_update_issue` | Change an issue's title, description, status, assignee, priority, estimate, due date, project, cycle or parent |
| `tasks_delete_issue` | Delete an issue and all its sub-issues (they go to Recently Deleted). Needs `confirm: true`. |
| `tasks_restore_issue` | Bring back a deleted issue while it is still in Recently Deleted |

#### Comments, followers and links between issues

| Tool | What it does |
|---|---|
| `tasks_list_comments` | An issue's comments, oldest first, with each author |
| `tasks_add_comment` | Comment on an issue |
| `tasks_update_comment` | Edit a comment |
| `tasks_delete_comment` | Delete a comment for good. Needs `confirm: true`. |
| `tasks_list_followers` | Who follows an issue |
| `tasks_follow_issue` | Follow an issue |
| `tasks_unfollow_issue` | Stop following an issue |
| `tasks_list_relations` | What blocks an issue, what it blocks, and related or duplicate issues |
| `tasks_create_relation` | Link two issues: blocks, blocked by, related or duplicate |
| `tasks_delete_relation` | Remove a link between two issues. Needs `confirm: true`. |
| `tasks_list_attachments` | The files attached to an issue |
| `tasks_delete_attachment` | Delete a file attached to an issue. Needs `confirm: true`. |

#### Labels, projects, cycles and statuses

| Tool | What it does |
|---|---|
| `tasks_list_labels` | A team's labels, with how many issues carry each |
| `tasks_create_label` | Create a label |
| `tasks_update_label` | Rename a label or change its color |
| `tasks_delete_label` | Delete a label and take it off every issue. Needs `confirm: true`. |
| `tasks_add_label` | Put a label on an issue |
| `tasks_remove_label` | Take a label off an issue |
| `tasks_list_projects` | List projects: name, status, target date |
| `tasks_get_project` | One project's detail |
| `tasks_create_project` | Create a project |
| `tasks_update_project` | Change a project's name, description, status, lead or target date |
| `tasks_delete_project` | Delete a project and its issues (they go to Recently Deleted). Needs `confirm: true`. |
| `tasks_restore_project` | Bring back a deleted project |
| `tasks_list_cycles` | A team's cycles: number, name, dates |
| `tasks_update_cycle` | Rename a cycle |
| `tasks_list_states` | A team's statuses and their lanes |
| `tasks_create_state` | Add a status to a team's board |
| `tasks_update_state` | Rename a status, or change its lane, color or description |
| `tasks_delete_state` | Delete a status. Needs `confirm: true`. |

#### Teams, people and imports

| Tool | What it does |
|---|---|
| `tasks_list_members` | The workspace's members, to name an assignee |
| `tasks_get_team_settings` | A team's settings: default status, priority and assignee, estimate scale, cycles, how long deleted issues are kept |
| `tasks_update_team_settings` | Change those settings. Turning cycles or rollover on needs `confirm: true`. |
| `tasks_list_imports` | Imports uploaded in Tasks > Settings > Import, newest first |
| `tasks_get_import` | One import's progress, the rows it could not import, and the people it is waiting for |
| `tasks_preview_import` | What an import would do, without doing it |
| `tasks_start_import` | Start an import into the team it was uploaded for. Needs `confirm: true`. |
| `tasks_cancel_import` | Stop an import that has not finished. Needs `confirm: true`. |
| `tasks_undo_import` | Undo a finished import, within 7 days. Needs `confirm: true`. |

### Links

| Tool | What it does |
|---|---|
| `links_create_short_link` | Create a tracked `esrx.ly` short link |
| `links_list` | List short links with click counts |
| `links_update_link` | Change destination, title, tags, pause, or archive |
| `links_delete_link` | Delete a link and its click history. Needs `confirm: true`. |
| `links_link_stats` | Per-link analytics: clicks, countries, devices, referrers, conversions |
| `links_batch` | Pause, activate, archive, or delete up to 100 links at once. Deleting needs `confirm: true`. |
| `links_get_qr` | A link's QR code (PNG), in its saved style |
| `links_set_qr_style` | Save a link's QR code style: pattern, corners and colors |
| `links_set_rules` | Set a link's routing rules (for example by country or device) |
| `links_delete_rule` | Delete one routing rule from a link |
| `links_track_conversion` | Record a conversion for a click |
| `links_list_bio_pages` | List link-in-bio pages |
| `links_update_bio_page` | Edit a bio page's content or publish state |
| `links_analytics_summary` | Account-wide link analytics |
| `links_list_campaigns` | List reusable UTM campaigns |
| `links_create_webhook` | Register an endpoint for link and click events |
| `links_set_qr_logo` | Put a custom logo on a link's QR code |

### Sign

| Tool | What it does |
|---|---|
| `sign_list_documents` | List documents with signature status |

### CronCrunch

| Tool | What it does |
|---|---|
| `croncrunch_time_summary` | Tracked-time summary by project and by day |

### CRM

| Tool | What it does |
|---|---|
| `crm_pipeline_summary` | Pipeline stages with deal counts and value |
| `crm_create_contact` | Create a contact |
| `crm_create_company` | Create a company |
| `crm_create_deal` | Open a deal in the default pipeline |
| `crm_move_deal` | Move a deal to another stage |
| `crm_log_activity` | Log a note, call, email, or meeting |

### Notes

| Tool | What it does |
|---|---|
| `notes_search` | Full-text search your pages (titles + content) |
| `notes_read_page` | Read a page's content as plain text |
| `notes_create_page` | Create a page from Markdown |
| `notes_append_to_page` | Append Markdown to an existing page |
| `notes_list_comments` | Comments across the pages you can read (open ones by default) |
| `notes_add_comment` | Comment on a page, or reply to a comment |
| `notes_resolve_comment` | Resolve a comment, or reopen it |

### Forms

| Tool | What it does |
|---|---|
| `forms_list_forms` | List your forms |
| `forms_form_summary` | A form's settings, latest submissions, and 14-day series |
| `forms_field_breakdown` | Submission counts by the value of a field, such as how people heard about you |

The list grows as tools gain MCP surface — reconnect (or restart your client)
to pick up new ones.

## Frequently asked questions

### Can the AI reach workspaces I didn't grant?

No. The connection is scoped to the single workspace you approved. Data in
other workspaces is invisible to it.

### Does the AI get more access than I have?

No — it acts as you, with your role, and only in tools enabled for the
workspace.

### My client asks for a client ID or secret — what do I enter?

Nothing. The server supports dynamic client registration, so compliant clients
register themselves. There is no shared client secret.
