Skip to main content
Glama
devAndreotti

lenis-mcp-server

by devAndreotti
README.md
<!-- Lenis MCP Server -->
# šŸŽÆ Lenis MCP Server

<p align="center">
  <img alt="GitHub language count" src="https://img.shields.io/github/languages/count/devAndreotti/lenis-mcp-server?color=FFF&labelColor=14b8a6&style=flat-square">
  <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/devAndreotti/lenis-mcp-server?color=FFF&labelColor=14b8a6&style=flat-square">
  <img alt="GitHub stars" src="https://img.shields.io/github/stars/devAndreotti/lenis-mcp-server?color=FFF&labelColor=14b8a6&style=flat-square">
</p>

<p align="center">
  <a href="https://opensource.org/licenses/MIT">
    <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License MIT">
  </a>
  <a href="https://modelcontextprotocol.io">
    <img src="https://img.shields.io/badge/MCP-Model_Context_Protocol-6366f1?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIgMkw0IDdWMTdMMTIgMjJMMjAgMTdWN0wxMiAyWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+&logoColor=white" alt="MCP">
  </a>
  <a href="https://lenis.darkroom.engineering/">
    <img src="https://img.shields.io/badge/Lenis-Smooth_Scroll-0d9488?logoColor=white" alt="Lenis">
  </a>
  <a href="https://www.typescriptlang.org/">
    <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white" alt="TypeScript">
  </a>
  <a href="https://greensock.com/gsap/">
    <img src="https://img.shields.io/badge/GSAP-88CE02?logo=greensock&logoColor=white" alt="GSAP">
  </a>
</p>

> MCP server that provides **Lenis smooth scroll expertise** to AI assistants. Knowledge-based — no external API calls, all documentation is embedded.

## šŸ“‹ About

The **Lenis MCP Server** is a [Model Context Protocol](https://modelcontextprotocol.io) server that gives AI coding assistants deep knowledge about [Lenis](https://lenis.darkroom.engineering/) — the lightweight, performant smooth scroll library by darkroom.engineering.

All documentation (settings, methods, events, patterns, troubleshooting) is **embedded directly** in the server. When an AI assistant calls a tool, it receives structured, accurate information — **no network requests, no API keys, zero latency**.

## šŸ› ļø Tools

| Tool | Description |
|------|-------------|
| šŸ”§ `lenis_generate_setup` | Generate setup code for vanilla JS, React, Vue, Next.js (+ GSAP, snap) |
| šŸ“– `lenis_get_api_reference` | Query settings, methods, events, properties with search |
| šŸ› `lenis_debug_scroll_issue` | Diagnose scroll issues against known limitations |
| šŸŽØ `lenis_create_scroll_pattern` | Production-ready patterns: parallax, snap, horizontal, WebGL sync |
| ⚔ `lenis_optimize_performance` | Performance recommendations for your setup |

---

## šŸ—ļø How It Works

```mermaid
graph LR
    A[šŸ¤– AI Assistant] -->|Calls MCP tool| B[šŸŽÆ Lenis MCP Server]
    B -->|Queries| C[šŸ“š Embedded Knowledge Base]
    C -->|Returns| B
    B -->|Structured response| A
    A -->|Generates code| D[šŸ’» Your Project]

    style A fill:#6366f1,stroke:#4f46e5,color:#fff
    style B fill:#14b8a6,stroke:#0d9488,color:#fff
    style C fill:#f59e0b,stroke:#d97706,color:#fff
    style D fill:#10b981,stroke:#059669,color:#fff
```

---

## šŸ“¦ Installation

### Via npx (recommended)

Add to your MCP config (Claude Desktop, Cursor, Windsurf, etc.):

```json
{
  "mcpServers": {
    "lenis-mcp": {
      "command": "npx",
      "args": ["-y", "lenis-mcp-server"]
    }
  }
}
```

### From source

```bash
git clone https://github.com/devAndreotti/lenis-mcp-server.git
cd lenis-mcp-server
npm install
npm run build
```

Then add to your MCP config:

```json
{
  "mcpServers": {
    "lenis-mcp": {
      "command": "node",
      "args": ["path/to/lenis-mcp-server/dist/index.js"]
    }
  }
}
```

---

## 🌟 Features

| Feature | Description |
|---------|-------------|
| šŸš€ **Zero Latency** | All docs embedded — no network requests needed |
| šŸŽÆ **Framework-Aware** | Supports vanilla JS, React, Vue, and Next.js |
| šŸ”— **GSAP Integration** | Deep knowledge of ScrollTrigger integration |
| šŸ› **Smart Debugging** | Matches symptoms against known limitations |
| šŸ“± **Mobile-Ready** | Performance tips for touch & mobile optimization |
| šŸŽØ **Pattern Library** | Parallax, snap, horizontal, WebGL sync, and more |

---

## šŸ’¬ Example Prompts

- *"Set up Lenis with GSAP ScrollTrigger in my React app"*
- *"What are all the Lenis settings and their defaults?"*
- *"My scroll is janky on Safari, help me fix it"*
- *"Create a parallax effect with Lenis and GSAP"*
- *"Optimize my Lenis setup for mobile devices"*
- *"How do I handle nested scroll containers?"*

---

## šŸ“‚ Project Structure

```shell
lenis-mcp-server/
│
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # MCP server with 5 tools
│   └── knowledge/
│       └── lenis-docs.ts     # Complete Lenis knowledge base
│
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ LICENSE
└── README.md
```

---

## šŸ› Troubleshooting

| Problem | Solution |
|---------|----------|
| Server won't start | Ensure Node.js ≄ 18 and run `npm run build` first |
| Tools not appearing | Check MCP config path is correct and restart your IDE |
| Outdated information | Open an issue or PR to update the knowledge base |

---

## šŸ’Ŗ Contributing

Contributions are welcome! Follow the steps below:

1. Fork this repository.
2. Create a branch: `git checkout -b feature/your-feature`.
3. Commit your changes: `git commit -m "feat: my contribution"`.
4. Push to the branch: `git push origin feature/your-feature`.
5. Open a Pull Request with a summary of proposed changes.

Use [Conventional Commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `docs:`, `style:`, `refactor:`, `test:`, `chore:`.

## šŸ“ License

This project is under the **MIT** license. See the [LICENSE](./LICENSE) file for details.

---

<p align="center">
  Built with ā˜• by <a href="https://github.com/devAndreotti">devAndreotti</a>
</p>

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: pattern generation, debugging, setup code, API reference, and optimization. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent 'lenis_verb_noun' pattern in snake_case (e.g., lenis_create_scroll_pattern, lenis_debug_scroll_issue). The naming is predictable and uniform.

Tool Count5/5

With exactly 5 tools, the server is well-scoped for a focused library helper. Each tool serves a distinct purpose without redundancy or unnecessary breadth.

Completeness4/5

The set covers creation, debugging, setup, documentation, and optimization. Minor gap: no tool for updating or removing patterns, but core workflows are fully supported.

Maintenance

ActivityInactive
ResponsivenessNo issues