🚀 MCP開發工具服務器
本項目是一個全面的MCP(模型上下文協議)服務器,用於代碼分析和網頁數據抓取。支持代碼質量分析、代碼檢查、依賴分析、靜態/動態網頁數據抓取以及API發現等功能。
✨ 主要特性
- 📊 代碼質量分析:檢測代碼複雜度、可維護性和代碼異味。
- 🔍 代碼檢查與格式化:使用ESLint、Prettier和TypeScript進行代碼檢查。
- 📦 依賴分析:找出未使用的依賴項、安全漏洞和過時的包。
- 🔒 安全分析:檢測硬編碼的密鑰和進行漏洞掃描。
- 🌐 網頁數據抓取:支持靜態和動態內容抓取。
- 🔎 API發現:發現API端點並進行網絡分析。
📦 安裝指南
要求
- Node.js 18或更高版本
- npm或yarn
- TypeScript(開發依賴)
步驟
- 克隆倉庫:
git clone https://github.com/code-alchemist01/development-tools-mcp-Server.git
cd development-tools-mcp-Server
- 安裝依賴:
npm install
- 安裝Playwright瀏覽器(用於動態抓取):
npx playwright install chromium
- 構建項目:
npm run build
- 測試運行:
npm start
MCP客戶端安裝
Cursor IDE
- 創建/編輯MCP配置文件
%APPDATA%\Cursor\User\globalStorage\mcp.json
- **macOS/Linux**:
~/.config/Cursor/User/globalStorage/mcp.json
- 配置文件內容
{
"mcpServers": {
"development-tools": {
"command": "node",
"args": [
"C:\\Users\\YourUsername\\path\\to\\development-tools-mcp-Server\\dist\\index.js"
]
}
}
}
注意:請根據您的項目路徑更新args中的路徑。
-
重啟Cursor
保存配置文件後,完全關閉並重新打開Cursor。
-
驗證
在Cursor的設置 > 工具與MCP部分,“development-tools”應顯示在列表中,並顯示“42 tools enabled”。
Claude Desktop
- 創建/編輯MCP配置文件
%APPDATA%\Claude\claude_desktop_config.json
- **macOS**:
~/Library/Application Support/Claude/claude_desktop_config.json
- **Linux**:
~/.config/Claude/claude_desktop_config.json
- 配置文件內容
{
"mcpServers": {
"development-tools": {
"command": "node",
"args": [
"/absolute/path/to/development-tools-mcp-Server/dist/index.js"
]
}
}
}
- 重啟Claude Desktop
其他MCP客戶端
如果您使用其他MCP客戶端,請根據客戶端的MCP服務器配置格式使用以下信息:
- 命令:
node
- 參數:
[path/to/dist/index.js]
- 傳輸方式:
stdio(標準輸入/輸出)
示例配置格式
通用MCP配置:
{
"mcpServers": {
"development-tools": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {}
}
}
}
帶環境變量的配置:
{
"mcpServers": {
"development-tools": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
💻 使用示例
MCP客戶端使用
MCP服務器安裝完成後,您可以在客戶端的聊天界面中使用自然語言命令來執行操作。
代碼分析示例
代碼質量分析
分析此項目的代碼質量
分析src/**/*.ts文件的代碼質量
複雜度計算
計算src/utils文件夾中文件的複雜度
代碼異味檢測
查找代碼中的代碼異味
重複代碼查找
查找項目中的重複代碼塊
代碼檢查示例
代碼檢查
對src/**/*.ts文件進行代碼檢查
代碼格式化
使用Prettier格式化src/**/*.ts文件
TypeScript檢查
檢查TypeScript文件中的類型錯誤
依賴分析示例
依賴分析
分析項目依賴
查找未使用的包
查找未使用的npm包
檢查安全漏洞
檢查依賴項中的安全漏洞
網頁數據抓取示例
HTML抓取
抓取https://example.com頁面
提取鏈接
提取https://example.com頁面上的所有鏈接
動態內容抓取
使用瀏覽器抓取https://example.com頁面(JavaScript渲染)
API端點發現
發現https://example.com頁面上的API端點
安全分析示例
密鑰檢測
查找代碼中的硬編碼密鑰
安全掃描
掃描安全漏洞
📋 MCP工具(42個工具)
代碼質量工具(8個)
analyze_code_quality - 通用代碼質量分析
calculate_complexity - 計算圈複雜度
detect_code_smells - 檢測代碼異味
analyze_maintainability - 計算可維護性指數
find_duplicate_code - 檢測重複代碼
analyze_test_coverage - 分析測試覆蓋率
generate_code_metrics - 生成詳細的代碼指標
suggest_refactoring - 提供重構建議
代碼檢查工具(5個)
lint_code - 使用ESLint進行代碼檢查
format_code - 使用Prettier進行代碼格式化
check_typescript - 進行TypeScript類型檢查
validate_syntax - 驗證語法
fix_lint_issues - 自動修復代碼檢查問題
依賴分析工具(6個)
analyze_dependencies - 分析依賴關係樹
find_unused_dependencies - 查找未使用的包
check_vulnerabilities - 檢查安全漏洞
check_outdated_packages - 檢測過時的包
analyze_bundle_size - 分析包大小
suggest_dependency_updates - 提供依賴更新建議
安全分析工具(4個)
scan_security_issues - 安全掃描
detect_secrets - 查找硬編碼的密鑰
analyze_permissions - 分析文件權限
check_compliance - 檢查合規性
靜態數據抓取工具(6個)
scrape_html - 抓取HTML內容
extract_text - 提取文本
extract_links - 提取鏈接
extract_images - 提取圖像URL
extract_tables - 提取表格數據
scrape_by_selector - 使用CSS選擇器進行數據抓取
動態數據抓取工具(5個)
scrape_dynamic_content - 抓取JavaScript渲染的內容
scrape_with_interaction - 通過用戶交互進行數據抓取
screenshot_page - 截取頁面屏幕截圖
wait_for_element - 等待元素加載
extract_after_click - 點擊後提取內容
API發現工具(4個)
discover_api_endpoints - 發現API端點
analyze_network_requests - 分析網絡請求
extract_api_schema - 提取API模式
test_api_endpoint - 測試API端點
數據處理工具(4個)
parse_json - 解析JSON數據
parse_xml - 解析XML數據
parse_csv - 解析CSV數據
format_scraped_data - 格式化抓取的數據
📁 項目結構
development-tools-mcp-Server/
├── src/
│ ├── index.ts # MCP服務器主入口點
│ ├── server.ts # MCP服務器實現
│ ├── tools/ # MCP工具
│ │ ├── code-analysis.ts # 安全分析工具
│ │ ├── code-quality.ts # 代碼質量工具
│ │ ├── dependency-analysis.ts # 依賴分析工具
│ │ ├── linting.ts # 代碼檢查工具
│ │ ├── web-scraping.ts # 網頁數據抓取工具
│ │ └── api-discovery.ts # API發現工具
│ ├── analyzers/ # 分析引擎
│ │ ├── code-analyzer.ts # 代碼分析
│ │ ├── complexity-analyzer.ts # 複雜度分析
│ │ ├── dependency-analyzer.ts # 依賴分析
│ │ └── security-analyzer.ts # 安全分析
│ ├── scrapers/ # 數據抓取引擎
│ │ ├── static-scraper.ts # 靜態HTML數據抓取
│ │ ├── dynamic-scraper.ts # 動態內容數據抓取
│ │ └── api-scraper.ts # API端點發現
│ ├── utils/ # 輔助函數
│ │ ├── file-reader.ts
│ │ ├── formatters.ts
│ │ ├── validators.ts
│ │ └── linting-utils.ts
│ └── types/ # TypeScript類型定義
│ └── index.ts
├── dist/ # 編譯後的JavaScript文件
├── package.json
├── tsconfig.json
└── README.md
🔧 開發
開發模式
npm run dev
構建項目
npm run build
測試
npm test
📝 示例使用場景
場景1:代碼質量分析
在MCP客戶端聊天界面:
分析src/**/*.ts文件的代碼質量
顯示最複雜的函數
檢測代碼異味
預期結果:
場景2:網頁數據抓取
在MCP客戶端聊天界面:
抓取https://example.com頁面
提取頁面上的所有鏈接
提取表格數據
預期結果:
場景3:API發現
在MCP客戶端聊天界面:
發現https://example.com頁面上的API端點
分析網絡請求
預期結果:
場景4:依賴清理
在MCP客戶端聊天界面:
查找未使用的包
檢查安全漏洞
提供更新建議
預期結果:
🔐 安全
- 輸入驗證和清理
- URL驗證
- 超時管理
- 錯誤處理
- 密鑰檢測
- SQL注入防護
📊 輸出格式
- JSON - 結構化數據響應
- Markdown - 報告和文檔
- CSV - 數據導出
- 文本 - 純文本輸出
🤝 貢獻
- Fork項目
- 創建功能分支 (
git checkout -b feature/amazing-feature)
- 提交更改 (
git commit -m 'Add amazing feature')
- 推送分支 (
git push origin feature/amazing-feature)
- 提交Pull Request
📄 許可證
本項目採用MIT許可證,詳情請查看LICENSE文件。
🔗 MCP客戶端支持
本MCP服務器與以下客戶端兼容:
- ✅ Cursor IDE - 完全支持
- ✅ Claude Desktop - 完全支持
- ✅ Anthropic API - 通過MCP協議
- ✅ 其他MCP客戶端 - 支持標準MCP協議的所有客戶端
🙏 致謝
📞 聯繫我們
如果您有任何問題或建議,請創建issue。
⭐ 如果您喜歡這個項目,請不要忘記給它加星!