Skip to main content
Glama
minhlecsm

rocketlane-mcp

by minhlecsm
README.md
# rocketlane-mcp

An MCP server that exposes your [Rocketlane](https://www.rocketlane.com) CSM data to Claude and other MCP-compatible AI clients. Ask questions about project health, team workload, tasks, and generate weekly reviews — without leaving your AI assistant.

## Tools

| Tool | Description |
|---|---|
| `get_projects_snapshot` | All active projects with status, CSM owner, and progress % |
| `get_csm_workload` | Per-CSM active project count and overdue task count |
| `get_project_updates` | Recent project updates (scope by project or all, configurable lookback window) |
| `get_all_tasks` | All tasks across active projects — filter by project or assignee name |
| `get_team_members` | All active team members with user ID and email |
| `parse_tasks_from_notes` | Parse meeting notes into structured task drafts for review |
| `create_tasks` | Create confirmed tasks in Rocketlane (call after `parse_tasks_from_notes`) |
| `create_project` | Create a new Rocketlane project |
| `push_weekly_review_to_lark` | Generate a weekly CS review doc and push it to Lark Docs *(optional — requires Lark credentials)* |

## Quickstart

### Claude Desktop (recommended)

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "rocketlane-csm": {
      "command": "uvx",
      "args": ["rocketlane-mcp"],
      "env": {
        "ROCKETLANE_API_KEY": "your_rocketlane_api_key_here",
        "ROCKETLANE_BASE_URL": "https://api.rocketlane.com/api/1.0"
      }
    }
  }
}
```

Restart Claude Desktop. No separate install step needed — `uvx` fetches and runs the package automatically.

### Install via pip

```bash
pip install rocketlane-mcp
```

Then run:

```bash
ROCKETLANE_API_KEY=your_key rocketlane-mcp
```

Or create a `.env` file (see [`.env.example`](.env.example)) and run `rocketlane-mcp` directly.

## Configuration

| Variable | Required | Description |
|---|---|---|
| `ROCKETLANE_API_KEY` | Yes | Your Rocketlane API key (Settings → Integrations → API) |
| `ROCKETLANE_BASE_URL` | Yes | `https://api.rocketlane.com/api/1.0` |
| `LARK_APP_ID` | No | Lark app ID — only needed for `push_weekly_review_to_lark` |
| `LARK_APP_SECRET` | No | Lark app secret |
| `LARK_FOLDER_TOKEN` | No | Lark folder token where review docs will be created |

## Example prompts

- *"Show me all active projects and their health status."*
- *"Which CSM has the most overdue tasks this week?"*
- *"What updates have been posted in the last 3 days?"*
- *"Parse these meeting notes and create tasks for the team: ..."*
- *"Push this week's CS review to Lark."*

## Development

```bash
git clone https://github.com/minhlecsm/rocketlane-mcp
cd rocketlane-mcp
pip install -e '.[dev]'
cp .env.example .env  # fill in your credentials
pytest
```

## License

MIT

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: creating projects vs tasks, updating vs deleting, and various getters for different entities. The only potential overlap is complete_task being a wrapper for update_task, but it is explicitly documented as a convenience for a specific status change, so no confusion arises.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores: complete_task, create_project, create_tasks, delete_task, get_all_tasks, get_csm_workload, get_projects_snapshot, get_project_updates, get_task, get_team_members, parse_tasks_from_notes, push_weekly_review_to_lark, update_task. The verbs are action-oriented and the nouns indicate the resource.

Tool Count5/5

With 13 tools, the server covers the core workflows of project and task management without being overwhelming or too sparse. The number is well-scoped for the domain, providing essential CRUD operations, reporting, and utility functions.

Completeness4/5

The tool set covers project creation, task CRUD, snapshots, updates, team members, and workload reports. However, there is no dedicated tool to fetch project members or phases, which are referenced in create_tasks but must be obtained indirectly via other tools or external calls. This minor gap prevents full self-containment.

Maintenance

ActivityStale
ResponsivenessSyncing