[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ktnyt--cclsp":3,"tool-ktnyt--cclsp":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":32,"env_os":99,"env_gpu":100,"env_ram":101,"env_deps":102,"category_tags":115,"github_topics":116,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":122,"updated_at":123,"faqs":124,"releases":154},5116,"ktnyt\u002Fcclsp","cclsp","Claude Code LSP: enhance your Claude Code experience with non-IDE dependent LSP integration.","cclsp 是一款专为提升 AI 编程体验而设计的开源工具，它充当了大型语言模型（如 Claude）与传统代码语言服务器（LSP）之间的智能桥梁。在使用 AI 助手编写或分析代码时，模型往往难以精准定位代码的行号和列号，导致无法可靠地调用“跳转定义”、“查找引用”或“重命名符号”等核心功能。cclsp 巧妙解决了这一痛点：它能智能尝试多种位置组合，自动修正 AI 产生的坐标偏差，确保无论 AI 如何计数，都能实现稳健的代码符号解析。\n\n这款工具特别适合依赖 Claude Code 等 AI 代理进行开发的程序员和技术团队。通过支持模型上下文协议（MCP），cclsp 让 AI 能够像专业 IDE 一样理解代码结构，轻松实现跨文件跳转、全局引用查找及安全重命名。其技术亮点在于“容错式”的位置解析机制，无需修改现有 IDE 配置即可无缝集成。目前，它已内置对 TypeScript、Python、Go 等多种主流语言的支持，并能灵活适配任何兼容 LSP 的服务器。如果你希望让 AI 编程助手更精准地导航和操作代码库，cclsp 是一个轻量且高效的增强方案。","[![MseeP.ai Security Assessment Badge](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fktnyt_cclsp_readme_55d1074f62cc.png)](https:\u002F\u002Fmseep.ai\u002Fapp\u002Fktnyt-cclsp)\n\n# cclsp - not your average LSP adapter\n\n[![npm version](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fcclsp.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcclsp)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Node.js Version](https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002Fcclsp.svg)](https:\u002F\u002Fnodejs.org)\n[![CI](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Factions\u002Fworkflows\u002Fci.yml)\n[![npm downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fcclsp.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcclsp)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n**cclsp** is a Model Context Protocol (MCP) server that seamlessly integrates LLM-based coding agents with Language Server Protocol (LSP) servers. LLM-based coding agents often struggle with providing accurate line\u002Fcolumn numbers, which makes naive attempts to integrate with LSP servers fragile and frustrating. cclsp solves this by intelligently trying multiple position combinations and providing robust symbol resolution that just works, no matter how your AI assistant counts lines.\n\n## Setup & Usage Demo\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F52980f32-64d6-4b78-9cbf-18d6ae120cdd\n\n## Table of Contents\n\n- [Why cclsp?](#why-cclsp)\n- [Features](#features)\n- [📋 Prerequisites](#-prerequisites)\n- [⚡ Setup](#-setup)\n  - [Automated Setup (Recommended)](#automated-setup-recommended)\n  - [Claude Code Quick Setup](#claude-code-quick-setup)\n  - [Manual Setup](#manual-setup)\n  - [Language Server Installation](#language-server-installation)\n  - [Verification](#verification)\n- [🚀 Usage](#-usage)\n  - [As MCP Server](#as-mcp-server)\n  - [Configuration](#configuration)\n- [🛠️ Development](#️-development)\n- [🔧 MCP Tools](#-mcp-tools)\n  - [`find_definition`](#find_definition)\n  - [`find_references`](#find_references)\n  - [`rename_symbol`](#rename_symbol)\n  - [`rename_symbol_strict`](#rename_symbol_strict)\n  - [`get_diagnostics`](#get_diagnostics)\n  - [`restart_server`](#restart_server)\n- [💡 Real-world Examples](#-real-world-examples)\n  - [Finding Function Definitions](#finding-function-definitions)\n  - [Finding All References](#finding-all-references)\n  - [Renaming Symbols](#renaming-symbols)\n- [🔍 Troubleshooting](#-troubleshooting)\n- [🤝 Contributing](#-contributing)\n- [📄 License](#-license)\n\n## Why cclsp?\n\nWhen using AI-powered coding assistants like Claude, you often need to navigate codebases to understand symbol relationships. **cclsp** bridges the gap between Language Server Protocol capabilities and Model Context Protocol, enabling:\n\n- 🔍 **Instant symbol navigation** - Jump to definitions without manually searching\n- 📚 **Complete reference finding** - Find all usages of functions, variables, and types\n- ✏️ **Safe symbol renaming** - Rename across entire codebases with confidence\n- 🌍 **Universal language support** - Works with any LSP-compatible language server\n- 🤖 **AI-friendly interface** - Designed for LLMs to understand and use effectively\n\n## Features\n\n- **Go to Definition**: Find where symbols are defined\n- **Find References**: Locate all references to a symbol\n- **Multi-language Support**: Configurable LSP servers for different file types\n- **TypeScript**: Built-in support via typescript-language-server\n- **Python**: Support via python-lsp-server (pylsp)\n- **Go**: Support via gopls\n- **And many more**: Extensive language server configurations\n\n## 📋 Prerequisites\n\n- Node.js 18+ or Bun runtime\n- Language servers for your target languages (installed separately)\n\n## ⚡ Setup\n\ncclsp provides an interactive setup wizard that automates the entire configuration process. Choose your preferred method:\n\n### Automated Setup (Recommended)\n\nRun the interactive setup wizard:\n\n```bash\n# One-time setup (no installation required)\nnpx cclsp@latest setup\n\n# For user-wide configuration\nnpx cclsp@latest setup --user\n```\n\nThe setup wizard will:\n\n1. **🔍 Auto-detect languages** in your project by scanning files\n2. **📋 Show pre-selected LSP servers** based on detected languages\n3. **📦 Display installation requirements** with detailed guides\n4. **⚡ Install LSPs automatically** (optional, with user confirmation)\n5. **🔗 Add to Claude MCP** (optional, with user confirmation)\n6. **✅ Verify setup** and show available tools\n\n#### Setup Options\n\n- **Project Configuration** (default): Creates `.claude\u002Fcclsp.json` in current directory\n- **User Configuration** (`--user`): Creates global config in `~\u002F.config\u002Fclaude\u002Fcclsp.json`\n\n### Manual Setup\n\nIf you prefer manual configuration:\n\n1. **Install cclsp**:\n\n   ```bash\n   npm install -g cclsp\n   ```\n\n2. **Install language servers** (see [Language Server Installation](#language-server-installation))\n\n3. **Create configuration file**:\n\n   ```bash\n   # Use the interactive generator\n   cclsp setup\n\n   # Or create manually (see Configuration section)\n   ```\n\n4. **Add to Claude MCP**:\n   ```bash\n   claude mcp add cclsp npx cclsp@latest --env CCLSP_CONFIG_PATH=\u002Fpath\u002Fto\u002Fcclsp.json\n   ```\n\n### Language Server Installation\n\nThe setup wizard shows installation commands for each LSP, but you can also install them manually:\n\n\u003Cdetails>\n\u003Csummary>📦 Common Language Servers\u003C\u002Fsummary>\n\n#### TypeScript\u002FJavaScript\n\n```bash\nnpm install -g typescript-language-server typescript\n```\n\n#### Python\n\n```bash\npip install \"python-lsp-server[all]\"\n# Or basic installation: pip install python-lsp-server\n```\n\n#### Go\n\n```bash\ngo install golang.org\u002Fx\u002Ftools\u002Fgopls@latest\n```\n\n#### Rust\n\n```bash\nrustup component add rust-analyzer\nrustup component add rust-src\n```\n\n#### C\u002FC++\n\n```bash\n# Ubuntu\u002FDebian\nsudo apt install clangd\n\n# macOS\nbrew install llvm\n\n# Windows: Download from LLVM releases\n```\n\n#### Ruby\n\n```bash\ngem install solargraph\n```\n\n#### PHP\n\n```bash\nnpm install -g intelephense\n```\n\nFor more languages and detailed instructions, run `npx cclsp@latest setup` and select \"Show detailed installation guides\".\n\n\u003C\u002Fdetails>\n\n## 🚀 Usage\n\n### As MCP Server\n\nConfigure in your MCP client (e.g., Claude Code):\n\n#### Using npm package (after global install)\n\n```json\n{\n  \"mcpServers\": {\n    \"cclsp\": {\n      \"command\": \"cclsp\",\n      \"env\": {\n        \"CCLSP_CONFIG_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json\"\n      }\n    }\n  }\n}\n```\n\n#### Using local installation\n\n```json\n{\n  \"mcpServers\": {\n    \"cclsp\": {\n      \"command\": \"node\",\n      \"args\": [\"\u002Fpath\u002Fto\u002Fcclsp\u002Fdist\u002Findex.js\"],\n      \"env\": {\n        \"CCLSP_CONFIG_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json\"\n      }\n    }\n  }\n}\n```\n\n### Configuration\n\n#### Interactive Configuration Generator\n\nFor easy setup, use the interactive configuration generator:\n\n```bash\n# Using npx (recommended for one-time setup)\nnpx cclsp@latest setup\n\n# If installed globally\ncclsp setup\n\n# Or run directly with the development version\nbun run setup\n```\n\nThe interactive tool will:\n\n- Show you all available language servers\n- Let you select which ones to configure with intuitive controls:\n  - **Navigation**: ↑\u002F↓ arrow keys or Ctrl+P\u002FCtrl+N (Emacs-style)\n  - **Selection**: Space to toggle, A to toggle all, I to invert selection\n  - **Confirm**: Enter to proceed\n- Display installation instructions for your selected languages\n- Generate the configuration file automatically\n- Show you the final configuration\n\n#### Manual Configuration\n\nAlternatively, create an `cclsp.json` configuration file manually:\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"py\", \"pyi\"],\n      \"command\": [\"uvx\", \"--from\", \"python-lsp-server\", \"pylsp\"],\n      \"rootDir\": \".\",\n      \"initializationOptions\": {\n        \"settings\": {\n          \"pylsp\": {\n            \"plugins\": {\n              \"jedi_completion\": { \"enabled\": true },\n              \"jedi_definition\": { \"enabled\": true },\n              \"jedi_hover\": { \"enabled\": true },\n              \"jedi_references\": { \"enabled\": true },\n              \"jedi_signature_help\": { \"enabled\": true },\n              \"jedi_symbols\": { \"enabled\": true },\n              \"pylint\": { \"enabled\": false },\n              \"pycodestyle\": { \"enabled\": false },\n              \"pyflakes\": { \"enabled\": false }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"extensions\": [\"js\", \"ts\", \"jsx\", \"tsx\"],\n      \"command\": [\"npx\", \"--\", \"typescript-language-server\", \"--stdio\"],\n      \"rootDir\": \".\"\n    }\n  ]\n}\n```\n\n**Configuration Options:**\n\n- `extensions`: Array of file extensions this server handles\n- `command`: Command array to spawn the LSP server\n- `rootDir`: Working directory for the LSP server (optional, defaults to \".\")\n- `restartInterval`: Auto-restart interval in minutes (optional)\n- `initializationOptions`: LSP server initialization options (optional)\n\nThe `initializationOptions` field allows you to customize how each LSP server initializes. This is particularly useful for servers like `pylsp` (Python) that have extensive plugin configurations, or servers like `devsense-php-ls` that require specific settings.\n\n\u003Cdetails>\n\u003Csummary>📋 More Language Server Examples\u003C\u002Fsummary>\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"go\"],\n      \"command\": [\"gopls\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"rs\"],\n      \"command\": [\"rust-analyzer\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"c\", \"cpp\", \"cc\", \"h\", \"hpp\"],\n      \"command\": [\"clangd\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"java\"],\n      \"command\": [\"jdtls\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"rb\"],\n      \"command\": [\"solargraph\", \"stdio\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"php\"],\n      \"command\": [\"intelephense\", \"--stdio\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"cs\"],\n      \"command\": [\"omnisharp\", \"-lsp\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"swift\"],\n      \"command\": [\"sourcekit-lsp\"],\n      \"rootDir\": \".\"\n    }\n  ]\n}\n```\n\n\u003C\u002Fdetails>\n\n## 🛠️ Development\n\n```bash\n# Run in development mode\nbun run dev\n\n# Run tests\nbun test\n\n# Run manual integration test\nbun run test:manual\n\n# Lint code\nbun run lint\n\n# Format code\nbun run format\n\n# Type check\nbun run typecheck\n```\n\n## 🔧 MCP Tools\n\nThe server exposes these MCP tools:\n\n### `find_definition`\n\nFind the definition of a symbol by name and kind in a file. Returns definitions for all matching symbols.\n\n**Parameters:**\n\n- `file_path`: The path to the file\n- `symbol_name`: The name of the symbol\n- `symbol_kind`: The kind of symbol (function, class, variable, method, etc.) (optional)\n\n### `find_references`\n\nFind all references to a symbol across the entire workspace. Returns references for all matching symbols.\n\n**Parameters:**\n\n- `file_path`: The path to the file where the symbol is defined\n- `symbol_name`: The name of the symbol\n- `symbol_kind`: The kind of symbol (function, class, variable, method, etc.) (optional)\n- `include_declaration`: Whether to include the declaration (optional, default: true)\n\n### `rename_symbol`\n\nRename a symbol by name and kind in a file. **This tool now applies the rename to all affected files by default.** If multiple symbols match, returns candidate positions and suggests using rename_symbol_strict.\n\n**Parameters:**\n\n- `file_path`: The path to the file\n- `symbol_name`: The name of the symbol\n- `symbol_kind`: The kind of symbol (function, class, variable, method, etc.) (optional)\n- `new_name`: The new name for the symbol\n- `dry_run`: If true, only preview the changes without applying them (optional, default: false)\n\n**Note:** When `dry_run` is false (default), the tool will:\n- Apply the rename to all affected files\n- Create backup files with `.bak` extension\n- Return the list of modified files\n\n### `rename_symbol_strict`\n\nRename a symbol at a specific position in a file. Use this when rename_symbol returns multiple candidates. **This tool now applies the rename to all affected files by default.**\n\n**Parameters:**\n\n- `file_path`: The path to the file\n- `line`: The line number (1-indexed)\n- `character`: The character position in the line (1-indexed)\n- `new_name`: The new name for the symbol\n- `dry_run`: If true, only preview the changes without applying them (optional, default: false)\n\n### `get_diagnostics`\n\nGet language diagnostics (errors, warnings, hints) for a file. Uses LSP textDocument\u002Fdiagnostic to pull current diagnostics.\n\n**Parameters:**\n- `file_path`: The path to the file to get diagnostics for\n\n### `restart_server`\n\nManually restart LSP servers. Can restart servers for specific file extensions or all running servers.\n\n**Parameters:**\n- `extensions`: Array of file extensions to restart servers for (e.g., [\"ts\", \"tsx\"]). If not provided, all servers will be restarted (optional)\n\n## 💡 Real-world Examples\n\n### Finding Function Definitions\n\nWhen Claude needs to understand how a function works:\n\n```\nClaude: Let me find the definition of the `processRequest` function\n> Using cclsp.find_definition with symbol_name=\"processRequest\", symbol_kind=\"function\"\n\nResult: Found definition at src\u002Fhandlers\u002Frequest.ts:127:1\n```\n\n### Finding All References\n\nWhen refactoring or understanding code impact:\n\n```\nClaude: I'll find all places where `CONFIG_PATH` is used\n> Using cclsp.find_references with symbol_name=\"CONFIG_PATH\"\n\nResults: Found 5 references:\n- src\u002Fconfig.ts:10:1 (declaration)\n- src\u002Findex.ts:45:15\n- src\u002Futils\u002Floader.ts:23:8\n- tests\u002Fconfig.test.ts:15:10\n- tests\u002Fconfig.test.ts:89:12\n```\n\n### Renaming Symbols\n\nSafe refactoring across the entire codebase (now with actual file modification!):\n\n```\nClaude: I'll rename `getUserData` to `fetchUserProfile`\n> Using cclsp.rename_symbol with symbol_name=\"getUserData\", new_name=\"fetchUserProfile\"\n\nResult: Successfully renamed getUserData (function) to \"fetchUserProfile\".\n\nModified files:\n- src\u002Fapi\u002Fuser.ts\n- src\u002Fservices\u002Fauth.ts\n- src\u002Fcomponents\u002FUserProfile.tsx\n... (12 files total)\n```\n\nPreview changes before applying (using dry_run):\n\n```\nClaude: Let me first preview what will be renamed\n> Using cclsp.rename_symbol with symbol_name=\"getUserData\", new_name=\"fetchUserProfile\", dry_run=true\n\nResult: [DRY RUN] Would rename getUserData (function) to \"fetchUserProfile\":\nFile: src\u002Fapi\u002Fuser.ts\n  - Line 55, Column 10 to Line 55, Column 21: \"fetchUserProfile\"\nFile: src\u002Fservices\u002Fauth.ts\n  - Line 123, Column 15 to Line 123, Column 26: \"fetchUserProfile\"\n... (12 files total)\n```\n\nWhen multiple symbols match:\n\n```\nClaude: I'll rename the `data` variable to `userData`\n> Using cclsp.rename_symbol with symbol_name=\"data\", new_name=\"userData\"\n\nResult: Multiple symbols found matching \"data\". Please use rename_symbol_strict with one of these positions:\n- data (variable) at line 45, character 10\n- data (parameter) at line 89, character 25\n- data (property) at line 112, character 5\n\n> Using cclsp.rename_symbol_strict with line=45, character=10, new_name=\"userData\"\n\nResult: Successfully renamed symbol at line 45, character 10 to \"userData\".\n\nModified files:\n- src\u002Futils\u002Fparser.ts\n```\n\n### Checking File Diagnostics\n\nWhen analyzing code quality:\n\n```\nClaude: Let me check for any errors or warnings in this file\n> Using cclsp.get_diagnostics\n\nResults: Found 3 diagnostics:\n- Error [TS2304]: Cannot find name 'undefinedVar' (Line 10, Column 5)\n- Warning [no-unused-vars]: 'config' is defined but never used (Line 25, Column 10)\n- Hint: Consider using const instead of let (Line 30, Column 1)\n```\n\n### Restarting LSP Servers\n\nWhen LSP servers become unresponsive or configuration changes:\n\n```\nClaude: The TypeScript server seems unresponsive, let me restart it\n> Using cclsp.restart_server with extensions [\"ts\", \"tsx\"]\n\nResult: Successfully restarted 1 LSP server(s)\nRestarted servers:\n• typescript-language-server --stdio (ts, tsx)\n```\n\nOr restart all servers:\n\n```\nClaude: I'll restart all LSP servers to ensure they're working properly\n> Using cclsp.restart_server\n\nResult: Successfully restarted 2 LSP server(s)\nRestarted servers:\n• typescript-language-server --stdio (ts, tsx)\n• pylsp (py)\n```\n\n## 🔍 Troubleshooting\n\n### Known Issues\n\n\u003Cdetails>\n\u003Csummary>🐍 Python LSP Server (pylsp) Performance Degradation\u003C\u002Fsummary>\n\n**Problem**: The Python Language Server (pylsp) may become slow or unresponsive after extended use (several hours), affecting symbol resolution and code navigation.\n\n**Symptoms**:\n- Slow or missing \"go to definition\" results for Python files\n- Delayed or incomplete symbol references\n- General responsiveness issues with Python code analysis\n\n**Solution**: Use the auto-restart feature to periodically restart the pylsp server:\n\nAdd `restartInterval` to your Python server configuration:\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"py\", \"pyi\"],\n      \"command\": [\"pylsp\"],\n      \"restartInterval\": 5\n    }\n  ]\n}\n```\n\nThis will automatically restart the Python LSP server every 5 minutes, maintaining optimal performance for long coding sessions.\n\n**Alternative**: You can also manually restart servers using the `restart_server` tool when needed:\n- Restart specific server: `restart_server` with `extensions: [\"py\"]`\n- Restart all servers: `restart_server` without parameters\n\n**Note**: The setup wizard automatically configures this for Python servers when detected.\n\n\u003C\u002Fdetails>\n\n### Common Issues\n\n\u003Cdetails>\n\u003Csummary>🔧 LSP server not starting\u003C\u002Fsummary>\n\n**Problem**: Error message about LSP server not found\n\n**Solution**: Ensure the language server is installed:\n\n```bash\n# For TypeScript\nnpm install -g typescript-language-server\n\n# For Python\npip install python-lsp-server\n\n# For Go\ngo install golang.org\u002Fx\u002Ftools\u002Fgopls@latest\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🔧 Configuration not loading\u003C\u002Fsummary>\n\n**Problem**: cclsp uses default TypeScript configuration only\n\n**Solution**: Check that:\n\n1. Your config file is named `cclsp.json` (not `cclsp.config.json`)\n2. The `CCLSP_CONFIG_PATH` environment variable points to the correct file\n3. The JSON syntax is valid\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🔧 Symbol not found errors\u003C\u002Fsummary>\n\n**Problem**: \"Go to definition\" returns no results\n\n**Solution**:\n\n1. Ensure the file is saved and part of the project\n2. Check that the language server supports the file type\n3. Some language servers need a few seconds to index the project\n\u003C\u002Fdetails>\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n### Reporting Issues\n\nFound a bug or have a feature request? [Open an issue](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues) with:\n\n- Clear description of the problem\n- Steps to reproduce\n- Expected vs actual behavior\n- Your environment (OS, Node version, etc.)\n\n### Adding Language Support\n\nWant to add support for a new language?\n\n1. Find the LSP server for your language\n2. Test the configuration locally\n3. Submit a PR with:\n   - Updated README examples\n   - Test files if possible\n   - Configuration documentation\n\n### Code Contributions\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature\u002Famazing-feature`\n3. Make your changes\n4. Run tests: `bun test`\n5. Commit: `git commit -m '✨ feat: add amazing feature'`\n6. Push: `git push origin feature\u002Famazing-feature`\n7. Open a Pull Request\n\n## 📄 License\n\nMIT\n","[![MseeP.ai 安全评估徽章](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fktnyt_cclsp_readme_55d1074f62cc.png)](https:\u002F\u002Fmseep.ai\u002Fapp\u002Fktnyt-cclsp)\n\n# cclsp - 不是普通的 LSP 适配器\n\n[![npm 版本](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fcclsp.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcclsp)\n[![许可证：MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Node.js 版本](https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002Fcclsp.svg)](https:\u002F\u002Fnodejs.org)\n[![CI](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Factions\u002Fworkflows\u002Fci.yml)\n[![npm 下载量](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fcclsp.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcclsp)\n[![欢迎 PR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n**cclsp** 是一个模型上下文协议（MCP）服务器，可将基于 LLM 的编码助手与语言服务器协议（LSP）服务器无缝集成。基于 LLM 的编码助手通常难以提供准确的行号和列号，这使得简单地尝试与 LSP 服务器集成变得脆弱且令人沮丧。cclsp 通过智能地尝试多种位置组合，并提供强大的符号解析功能来解决这一问题，无论你的 AI 助手如何计算行数，它都能正常工作。\n\n## 设置与使用演示\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F52980f32-64d6-4b78-9cbf-18d6ae120cdd\n\n## 目录\n\n- [为什么选择 cclsp？](#why-cclsp)\n- [特性](#features)\n- [📋 前置条件](#-prerequisites)\n- [⚡ 设置](#-setup)\n  - [自动设置（推荐）](#automated-setup-recommended)\n  - [Claude Code 快速设置](#claude-code-quick-setup)\n  - [手动设置](#manual-setup)\n  - [语言服务器安装](#language-server-installation)\n  - [验证](#verification)\n- [🚀 使用](#-usage)\n  - [作为 MCP 服务器](#as-mcp-server)\n  - [配置](#configuration)\n- [🛠️ 开发](#️-development)\n- [🔧 MCP 工具](#-mcp-tools)\n  - [`find_definition`](#find_definition)\n  - [`find_references`](#find_references)\n  - [`rename_symbol`](#rename_symbol)\n  - [`rename_symbol_strict`](#rename_symbol_strict)\n  - [`get_diagnostics`](#get_diagnostics)\n  - [`restart_server`](#restart_server)\n- [💡 现实世界示例](#-real-world-examples)\n  - [查找函数定义](#finding-function-definitions)\n  - [查找所有引用](#finding-all-references)\n  - [重命名符号](#renaming-symbols)\n- [🔍 故障排除](#-troubleshooting)\n- [🤝 贡献](#-contributing)\n- [📄 许可证](#-license)\n\n## 为什么选择 cclsp？\n\n在使用像 Claude 这样的 AI 驱动的编码助手时，你经常需要浏览代码库以理解符号之间的关系。**cclsp** 弥合了语言服务器协议功能与模型上下文协议之间的鸿沟，从而实现：\n\n- 🔍 **即时符号导航** - 无需手动搜索即可跳转到定义处\n- 📚 **完整引用查找** - 查找函数、变量和类型的全部用法\n- ✏️ **安全的符号重命名** - 可以放心地在整个代码库中重命名符号\n- 🌍 **通用语言支持** - 适用于任何兼容 LSP 的语言服务器\n- 🤖 **AI 友好的接口** - 专为 LLM 设计，便于理解和有效使用\n\n## 特性\n\n- **转到定义**：查找符号的定义位置\n- **查找引用**：定位符号的所有引用\n- **多语言支持**：可配置不同文件类型的 LSP 服务器\n- **TypeScript**：通过 typescript-language-server 内置支持\n- **Python**：通过 python-lsp-server (pylsp) 支持\n- **Go**：通过 gopls 支持\n- **以及更多**：丰富的语言服务器配置\n\n## 📋 前置条件\n\n- Node.js 18+ 或 Bun 运行时\n- 针对目标语言的语言服务器（需单独安装）\n\n## ⚡ 设置\n\ncclsp 提供了一个交互式设置向导，可自动完成整个配置过程。请选择您偏好的方法：\n\n### 自动设置（推荐）\n\n运行交互式设置向导：\n\n```bash\n# 一次性设置（无需安装）\nnpx cclsp@latest setup\n\n# 对于用户范围的配置\nnpx cclsp@latest setup --user\n```\n\n设置向导将执行以下操作：\n\n1. **🔍 自动检测项目中的语言**，通过扫描文件进行识别\n2. **📋 根据检测到的语言显示预选的 LSP 服务器**\n3. **📦 显示安装要求及详细指南**\n4. **⚡ 自动安装 LSP**（可选，需用户确认）\n5. **🔗 添加到 Claude MCP**（可选，需用户确认）\n6. **✅ 验证设置并显示可用工具**\n\n#### 设置选项\n\n- **项目配置**（默认）：在当前目录下创建 `.claude\u002Fcclsp.json`\n- **用户配置** (`--user`)：在 `~\u002F.config\u002Fclaude\u002Fcclsp.json` 中创建全局配置\n\n### 手动设置\n\n如果您更倾向于手动配置：\n\n1. **安装 cclsp**：\n\n   ```bash\n   npm install -g cclsp\n   ```\n\n2. **安装语言服务器**（请参阅 [语言服务器安装](#language-server-installation)）\n\n3. **创建配置文件**：\n\n   ```bash\n   # 使用交互式生成器\n   cclsp setup\n\n   # 或者手动创建（请参阅“配置”部分）\n   ```\n\n4. **添加到 Claude MCP**：\n   ```bash\n   claude mcp add cclsp npx cclsp@latest --env CCLSP_CONFIG_PATH=\u002Fpath\u002Fto\u002Fcclsp.json\n   ```\n\n### 液体服务器安装\n\n设置向导会显示每个 LSP 的安装命令，但您也可以手动安装：\n\n\u003Cdetails>\n\u003Csummary>📦 常见语言服务器\u003C\u002Fsummary>\n\n#### TypeScript\u002FJavaScript\n\n```bash\nnpm install -g typescript-language-server typescript\n```\n\n#### Python\n\n```bash\npip install \"python-lsp-server[all]\"\n# 或基本安装：pip install python-lsp-server\n```\n\n#### Go\n\n```bash\ngo install golang.org\u002Fx\u002Ftools\u002Fgopls@latest\n```\n\n#### Rust\n\n```bash\nrustup component add rust-analyzer\nrustup component add rust-src\n```\n\n#### C\u002FC++\n\n```bash\n# Ubuntu\u002FDebian\nsudo apt install clangd\n\n# macOS\nbrew install llvm\n\n# Windows：从 LLVM 发布版下载\n```\n\n#### Ruby\n\n```bash\ngem install solargraph\n```\n\n#### PHP\n\n```bash\nnpm install -g intelephense\n```\n\n如需了解更多语言及详细说明，请运行 `npx cclsp@latest setup` 并选择“显示详细安装指南”。\n\n\u003C\u002Fdetails>\n\n## 🚀 使用\n\n### 作为 MCP 服务器\n\n在您的 MCP 客户端（例如 Claude Code）中进行配置：\n\n#### 使用 npm 包（全局安装后）\n\n```json\n{\n  \"mcpServers\": {\n    \"cclsp\": {\n      \"command\": \"cclsp\",\n      \"env\": {\n        \"CCLSP_CONFIG_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json\"\n      }\n    }\n  }\n}\n```\n\n#### 使用本地安装\n\n```json\n{\n  \"mcpServers\": {\n    \"cclsp\": {\n      \"command\": \"node\",\n      \"args\": [\"\u002Fpath\u002Fto\u002Fcclsp\u002Fdist\u002Findex.js\"],\n      \"env\": {\n        \"CCLSP_CONFIG_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json\"\n      }\n    }\n  }\n}\n```\n\n### 配置\n\n#### 交互式配置生成器\n\n为了方便设置，可以使用交互式配置生成器：\n\n```bash\n# 使用 npx（推荐用于一次性设置）\nnpx cclsp@latest setup\n\n# 如果已全局安装\ncclsp setup\n\n# 或者直接使用开发版本运行\nbun run setup\n```\n\n交互式工具将：\n\n- 显示所有可用的语言服务器\n- 让您通过直观的控件选择要配置的服务器：\n  - **导航**：使用 ↑\u002F↓ 箭头键或 Ctrl+P\u002FCtrl+N（Emacs 风格）\n  - **选择**：按空格键切换，A 键全选\u002F取消全选，I 键反选\n  - **确认**：按 Enter 键继续\n- 展示所选语言的安装说明\n- 自动生成配置文件\n- 向您展示最终的配置\n\n#### 手动配置\n\n或者，您可以手动创建一个 `cclsp.json` 配置文件：\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"py\", \"pyi\"],\n      \"command\": [\"uvx\", \"--from\", \"python-lsp-server\", \"pylsp\"],\n      \"rootDir\": \".\",\n      \"initializationOptions\": {\n        \"settings\": {\n          \"pylsp\": {\n            \"plugins\": {\n              \"jedi_completion\": { \"enabled\": true },\n              \"jedi_definition\": { \"enabled\": true },\n              \"jedi_hover\": { \"enabled\": true },\n              \"jedi_references\": { \"enabled\": true },\n              \"jedi_signature_help\": { \"enabled\": true },\n              \"jedi_symbols\": { \"enabled\": true },\n              \"pylint\": { \"enabled\": false },\n              \"pycodestyle\": { \"enabled\": false },\n              \"pyflakes\": { \"enabled\": false }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"extensions\": [\"js\", \"ts\", \"jsx\", \"tsx\"],\n      \"command\": [\"npx\", \"--\", \"typescript-language-server\", \"--stdio\"],\n      \"rootDir\": \".\"\n    }\n  ]\n}\n```\n\n**配置选项：**\n\n- `extensions`：该服务器处理的文件扩展名数组\n- `command`：用于启动 LSP 服务器的命令数组\n- `rootDir`：LSP 服务器的工作目录（可选，默认为“.”）\n- `restartInterval`：自动重启间隔（以分钟为单位，可选）\n- `initializationOptions`：LSP 服务器的初始化选项（可选）\n\n`initializationOptions` 字段允许您自定义每个 LSP 服务器的初始化方式。这对于像 `pylsp`（Python）这样具有丰富插件配置的服务器，或像 `devsense-php-ls` 这样需要特定设置的服务器来说特别有用。\n\n\u003Cdetails>\n\u003Csummary>📋 更多语言服务器示例\u003C\u002Fsummary>\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"go\"],\n      \"command\": [\"gopls\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"rs\"],\n      \"command\": [\"rust-analyzer\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"c\", \"cpp\", \"cc\", \"h\", \"hpp\"],\n      \"command\": [\"clangd\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"java\"],\n      \"command\": [\"jdtls\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"rb\"],\n      \"command\": [\"solargraph\", \"stdio\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"php\"],\n      \"command\": [\"intelephense\", \"--stdio\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"cs\"],\n      \"command\": [\"omnisharp\", \"-lsp\"],\n      \"rootDir\": \".\"\n    },\n    {\n      \"extensions\": [\"swift\"],\n      \"command\": [\"sourcekit-lsp\"],\n      \"rootDir\": \".\"\n    }\n  ]\n}\n```\n\n\u003C\u002Fdetails>\n\n## 🛠️ 开发\n\n```bash\n# 以开发模式运行\nbun run dev\n\n# 运行测试\nbun test\n\n# 运行手动集成测试\nbun run test:manual\n\n# 检查代码风格\nbun run lint\n\n# 格式化代码\nbun run format\n\n# 类型检查\nbun run typecheck\n```\n\n## 🔧 MCP 工具\n\n该服务器公开了以下 MCP 工具：\n\n### `find_definition`\n\n根据文件中的名称和符号类型查找符号的定义。返回所有匹配符号的定义。\n\n**参数：**\n\n- `file_path`：文件路径\n- `symbol_name`：符号名称\n- `symbol_kind`：符号类型（函数、类、变量、方法等）（可选）\n\n### `find_references`\n\n在整个工作区中查找符号的所有引用。返回所有匹配符号的引用。\n\n**参数：**\n\n- `file_path`：定义符号的文件路径\n- `symbol_name`：符号名称\n- `symbol_kind`：符号类型（函数、类、变量、方法等）（可选）\n- `include_declaration`：是否包含声明（可选，默认为 true）\n\n### `rename_symbol`\n\n根据文件中的名称和符号类型重命名符号。**此工具现在默认会将重命名应用到所有受影响的文件。** 如果有多个匹配的符号，则会返回候选位置，并建议使用 `rename_symbol_strict`。\n\n**参数：**\n\n- `file_path`：文件路径\n- `symbol_name`：符号名称\n- `symbol_kind`：符号类型（函数、类、变量、方法等）（可选）\n- `new_name`：新名称\n- `dry_run`：如果为真，则仅预览更改而不应用（可选，默认为假）\n\n**注意：** 当 `dry_run` 为假时（默认），该工具会：\n- 将重命名应用到所有受影响的文件\n- 创建带有 `.bak` 扩展名的备份文件\n- 返回已修改文件的列表。\n\n### `rename_symbol_strict`\n\n在文件中的特定位置重命名符号。当 `rename_symbol` 返回多个候选位置时，请使用此工具。**此工具现在默认会将重命名应用到所有受影响的文件。**\n\n**参数：**\n\n- `file_path`：文件路径\n- `line`：行号（从 1 开始计数）\n- `character`：该行中的字符位置（从 1 开始计数）\n- `new_name`：新名称\n- `dry_run`：如果为真，则仅预览更改而不应用（可选，默认为假）\n\n### `get_diagnostics`\n\n获取文件的语言诊断信息（错误、警告、提示）。使用 LSP 的 textDocument\u002Fdiagnostic 方法来获取当前的诊断信息。\n\n**参数：**\n- `file_path`：要获取诊断信息的文件路径\n\n### `restart_server`\n\n手动重启 LSP 服务器。可以针对特定文件扩展名重启服务器，也可以重启所有正在运行的服务器。\n\n**参数：**\n- `extensions`：要重启服务器的文件扩展名数组（例如，[\"ts\", \"tsx\"]）。如果未提供，则会重启所有服务器（可选）\n\n## 💡 实际案例\n\n### 查找函数定义\n\n当 Claude 需要理解某个函数的工作原理时：\n\n```\nClaude：让我找到 `processRequest` 函数的定义吧。\n> 使用 cclsp.find_definition，设置 symbol_name=\"processRequest\"，symbol_kind=\"function\"\n\n结果：在 src\u002Fhandlers\u002Frequest.ts 的第 127 行第 1 列找到了定义。\n```\n\n### 查找所有引用\n\n在重构代码或了解代码影响时：\n\n```\nClaude：我要找出所有使用 `CONFIG_PATH` 的地方。\n> 使用 cclsp.find_references，设置 symbol_name=\"CONFIG_PATH\"\n\n结果：找到了 5 处引用：\n- src\u002Fconfig.ts 的第 10 行第 1 列（声明）\n- src\u002Findex.ts 的第 45 行第 15 列\n- src\u002Futils\u002Floader.ts 的第 23 行第 8 列\n- tests\u002Fconfig.test.ts 的第 15 行第 10 列\n- tests\u002Fconfig.test.ts 的第 89 行第 12 列\n```\n\n### 重命名符号\n\n在整个代码库中安全地重构（现在会实际修改文件！）：\n\n```\nClaude：我要把 `getUserData` 重命名为 `fetchUserProfile`\n> 使用 cclsp.rename_symbol，参数为 symbol_name=\"getUserData\", new_name=\"fetchUserProfile\"\n\n结果：成功将 getUserData（函数）重命名为 \"fetchUserProfile\"。\n\n修改的文件：\n- src\u002Fapi\u002Fuser.ts\n- src\u002Fservices\u002Fauth.ts\n- src\u002Fcomponents\u002FUserProfile.tsx\n... （共12个文件）\n```\n\n在应用更改之前预览更改（使用 dry_run）：\n\n```\nClaude：我先预览一下哪些地方会被重命名\n> 使用 cclsp.rename_symbol，参数为 symbol_name=\"getUserData\", new_name=\"fetchUserProfile\", dry_run=true\n\n结果：[模拟运行] 将会把 getUserData（函数）重命名为 \"fetchUserProfile\"：\n文件：src\u002Fapi\u002Fuser.ts\n  - 第55行第10列至第55行第21列：“fetchUserProfile”\n文件：src\u002Fservices\u002Fauth.ts\n  - 第123行第15列至第123行第26列：“fetchUserProfile”\n... （共12个文件）\n```\n\n当有多个符号匹配时：\n\n```\nClaude：我要把 `data` 变量重命名为 `userData`\n> 使用 cclsp.rename_symbol，参数为 symbol_name=\"data\", new_name=\"userData\"\n\n结果：找到多个与 \"data\" 匹配的符号。请使用 rename_symbol_strict 并指定以下位置之一：\n- data（变量）位于第45行第10列\n- data（参数）位于第89行第25列\n- data（属性）位于第112行第5列\n\n> 使用 cclsp.rename_symbol_strict，参数为 line=45, character=10, new_name=\"userData\"\n\n结果：成功将第45行第10列处的符号重命名为 \"userData\"。\n\n修改的文件：\n- src\u002Futils\u002Fparser.ts\n```\n\n### 检查文件诊断信息\n\n在分析代码质量时：\n\n```\nClaude：让我检查一下这个文件有没有错误或警告\n> 使用 cclsp.get_diagnostics\n\n结果：发现3条诊断信息：\n- 错误 [TS2304]：无法找到名称 'undefinedVar'（第10行第5列）\n- 警告 [no-unused-vars]：'config' 已定义但从未使用过（第25行第10列）\n- 提示：建议使用 const 而不是 let（第30行第1列）\n```\n\n### 重启 LSP 服务器\n\n当 LSP 服务器无响应或配置发生更改时：\n\n```\nClaude：TypeScript 服务器似乎没有响应，我来重启它吧\n> 使用 cclsp.restart_server，参数为 extensions [\"ts\", \"tsx\"]\n\n结果：成功重启了1个 LSP 服务器\n重启的服务器：\n• typescript-language-server --stdio (ts, tsx)\n```\n\n或者重启所有服务器：\n\n```\nClaude：我要重启所有的 LSP 服务器，以确保它们正常工作\n> 使用 cclsp.restart_server\n\n结果：成功重启了2个 LSP 服务器\n重启的服务器：\n• typescript-language-server --stdio (ts, tsx)\n• pylsp (py)\n```\n\n## 🔍 故障排除\n\n### 已知问题\n\n\u003Cdetails>\n\u003Csummary>🐍 Python LSP 服务器（pylsp）性能下降\u003C\u002Fsummary>\n\n**问题**：Python 语言服务器（pylsp）在长时间使用后（数小时）可能会变得缓慢或无响应，影响符号解析和代码导航。\n\n**症状**：\n- 对于 Python 文件，“跳转到定义”的结果很慢或根本找不到\n- 符号引用延迟或不完整\n- Python 代码分析的整体响应速度变慢\n\n**解决方案**：使用自动重启功能，定期重启 pylsp 服务器：\n\n在 Python 服务器配置中添加 `restartInterval`：\n\n```json\n{\n  \"servers\": [\n    {\n      \"extensions\": [\"py\", \"pyi\"],\n      \"command\": [\"pylsp\"],\n      \"restartInterval\": 5\n    }\n  ]\n}\n```\n\n这将每5分钟自动重启一次 Python LSP 服务器，从而在长时间编码过程中保持最佳性能。\n\n**替代方案**：您也可以在需要时手动使用 `restart_server` 工具重启服务器：\n- 重启特定服务器：`restart_server` 并指定 `extensions: [\"py\"]`\n- 重启所有服务器：`restart_server` 不带参数\n\n**注意**：设置向导会在检测到 Python 服务器时自动进行此配置。\n\u003C\u002Fdetails>\n\n### 常见问题\n\n\u003Cdetails>\n\u003Csummary>🔧 LSP 服务器无法启动\u003C\u002Fsummary>\n\n**问题**：出现 LSP 服务器未找到的错误信息\n\n**解决方案**：确保已安装相应的语言服务器：\n\n```bash\n# 对于 TypeScript\nnpm install -g typescript-language-server\n\n# 对于 Python\npip install python-lsp-server\n\n# 对于 Go\ngo install golang.org\u002Fx\u002Ftools\u002Fgopls@latest\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🔧 配置未加载\u003C\u002Fsummary>\n\n**问题**：cclsp 仅使用默认的 TypeScript 配置\n\n**解决方案**：请检查：\n\n1. 您的配置文件是否命名为 `cclsp.json`（而不是 `cclsp.config.json`）\n2. 环境变量 `CCLSP_CONFIG_PATH` 是否指向正确的文件\n3. JSON 语法是否正确\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🔧 找不到符号的错误\u003C\u002Fsummary>\n\n**问题**：“跳转到定义”没有任何结果\n\n**解决方案**：\n\n1. 确保文件已保存并且属于项目\n2. 检查语言服务器是否支持该文件类型\n3. 有些语言服务器需要几秒钟来索引项目\n\u003C\u002Fdetails>\n\n## 🤝 贡献\n\n我们欢迎您的贡献！以下是您可以帮助的方式：\n\n### 报告问题\n\n发现 bug 或有功能需求？请在 [GitHub](https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues) 上提交一个问题，内容包括：\n- 清晰的问题描述\n- 复现步骤\n- 预期行为与实际行为的对比\n- 您的环境信息（操作系统、Node.js 版本等）\n\n### 添加语言支持\n\n想为新语言添加支持吗？\n\n1. 找到您所需语言的 LSP 服务器\n2. 在本地测试配置\n3. 提交一个 PR，包含：\n   - 更新后的 README 示例\n   - 如果可能，提供测试文件\n   - 配置文档\n\u003C\u002Fdetails>\n\n### 代码贡献\n\n1. 分支仓库\n2. 创建特性分支：`git checkout -b feature\u002Famazing-feature`\n3. 进行更改\n4. 运行测试：`bun test`\n5. 提交：`git commit -m '✨ feat: add amazing feature'`\n6. 推送：`git push origin feature\u002Famazing-feature`\n7. 打开一个拉取请求\n\u003C\u002Fdetails>\n\n## 📄 许可证\n\nMIT","# cclsp 快速上手指南\n\n**cclsp** 是一个模型上下文协议（MCP）服务器，旨在将基于大语言模型（LLM）的编程助手（如 Claude）与语言服务器协议（LSP）无缝集成。它解决了 AI 在提供准确的行\u002F列号时容易出错的问题，通过智能尝试多种位置组合，实现稳健的代码符号解析、跳转定义、查找引用和安全重命名。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **运行时环境**：Node.js 18+ 或 Bun。\n*   **语言服务器**：您需要为目标编程语言安装对应的 LSP 服务器（例如 TypeScript 需要 `typescript-language-server`，Python 需要 `python-lsp-server` 等）。cclsp 本身不包含这些服务器，需单独安装。\n*   **MCP 客户端**：已配置好 MCP 功能的 AI 编程助手（如 Claude Code）。\n\n## 安装步骤\n\n推荐使用交互式设置向导，它可以自动检测项目语言、安装必要的 LSP 服务器并生成配置文件。\n\n### 1. 运行交互式设置向导\n\n无需全局安装，直接使用 `npx` 运行最新版本的设置向导：\n\n```bash\n# 针对当前项目创建配置 (.claude\u002Fcclsp.json)\nnpx cclsp@latest setup\n\n# 或者创建全局用户配置 (~\u002F.config\u002Fclaude\u002Fcclsp.json)\nnpx cclsp@latest setup --user\n```\n\n**向导将自动执行以下操作：**\n1.  扫描项目文件，自动检测使用的编程语言。\n2.  预选对应的 LSP 服务器。\n3.  显示安装指南，并询问是否自动安装缺失的 LSP 服务器。\n4.  询问是否将配置添加到 Claude MCP 中。\n5.  验证设置并展示可用的工具。\n\n### 2. 手动安装语言服务器（可选）\n\n如果向导未自动安装，或您偏好手动管理，可根据需要安装常见的语言服务器：\n\n```bash\n# TypeScript\u002FJavaScript\nnpm install -g typescript-language-server typescript\n\n# Python\npip install \"python-lsp-server[all]\"\n\n# Go\ngo install golang.org\u002Fx\u002Ftools\u002Fgopls@latest\n\n# Rust\nrustup component add rust-analyzer\n\n# C\u002FC++ (Ubuntu\u002FDebian)\nsudo apt install clangd\n```\n\n### 3. 配置 MCP 客户端\n\n如果您使用交互式向导并确认了添加选项，配置会自动完成。若需手动配置，请在您的 MCP 配置文件（如 `claude_desktop_config.json` 或项目级配置）中添加以下内容：\n\n```json\n{\n  \"mcpServers\": {\n    \"cclsp\": {\n      \"command\": \"npx\",\n      \"args\": [\"cclsp@latest\"],\n      \"env\": {\n        \"CCLSP_CONFIG_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json\" \n      }\n    }\n  }\n}\n```\n*注意：请将 `\u002Fpath\u002Fto\u002Fyour\u002Fcclsp.json` 替换为实际生成的配置文件路径。如果是全局配置，通常位于 `~\u002F.config\u002Fclaude\u002Fcclsp.json`。*\n\n## 基本使用\n\n配置完成后，重启您的 AI 编程助手。cclsp 会自动加载，您可以在对话中直接使用自然语言指令调用其功能，无需记忆复杂的命令。\n\n### 使用示例\n\n在支持 MCP 的聊天窗口中，您可以尝试以下指令：\n\n**1. 跳转定义 (Find Definition)**\n> “帮我找到 `calculateTotal` 函数的定义在哪里。”\n> *底层调用工具：`find_definition`*\n\n**2. 查找所有引用 (Find References)**\n> “列出项目中所有使用 `UserService` 类的地方。”\n> *底层调用工具：`find_references`*\n\n**3. 安全重命名 (Rename Symbol)**\n> “把 `oldVariableName` 重命名为 `newVariableName`，并应用到所有相关文件。”\n> *底层调用工具：`rename_symbol`*\n> *注：默认情况下会修改所有受影响的文件并创建 `.bak` 备份文件。*\n\n**4. 获取诊断信息 (Get Diagnostics)**\n> “检查当前文件有什么错误或警告？”\n> *底层调用工具：`get_diagnostics`*\n\ncclsp 会自动处理文件路径和符号位置的复杂性，即使 AI 对行号的计算有细微偏差，它也能通过智能匹配准确定位代码符号。","某后端工程师正利用 Claude Code 重构一个遗留的 TypeScript 微服务项目，需要精准定位函数定义并安全地重命名核心变量。\n\n### 没有 cclsp 时\n- **定位失败率高**：AI 助手常因行号计算偏差（如忽略空行或缩进差异），导致“跳转到定义”请求指向错误位置或直接报错。\n- **人工二次验证繁琐**：开发者必须手动打断 AI 的执行流，亲自打开文件核对代码位置，严重拖慢重构节奏。\n- **重命名风险大**：在缺乏精准符号解析的情况下，AI 进行的批量重命名容易遗漏引用点或误改字符串内容，引发潜在 Bug。\n- **上下文理解割裂**：由于无法可靠获取完整的引用列表，AI 难以全面评估修改影响范围，只能基于局部代码片段“猜”逻辑。\n\n### 使用 cclsp 后\n- **导航零误差**：cclsp 智能尝试多种位置组合，自动纠正 AI 的行号计数偏差，确保每次“查找定义”都能精准直达源代码。\n- **流程无缝衔接**：开发者无需再人工介入校验，AI 可独立、连续地完成从分析到修改的全链路操作，效率显著提升。\n- **重构更安全**：借助 cclsp 提供的稳健符号解析能力，AI 能识别项目中所有相关引用，实现跨文件的安全重命名，杜绝遗漏。\n- **全局视野增强**：通过 `find_references` 工具，AI 能瞬间掌握变量的所有使用场景，从而做出更符合整体架构的决策。\n\ncclsp 通过弥合 AI 计数缺陷与标准语言服务之间的鸿沟，让代码重构从“冒险猜测”变成了“精准手术”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fktnyt_cclsp_d8b4d40b.png","ktnyt","Mirei Itaya","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fktnyt_3ebe03eb.jpg","Yet another web centric developer that writes pretty much anything.","LAPRAS inc.","Osaka",null,"_ktnyt","https:\u002F\u002Fcharaxiv.app","https:\u002F\u002Fgithub.com\u002Fktnyt",[83,87,91],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",91.1,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",8.7,{"name":92,"color":93,"percentage":94},"Shell","#89e051",0.1,607,45,"2026-04-07T05:31:54","MIT","Linux, macOS, Windows","无 GPU 需求","未说明",{"notes":103,"python":104,"dependencies":105},"该工具是基于 Node.js 或 Bun 运行的 MCP 服务器，用于连接 LLM 编码助手与语言服务器协议 (LSP)。核心运行环境需 Node.js 18+ 或 Bun。不支持 GPU 加速。需根据目标编程语言单独安装对应的语言服务器（如 TypeScript、Python、Go 等）。配置可通过交互式向导自动完成，也支持手动配置 JSON 文件。","需安装 Python 以运行部分语言服务器（如 python-lsp-server），但 cclsp 本身基于 Node.js\u002FBun",[106,107,108,109,110,111,112,113,114],"Node.js 18+","Bun (可选)","typescript-language-server (可选)","python-lsp-server (可选)","gopls (可选)","rust-analyzer (可选)","clangd (可选)","solargraph (可选)","intelephense (可选)",[35,13,52],[117,118,119,120,121],"claude","claude-code","lsp","mcp","mcp-server","2026-03-27T02:49:30.150509","2026-04-08T01:09:05.752326",[125,130,135,140,145,150],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},23236,"在 Windows 上启动 LSP 服务器失败，报错 'spawn npx ENOENT' 怎么办？","这是 Windows 系统特有的问题，因为命令需要被 `cmd \u002Fc` 包装才能正确执行。维护者已在 v0.5.6 版本中修复了此问题，该版本对环境变量进行了正确的引用处理。请升级 cclsp 到最新版本：\n\n```bash\nnpx cclsp@latest\n```\n\n如果问题仍然存在，请确保你的 Node.js 和 npm 已正确安装并添加到系统 PATH 中。","https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues\u002F12",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},23237,"启动服务器时报错 'Config file specified in CCLSP_CONFIG_PATH does not exist'，但文件确实存在，如何解决？","这是一个已知问题，曾在修复 Windows 兼容性（Issue #12）时引入，导致路径引用在某些系统（如 macOS）上出错。该问题已在最新发布的版本中解决。\n\n解决方法：\n1. 升级 cclsp 到最新版本：\n   ```bash\n   npx cclsp@latest\n   ```\n2. 如果升级后仍有问题，检查 `CCLSP_CONFIG_PATH` 环境变量指向的路径是否正确，并确保配置文件权限可读。\n\n维护者确认此错误是由于为符合 Windows shell 标准而添加的引号导致的副作用，现已修复。","https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues\u002F14",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},23238,"如何重启语言服务器（LSP）以获取最新的诊断信息或重置异常状态？","cclsp 提供了内置的 `restart_server` 工具，可用于重启指定的语言服务器。\n\n使用方法：\n在 Claude Code 中调用工具：\n```\ncclsp - restart_server (MCP)(extensions: [\"dart\"])\n```\n\n成功执行后会返回类似信息：\n```\nSuccessfully restarted 1 LSP server(s)\nRestarted servers:\n• dart language-server (dart)\n```\n\n该功能自 v0.5.2 版本起可用。适用于以下场景：\n- 获取最新的代码诊断信息\n- 重置处于异常状态的 LSP 服务\n- 代理修复问题后强制刷新诊断结果","https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues\u002F7",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},23239,"运行 setup 命令时提示 'Error: spawn claude ENOENT'，无法完成配置怎么办？","此错误表示系统找不到 `claude` 命令。通常是因为 Claude Code 未正确安装或未添加到系统 PATH。\n\n解决方案：\n1. 如果你使用的是本地安装的 Claude Code，可以创建符号链接：\n   ```bash\n   sudo ln -s ~\u002F.claude\u002Flocal\u002Fclaude \u002Fusr\u002Flocal\u002Fbin\u002Fclaude\n   ```\n2. 或者运行迁移命令（推荐）：\n   ```bash\n   claude migrate-installer\n   ```\n   参考官方文档：https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Ftroubleshooting#recommended-solution%3A-migrate-to-local-installation\n\n3. 确保升级 cclsp 到 v0.4.4 或更高版本，该版本已改进对命令路径的处理。","https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues\u002F3",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},23240,"cclsp 是否支持代码 linting（静态检查）和 formatting（格式化）功能？","目前 cclsp 主要专注于提供语言服务器协议（LSP）的基础功能，如补全、跳转定义等，尚未原生集成 linting 和 formatting 功能。\n\n替代方案建议：\n1. 使用 IDE 内置的诊断和格式化功能（推荐），因为这些功能专为 IDE 环境优化。\n2. 自行构建自定义 MCP 集成来调用系统中的 linter\u002Fformatter 二进制文件。\n3. 社区成员可贡献代码实现该功能，维护者表示愿意提供指导。\n\n注意：大多数 LSP 服务器本身不直接支持基于拉取的诊断检索，因此自动 linting 的实现较为复杂。","https:\u002F\u002Fgithub.com\u002Fktnyt\u002Fcclsp\u002Fissues\u002F9",{"id":151,"question_zh":152,"answer_zh":153,"source_url":144},23241,"setup 向导生成的配置文件保存路径显示异常（如保存到了 'y' 文件），如何处理？","这是一个交互逻辑问题，当用户在提示\"Where should the project configuration file be saved?\"时误输入了 'y'（原本应输入路径），导致配置文件被错误地保存为名为 'y' 的文件。\n\n正确操作步骤：\n1. 重新运行 setup 命令：\n   ```bash\n   npx cclsp@latest setup\n   ```\n2. 在选择保存路径时，输入完整的有效路径，例如：\n   ```\n   .\u002Fcclsp.json\n   ```\n   或绝对路径：\n   ```\n   \u002FUsers\u002Fyourname\u002Fproject\u002F.claude\u002Fcclsp.json\n   ```\n3. 确认生成的配置文件内容正确后，再选择是否添加到 Claude MCP 配置。\n\n如果已生成错误文件，请手动删除并重新配置。",[]]