评论脱衣舞mcp
一种灵活的MCP服务器,可以批处理代码文件以删除多种编程语言的注释。目前支持JavaScript、TypeScript、Vue、CSS/SCSS/LESS、HTML、Python、Java、C#、C++、Ruby和PHP文件,并支持基于正则表达式的模式匹配。
概述
此服务器实现 模型上下文协议(MCP) 提供从代码文件中删除注释的服务。它接受单个文件、目录(包括子目录)或直接文本输入,并返回删除注释的清理后的代码。
该项目是使用 测试驱动开发(TDD) 方法论,从一开始就确保高代码质量、更好的设计和全面的测试覆盖率。在实现之前,每个功能都首先通过测试定义,遵循红绿重构周期。
特性
- 🔄 处理文件、目录或原始文本输入
- 🌐 跨语言支持(JS、TS、Vue、CSS/SCSS/LESS、HTML、Python、Java、C#、C++、Ruby和PHP)
- 📂 递归处理嵌套目录
- ⚡ 基于正则表达式的模式匹配,实现高效的注释删除
- 🔌 符合MCP的API,便于集成
- 🛠️ 使用Node.js和TypeScript构建
- 📊 具有多个日志级别的综合日志系统
- ⚠️ 具有标准化错误响应的稳健错误处理
- ⚙️ 通过环境变量灵活配置
- 🚀 处理大文件的性能优化
- 🔐 用于安全访问的API身份验证
- 📈 大型目录处理的进度跟踪
入门指南
先决条件
- Node.js 18+
- npm或纱线
安装
# 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 node2.在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 根目录中的文件基于提供的 .env.example 文件:
# 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) 原则:
- 编写失败的测试 第一阶段(红色阶段)
- 实施最低限度的代码 通过测试(绿色阶段)
- 重构 在保持测试通过的同时编写代码
该项目使用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:coverageAPI文档
删除评论端点
端点: /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"
}
}贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据ISC许可证获得许可-有关详细信息,请参阅许可证文件。
