ProductLane MCP Server

martijnrusschen/productlane-mcp
0 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Provides AI assistants with access to ProductLane support threads, contacts, changelogs, and documentation through a set of MCP tools.

README.md

ProductLane MCP Server

An MCP server for the ProductLane API. Gives AI assistants access to support threads, contacts, changelogs, and docs.

Tools

Threads

| Tool | Description | |------|-------------| | list_threads | List threads, optionally filtered by state (NEW, PROCESSED, COMPLETED, SNOOZED) | | get_thread | Get full details of a thread including conversation history | | get_thread_messages | Get the full conversation history (all messages/replies) for a thread | | reply_to_thread | Send an email reply to a thread (plain-text newlines auto-converted to HTML) | | update_thread | Update thread state, title, assignee, pain level, project, tags |

Contacts

| Tool | Description | |------|-------------| | get_contact | Look up a contact by ID |

Changelogs

| Tool | Description | |------|-------------| | list_changelogs | List changelog entries for a workspace | | create_changelog | Publish a new changelog entry | | update_changelog | Update an existing changelog entry | | delete_changelog | Delete a changelog entry |

Docs: Articles

| Tool | Description | |------|-------------| | list_doc_articles | List published articles for a workspace, optionally filtered by group | | get_doc_article | Get a published article by ID including full content | | create_doc_article | Create a new article (supports Markdown content) | | update_doc_article | Update an article's title, content, summary, published/archived state | | delete_doc_article | Delete an article |

Docs: Groups

| Tool | Description | |------|-------------| | create_doc_group | Create a new group to organize articles | | update_doc_group | Update a group's name or display order | | delete_doc_group | Delete a group (articles become ungrouped) | | move_articles_to_group | Move articles to a group, or pass null to ungroup |

Setup

1. Get a ProductLane API key

Go to your ProductLane workspace settings to generate an API key.

2. Configure in Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "productlane": {
      "command": "node",
      "args": ["/path/to/productlane-mcp/dist/index.js"],
      "env": {
        "PRODUCTLANE_API_KEY": "your-api-key"
      }
    }
  }
}

3. Build

npm install
npm run build

Development

npm run dev    # Run with tsx (no build step)
npm run build  # Compile TypeScript
npm start      # Run compiled output

Known Issues

  • GET /threads/{id}?includeConversation=true may return 500 on threads with API-sent replies. The server tries with it enabled and falls back without it. Use get_thread_messages as an alternative. (Reported to ProductLane 2026-03-04)
  • Thread state does not directly control inbox tab placement — determined by multiple factors including state, snooze timing, and workspace settings.

Related MCP servers

Browse all →