io.nestr/mcp

Connect AI to Nestr for Holacracy, Sociocracy, and self-organizing teams.

4MITdevtools

Install

Config snippet generator goes here (5 client tabs)

README

# @nestr/mcp

MCP (Model Context Protocol) server for [Nestr](https://nestr.io) - connect AI assistants like Claude to your workspace.

## What is this?

This MCP server allows AI assistants to interact with your Nestr workspace:

- Search for tasks, projects, and roles
- Create and update nests
- View organizational structure (circles, roles, accountabilities)
- Get workspace insights and metrics
- Add comments and collaborate

## Quick Start

**Visit [mcp.nestr.io](https://mcp.nestr.io)** for the easiest setup with step-by-step instructions for Claude Desktop, Claude Code, and Cursor.

### Claude Desktop

1. Go to **Settings → Connectors → Add custom connector**
2. Set **Name** to `Nestr` and **Remote MCP URL** to `https://mcp.nestr.io/mcp`
3. Click "Add" then "Authenticate" to log in with Nestr

### Claude Code

```bash
claude mcp add nestr --transport http https://mcp.nestr.io/mcp
```

Then run `/mcp` in Claude Code and click "Authenticate" to log in.

### Using the npm Package (Local)

If you prefer to run the MCP server locally:

```bash
npx @nestr/mcp
```

Configure your AI client with:

```json
{
  "mcpServers": {
    "nestr": {
      "command": "npx",
      "args": ["-y", "@nestr/mcp"],
      "env": {
        "NESTR_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

To get an API key:
1. Go to your [Nestr workspace](https://app.nestr.io)
2. Click **Settings** → **Integrations** → **Workspace API access** → **Configure**
3. Click **"New API key"** and copy it

## Start Using It

Ask your AI assistant things like:

- "What workspaces do I have access to?"
- "Search for tasks related to marketing"
- "Create a new project called 'Q1 Planning'"
- "What are my current projects and their status?"
- "Who is responsible for customer support?"

## Available Tools

### Workspace & Search

| Tool | Description |
|------|-------------|
| `nestr_list_workspaces` | List accessible workspaces |
| `nestr_get_workspace` | Get workspace details |
| `nestr_create_workspace` | Create a new workspace (OAuth only) |
| `nestr_search` | Search for nests (tasks, projects, roles) |
| `nestr_get_me` | Get current user identity and workspace list |

### Nests (Tasks, Projects, Roles)

| Tool | Description |
|------|-------------|
| `nestr_get_nest` | Get details of a specific nest (supports batch fetch with comma-separated IDs) |
| `nestr_get_nest_children` | Get child nests |
| `nestr_create_nest` | Create a new nest |
| `nestr_update_nest` | Update nest properties |
| `nestr_delete_nest` | Delete a nest |
| `nestr_reorder_nest` | Reorder a nest relative to another |
| `nestr_bulk_reorder` | Bulk reorder multiple nests |
| `nestr_add_label` | Add a label to a nest |
| `nestr_remove_label` | Remove a label from a nest |

### Comments & Discussion

| Tool | Description |
|------|-------------|
| `nestr_add_comment` | Add a comment to a nest |
| `nestr_get_comments` | Get comments/discussion on a nest |
| `nestr_update_comment` | Update a comment |
| `nestr_delete_comment` | Delete a comment |

### Organization Structure

| Tool | Description |
|------|-------------|
| `nestr_list_circles` | List organizational circles |
| `nestr_get_circle` | Get circle details |
| `nestr_get_circle_roles` | Get roles in a circle with accountabilities and domains |
| `nestr_list_roles` | List all roles |
| `nestr_list_users` | List workspace members |
| `nestr_get_user` | Get user details |
| `nestr_add_workspace_user` | Add a user to the workspace |

### Tensions

| Tool | Description |
|------|-------------|
| `nestr_create_tension` | Create a tension on a circle or role |
| `nestr_get_tension` | Get tension details |
| `nestr_list_tensions` | List tensions on a circle or role |
| `nestr_update_tension` | Update a tension |
| `nestr_delete_tension` | Delete a tension |
| `nestr_get_tension_parts` | Get proposal parts of a tension |
| `nestr_add_tension_part` | Add a proposal part (new/changed governance item) |
| `nestr_modify_tension_part` | Modify a proposal part |
| `nestr_remove_tension_part` | Remove a proposal part |
| `nestr_get_tension_part_children` | Get children (accountabilities/domains) of a proposal part |
| `nestr_create_tension_part_child` | Add a child to a proposal part |
| `nestr_update_tension_part_child` | Update a proposal part child |
| `nestr_delete_tension_part_child` | Delete a proposal part child |
| `nestr_get_tension_changes` | Preview the diff a proposal part would apply |
| `nestr_get_tension_status` | Get voting status for a tension |
| `nestr_update_tension_status` | Submit for voting or retract to draft |

### Graph Links

| Tool | Description |
|------|-------------|
| `nestr_get_graph_links` | Get nests linked via a named relation (e.g., meeting agenda items) |
| `nestr_add_graph_link` | Create a bidirectional link between two nests |
| `nestr_remove_graph_link` | Remove a link between two nests |

### Labels & Projects

| Tool | Description |
|------|-------------|
| `nestr_list_labels` | List workspac