# squiggles

squiggles exposes language-server features to coding agents through MCP, from diagnostics to refactoring. Use it when your project depends on LSP tooling.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: carldaws
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/carldaws/squiggles
- Updated: 2026-09-25
- HTML: https://affpapa.org/en/nevibecode/mcp/squiggles

## What it does

squiggles connects coding agents with Language Server Protocol servers and exposes their capabilities as MCP tools. The agent can inspect diagnostics, jump through definitions and references, rename symbols, format files, inspect hierarchies, and query document symbols. Each configured server starts when a tool first needs it, so untouched languages do not start with the server.

In the project root, create `squiggles.yaml` or one of its supported filename variants. Running `npx squiggles init` detects project files and writes language-server settings; you can also name presets for TypeScript, Rust, Ruby, Go, C++ or Lua. Every selected language server must be available on `PATH`. TypeScript needs a discoverable `typescript` package; with TypeScript 7, keep `typescript@5` in the workspace because that release has no `tsserver.js`.

The server also exposes language-specific operations, such as Ruby test discovery, Rust macro expansion, TypeScript import repair after a file move, `go_vulncheck`, and source-header switching for C++. Without the matching language server on `PATH`, those tools cannot start.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add squiggles -- npx -y squiggles
```

### Codex

**Platform CLI**
```bash
codex mcp add squiggles -- npx -y squiggles
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "squiggles": {
            "command": "npx",
            "args": [
                "-y",
                "squiggles"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "squiggles": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "squiggles"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add squiggles npx -y squiggles
```

## When to use it
- inspect diagnostics across project files
- jump to definitions and locate references
- rename symbols while applying edits to disk
- repair imports after moving a TypeScript file
- run language-server checks and commands

## Example prompts
- Use squiggles to inspect diagnostics in `src/app.ts` and explain each issue.
- Find every reference to `parseConfig`, then open its definition.
- After moving `src/user.ts`, repair the project imports with `ts_rename_file`.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 392262
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33989
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81163
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119231
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47577
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43902

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
