npm package: @laskoff/mcp-server
Description: MCP Server for Laskoff platform with Vibe Coding workflow. 397 tools: Wiki, Backlog (RICE, 12-stage workflow), Diagrams, Notes, AI (actions, quests, audio), Bots (Telegram), MiniApps (resume, landing, form, quiz, CRM), Presentations (slides, themes, AI ge
Latest version: 1.9.0

# @laskoff/mcp-server

MCP Server for Laskoff platform with Vibe Coding workflow and comprehensive documentation.

**270+ tools** with detailed scenarios: Wiki, Backlog, Diagrams, Notes, Bots, MiniApps.

## Installation

```bash
npx @laskoff/mcp-server
```

## Configuration

### Qoder / Claude Desktop / Cursor

Add to your MCP configuration:

```json
{
  "mcpServers": {
    "laskoff": {
      "command": "npx",
      "args": ["-y", "@laskoff/mcp-server"],
      "env": {
        "LASKOFF_URL": "https://laskoff.ru",
        "LASKOFF_MCP_KEY": "mcp_YOUR_KEY_HERE",
        "LASKOFF_PROJECT_ID": "YOUR_PROJECT_ID"
      }
    }
  }
}
```

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `LASKOFF_URL` | Yes | API URL (https://laskoff.ru or https://dev.laskoff.ru) |
| `LASKOFF_MCP_KEY` | Yes | MCP API key from organization settings |
| `LASKOFF_PROJECT_ID` | No | Default project ID for backlog operations |

---

## Tool Categories

| Category | Tools | Description |
|----------|-------|-------------|
| **Backlog** | 50+ | Tasks, subtasks, sprints, RICE scoring, 12-stage Vibe Coding workflow |
| **Wiki** | 25+ | Pages, spaces, versions, comments, task linking |
| **Notes** | 20+ | Personal notes, folders, categories, conversion to tasks/wiki |
| **MiniApps** | 15+ | Templates (resume, landing, form, quiz, CRM), file management |
| **Diagrams** | 10+ | Gantt charts, architecture, ER diagrams, flowcharts |
| **Bots** | 15+ | Telegram bots, notification templates, groups |
| **AI** | 15+ | Conversations, quests, transcription, roles, models |
| **Notifications** | 10+ | User notifications, preferences, groups |

---

## CRITICAL: Wiki HTML Formatting

### Wiki API accepts ONLY HTML, NOT Markdown!

The Laskoff Wiki editor is built on **TipTap** - a WYSIWYG editor that:
- Stores content in HTML format
- Renders HTML directly without conversion
- Does NOT parse Markdown syntax

**If you pass Markdown to Wiki API - it will display as plain text!**

### Conversion Table

| Markdown | HTML |
|----------|------|
| `# Heading` | `<h1>Heading</h1>` |
| `## Subheading` | `<h2>Subheading</h2>` |
| `**bold**` | `<strong>bold</strong>` |
| `*italic*` | `<em>italic</em>` |
| `` `code` `` | `<code>code</code>` |
| `[link](url)` | `<a href="url">link</a>` |
| `- item` | `<ul><li>item</li></ul>` |
| `1. item` | `<ol><li>item</li></ol>` |
| Paragraph | `<p>Paragraph</p>` |

### Tables

**WRONG (Markdown):**
```
| Col 1 | Col 2 |
|-------|-------|
| Data  | Data  |
```

**CORRECT (HTML):**
```html
<table>
  <thead>
    <tr>
      <th>Col 1</th>
      <th>Col 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Data</td>
      <td>Data</td>
    </tr>
  </tbody>
</table>
```

### Code Blocks

**WRONG (Markdown):**
```
```javascript
const x = 1;
```
```

**CORRECT (HTML):**
```html
<pre><code class="language-javascript">const x = 1;</code></pre>
```

### Full Page Example

```html
<h1>Feature Analysis</h1>

<h2>Description</h2>
<p>Brief description of the feature and its goals.</p>

<h2>Requirements</h2>
<ul>
  <li>Requirement 1</li>
  <li>Requirement 2</li>
  <li>Requirement 3</li>
</ul>

<h2>Status</h2>
<table>
  <thead>
    <tr>
      <th>Component</th>
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Backend</td>
      <td>Done</td>
    </tr>
    <tr>
      <td>Frontend</td>
      <td>In Progress</td>
    </tr>
  </tbody>
</table>

<h2>Code Example</h2>
<pre><code class="language-typescript">
function example(): string {
  return "Hello World";
}
</code></pre>
```

### Wiki Creation Checklist

When creating Wiki pages via MCP tools, ensure:

- [ ] Use `<h1>`, `<h2>`, `<h3>` instead of `#`, `##`, `###`
- [ ] Use `<p>` for paragraphs
- [ ] Use `<ul><li>` instead of `- item`
- [ ] Use `<table>` instead of `| col |`
- [ ] Use `<strong>` instead of `**bold**`
- [ ] Use `<code>` instead of `` `code` ``
- [ ] Use `<pre><code>` for code blocks

### MCP Tools Affected

**NEVER pass Markdown to these tools:**
- `laskoff_wiki_create_page` - `content` parameter must be HTML
- `laskoff_wiki_update_page` - `content` parameter must be HTML

---

## Vibe Coding Workflow

The 12-stage development workflow:

| # | Status | Description |
|---|--------|-------------|
| 1 | `backlog` | Unassigned tasks queue |
| 2 | `todo` | Taken into work |
| 3 | `general-analysis` | Requirements analysis + Wiki |
| 4 | `splitting` | Breaking into subtasks |
| 5 | `scoring` | RICE scoring for subtasks |
| 6 | `system-analysis` | Technical documentation |
| 7 | `backend-dev` | Backend development |
| 8 | `frontend-dev` | Frontend development |
| 9 | `code-review` | Code review |
| 10 | `testing` | Testing |
| 11 | `rework` | Fixes from review/tests |
| 12 | `done` | Completed |

### RICE Scoring Formula

```
RICE Score = (Reach × Impact × Confidence) / Effort
```

| Parameter | Range | Description |
|-----------|-------|-------------|
| Reach | 1-10 | Users affected per week |
| Impact | 1-5 | 1=minimal, 5=massive |
| Confidence | 0-1 | 0.5=low, 0.8=medium, 1.0=high |
| Effort | 0.5-10 | Person-days to implement |

---

## Quick Start Examples

### Create a Task with Score

```javascript
// 1. Create task
const task = await laskoff_backlog_create_task({
  title: "Implement PDF Export",
  description: "Add PDF export functionality..."
});

// 2. Set RICE score (REQUIRED for prioritization!)
await laskoff_backlog_set_score({
  taskId: task.id,
  reach: 8,
  impact: 4,
  confidence: 0.8,
  effort: 3
});
```

### Create Wiki Page (HTML!)

```javascript
await laskoff_wiki_create_page({
  space_id: "project-docs",
  title: "API Documentation",
  content: `
    <h1>API Documentation</h1>
    <h2>Endpoints</h2>
    <table>
      <thead>
        <tr><th>Method</th><th>Path</th><th>Description</th></tr>
      </thead>
      <tbody>
        <tr><td>GET</td><td>/api/users</td><td>List users</td></tr>
        <tr><td>POST</td><td>/api/users</td><td>Create user</td></tr>
      </tbody>
    </table>
  `
});
```

### Link Wiki to Task

```javascript
// Two equivalent ways (bidirectional):
await laskoff_backlog_link_wiki({ taskId: 42, wikiPageId: 15 });
// OR
await laskoff_wiki_link_task({ pageId: 15, taskId: 42 });
```

---

## Best Practices

1. **Always set RICE score** after creating tasks - without score, tasks won't appear in `get_next_task()`

2. **Use HTML for Wiki** - TipTap editor requires HTML, Markdown will display as plain text

3. **Link Wiki to Tasks** - creates bidirectional traceability for requirements

4. **Follow Vibe Coding workflow** - move tasks through statuses using `move_task_status()`

5. **Log actions** - use `log_action()` for audit trail on stages 7-10

6. **Attach commits** - use `attach_commit()` to link git commits to tasks

---

## License

MIT