关于 comment-stripper-mcp
comment-stripper-mcp 是一个 MCP 服务,可从代码文本、文件和目录中移除注释。它支持多种语言和递归目录处理,并可跟踪处理进度。
主要功能
- 01移除文本或文件中的注释
- 02支持 12 类语言文件
- 03递归处理嵌套目录
- 04可选目录进度跟踪
- 05配置要处理的文件类型
适用场景
- 01移除单个源文件中的注释
- 02清理代码目录中的注释
MCP 相关
该 MCP 服务通过符合 MCP 规范的 API,向 MCP 客户端提供注释清理功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
comment-stripper-mcp
一款灵活的 MCP 服务,可批量处理代码文件,移除多种编程语言中的注释。目前支持 JavaScript、TypeScript、Vue、CSS/SCSS/LESS、HTML、Python、Java、C#、C++、Ruby 和 PHP 文件,并使用基于正则表达式的模式匹配。
概述
此服务实现了 Model Context Protocol (MCP),用于提供移除代码文件注释的服务。它可接收单个文件、目录(包括子目录)或直接输入的文本,并返回已移除注释的清理后代码。
本项目采用**测试驱动开发(TDD)**方法,确保从一开始就具备高质量代码、更优设计和全面的测试覆盖。每项功能都会先通过测试定义,再进行实现,并遵循 red-green-refactor 循环。
功能
- 🔄 处理文件、目录或原始文本输入
- 🌐 支持多种语言(JS、TS、Vue、CSS/SCSS/LESS、HTML、Python、Java、C#、C++、Ruby 和 PHP)
- 📂 递归处理嵌套目录
- ⚡ 使用基于正则表达式的模式匹配,高效移除注释
- 🔌 符合 MCP 规范的 API,便于集成
- 🛠️ 使用 Node.js 和 TypeScript 构建
- 📊 全面的日志系统,支持多个日志级别
- ⚠️ 稳健的错误处理,提供标准化错误响应
- ⚙️ 通过环境变量灵活配置
- 🚀 优化性能,支持处理大型文件
- 🔐 通过 API 身份验证确保访问安全
- 📈 跟踪大型目录处理进度
开始使用
先决条件
- Node.js 18+
- npm 或 yarn
安装
# Clone this repository
git clone https://github.com/yhzion/comment-stripper-mcp.git
cd comment-stripper-mcp
# Install dependencies
npm install
# or
yarn install
运行服务
# Development mode
npm run dev
# or
yarn dev
# Production mode
npm run build
npm start
# or
yarn build
yarn start
默认情况下,服务在端口 3000 上运行。你可以通过环境变量进行配置。
MCP 服务连接问题排查指南
MCP 服务连接 Claude Desktop 时可能会意外退出。以下指南可帮助你解决此问题。
问题表现
- 服务初始化后立即退出
- 日志中显示“Server transport closed unexpectedly”消息
- Claude Desktop 显示无法连接到 MCP 服务的错误消息
解决方法
1. 使用 NVM 设置干净的 Node.js 环境
# NVM 설치 (이미 설치되어 있다면 생략)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 최신 Node.js 설치
nvm install node
# 설치한 버전 활성화
nvm use node
2. 在 Claude Desktop 配置文件中使用绝对路径
在 Claude Desktop 配置文件(claude_desktop_config.json)中使用绝对路径,而不是相对路径:
{
"mcpServers": {
"comment-stripper": {
"command": "/절대/경로/node",
"args": [
"/절대/경로/comment-stripper-mcp/build/index.js"
]
}
}
}
你可以使用 which node 命令查看 Node.js 路径。
3. 提升服务稳定性
服务代码已应用以下稳定性改进:
- 使用
process.stdin.resume(),避免进程意外退出 - 实现多重 keep-alive 机制
- 改进错误处理
- 添加详细日志
其他问题排查技巧
- 启用 Claude Desktop 的开发者模式,以访问 MCP 日志文件。
- 查看服务运行时出现的错误消息。
- 确认环境变量已正确设置。
- 确认防火墙或安全软件没有阻止连接。
配置
你可以使用环境变量配置服务。根据提供的 .env.example 文件,在根目录中创建 .env 文件:
# Server configuration
PORT=3000 # Port for the server to listen on
HOST=127.0.0.1 # Host for the server to bind to
NODE_ENV=development # Environment (development, production, test)
# Logging configuration
LOG_LEVEL=2 # 0=ERROR, 1=WARN, 2=INFO, 3=DEBUG, 4=TRACE
LOG_TO_FILE=false # Whether to log to a file
LOG_DIR=logs # Directory for log files
# Performance configuration
CHUNK_SIZE=1048576 # 1MB chunk size for processing large files
MAX_WORKERS=4 # Number of concurrent workers for batch processing
MEMORY_LIMIT=536870912 # 512MB memory limit before using streaming
# Authentication
API_KEY=your-secret-key # API key for authentication
测试
本项目严格遵循**测试驱动开发(TDD)**原则:
- 先编写一个失败的测试(Red 阶段)
- 编写通过测试所需的最少代码(Green 阶段)
- 重构代码,同时确保测试持续通过
本项目使用 Jest 作为测试框架,并通过 ts-jest 支持 TypeScript。测试分为:
- 单元测试:测试各个函数和组件
- 集成测试:测试 API 端点和组件之间的交互
# Run all tests
npm test
# or
yarn test
# Run tests in watch mode
npm run test:watch
# or
yarn test:watch
# Run tests with coverage
npm run test:coverage
# or
yarn test:coverage
API 文档
移除注释端点
端点:/api/strip-comments
方法:POST
说明:移除代码文件或文本中的注释。
请求参数:
text(可选):要移除注释的文本。filePath(可选):要移除注释的文件路径。directoryPath(可选):要处理的目录路径。recursive(可选,默认值:true):是否递归处理子目录。fileTypes(可选,默认值:所有受支持的类型):要处理的文件扩展名数组。trackProgress(可选,默认值:false):是否跟踪目录处理进度。
响应:
{
"success": true,
"data": {
"original": "// Original code with comments",
"stripped": "// Code with comments removed"
}
}
获取进度端点
端点:/api/get-progress
方法:POST
描述:获取目录处理操作的进度。
请求参数:
trackerId:进度跟踪器的 ID。
响应:
{
"success": true,
"data": {
"processed": 10,
"total": 20,
"percentage": 50,
"completed": false
}
}
身份验证状态端点
端点:/api/auth-status
方法:POST
描述:获取当前的身份验证状态和配置。
响应:
{
"success": true,
"data": {
"authEnabled": true,
"authenticated": true,
"message": "Authenticated successfully"
}
}
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
本项目采用 ISC 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。