Squiggles MCP server
io.github.carldaws/squiggles·v1.0.2·6 starsLet your coding agent see the squiggles — LSP diagnostics, navigation, refactoring, and extras
6 stars38 downloads/wk
Reviews
Write oneNobody has reviewed Squiggles yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Squiggles tools (30, 3 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
call_hierarchy_incomingFind all functions/methods that call the function at the given position.
call_hierarchy_outgoingFind all functions/methods that are called by the function at the given position.
clangd_astShow the Clang AST for a range in a C/C++ file
clangd_switch_source_headerSwitch between a C/C++ source file and its corresponding header
clangd_symbol_infoGet the USR and symbol details for the symbol at the given position
code_actionsGet available code actions (quick fixes, refactorings) at the given position. Diagnostics overlapping the range are passed to the server so quick fixes are included.
diagnosticsGet current diagnostics (errors, warnings) for a file. If no file is specified, returns diagnostics for all currently open files with issues. Waits for fresh results after recent edits.
document_symbolsGet all symbols (functions, classes, variables, etc.) defined in a file as a hierarchical tree.
find_referencesFind all references to a symbol across the project. Returns every location where the symbol is used.
formatFormat a file using the language server's formatter and write the result to disk.
go_add_importAdd an import path to a Go file. Applies the change to disk.
go_list_importsList the imports of a Go file and the package it belongs to
go_list_known_packagesList packages that are importable from the given Go file
go_mod_tidywrite actionRun go mod tidy for the module containing the given go.mod file
go_modulesList Go modules found under a directory
go_vulncheckwrite actionRun govulncheck to find known vulnerabilities in dependencies. May take a while on first run.
goto_declarationGo to the declaration of a symbol (relevant in C/C++ for header declarations).
goto_definitionGo to the definition of a symbol at the given position. Returns the file and location where the symbol is defined.
goto_implementationGo to implementations of an interface or abstract method. Returns concrete implementation locations.
goto_type_definitionGo to the type definition of a symbol. Returns where the type of the symbol at the given position is defined.
hoverGet hover information (type signature, documentation) for a symbol at the given position.
open_fileOpen a file in the LSP server. This triggers diagnostics and makes the file available for subsequent no-arg diagnostics calls.
renameRename a symbol across all affected files. Returns the workspace edit, or applies it to disk when apply is true.
rename_prepareCheck if a symbol at the given position can be renamed, and get its current name.
signature_helpGet parameter information for a function call at the given position.
ts_go_to_source_definitionGo to the source definition (the implementation, not the .d.ts declaration) of a symbol
ts_organize_importsSort imports and remove unused ones in a TypeScript/JavaScript file. Applies the changes to disk.
ts_rename_filewrite actionUpdate all imports that reference a file after it has been moved or renamed on disk. Move the file first, then call this. Applies the changes to disk.
type_hierarchyGet the type hierarchy (supertypes and subtypes) for the type at the given position.
workspace_symbolsSearch for symbols across the entire project by name. Supports fuzzy matching.
Public scan report
scanner v0.1.10 · 2026-10-15 · same rubric, same numbers if you re-run it
- Code scan31 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 20 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Squiggles compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 90% of 4,461 AI and agents servers
- Tools
- 30
- the typical AI and agents server has 6
- Tools that change things
- 10%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 6
- more than 80% of 2,713 AI and agents servers
- Downloads a week
- 38
- more than 28% of 1,554 AI and agents servers with a package
What its tools let an agent do: 24 read · 1 create · 5 change
Install Squiggles in Claude Code, Cursor or VS Code
Runs npx -y squiggles on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add squiggles -- npx -y squiggles
What the publisher says
From the Squiggles repository's README, as published. We do not edit it. Read it on GitHub
squiggles
Let your agent see the squiggles you'd see in an IDE.
squiggles is an MCP server that bridges coding agents to Language Server Protocol (LSP) servers. Configure one or more LSP servers and squiggles exposes their features — diagnostics, go-to-definition, find references, rename, formatting, and more — as MCP tools. Servers start lazily on first tool use, so there's no startup cost for languages you don't touch.
Beyond the standard protocol, squiggles unlocks the custom superpowers each language server ships that editors rarely surface and agents otherwise never see: expanding a Rust macro, discovering Ruby tests, switching between a C++ source file and its header, fixing every import after moving a TypeScript file, running govulncheck through gopls.
Quick Start
claude mcp add squiggles -- npx -y squigglesThen, in your project root:
npx squiggles initThis writes a squiggles.yaml for the languages it finds (a tsconfig.json means TypeScript, a Cargo.toml means Rust, and so on). Name the servers to choose them yourself: npx squiggles init typescript ruby. Presets exist for typescript, rust, ruby, go, python, cpp and lua; each needs its language server on PATH, and init prints the install command for every one it writes.
The result for a TypeScript project:
servers:
typescript:
command: ["typescript-language-server", "--stdio"]
filePatterns: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"]Configuration
squiggles looks for squiggles.yaml, squiggles.yml, .squiggles.yaml, or .squiggles.yml in the project root (the old mclsp.yaml names still work). Each server entry supports:
Multiple servers can be configured for different languages:
servers:
typescript:
command: ["typescript-language-server", "--stdio"]
filePatterns: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"]
rust:
command: ["rust-analyzer"]
filePatterns: ["**/*.rs"]
ruby:
command: ["ruby-lsp"]
filePatterns: ["**/*.rb"]
go:
command: ["gopls"]
filePatterns: ["**/*.go", "go.mod", "go.sum"]
cpp:
command: ["clangd"]
filePatterns: ["**/*.c", "**/*.h", "**/*.cpp", "**/*.hpp"]Tools
All standard LSP tools are registered and available when a matching server is configured.
Navigation: gotodefinition, gototypedefinition, gotoimplementation, gotodeclaration, findreferences
Inspection: hover, signaturehelp, documentsymbols, workspace_symbols
Refactoring: codeactions, renameprepare, rename, format
Hierarchy: callhierarchyincoming, callhierarchyoutgoing, type_hierarchy
Always available: open_file, diagnostics
Position-based tools take file (relative path), line (1-indexed), and col (1-indexed). rename accepts apply: true to write the edit to disk instead of returning it; format always writes to disk. code_actions automatically passes the diagnostics overlapping the requested range, so quick fixes show up.
Server Extensions
The best language servers go far beyond the standard protocol, and this is where squiggles earns its keep: it subscribes to the custom methods and commands that IDE plugins use but agent harnesses ignore. Extension tools register automatically when a matching server is configured.
Ruby (ruby-lsp)
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Squiggles: common questions
- Is Squiggles MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Squiggles safety report
- How do I install Squiggles?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Squiggles need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Squiggles maintained?
- The last commit was 41 days ago (2026-09-25). The latest release is v1.0.2.
- What can I use instead of Squiggles?
- Servers from other publishers that do the same job: Serena MCP: the IDE for your agent MCP server, Figma Context MCP server and SuperCompress MCP server.
- How does Squiggles compare with other AI and agents MCP servers?
- safety score 92/100 (higher than 90% of 4,461 AI and agents servers); tools 30 (the typical AI and agents server has 6); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Squiggles
Same job from other publishers: the closest match first, then the best rated.
- Serena MCP: the IDE for your agentA powerful toolkit for coding, providing semantic retrieval and editing capabilities.not reviewedWidely usedC
- Figma ContextGive your coding agent access to your Figma data. Implement designs in any framework in one-shot.not reviewedWidely usedB
- SuperCompressCompress coding-agent context ~64%. Hosted Neural Keep MCP for Cursor/Claude/Codex.not reviewedEstablishedB
- OrcareplayRead, replay and fork recorded coding-agent runs.not reviewedEstablishedA
- Total Agent MemoryPersistent local memory for coding agents: temporal knowledge graph, procedural and episodic recallnot reviewedEstablishedA