🚀 代碼智能MCP
代碼智能MCP服務是一種智能代碼建議服務,它基於人工智能技術,為AI集成開發環境(IDE)提供組件和實用方法的推薦,助力開發者提升代碼複用率和開發效率。
🚀 快速開始
本項目是一個基於模型上下文協議(MCP)的智能代碼建議服務。它通過人工智能分析用戶需求,並從私有代碼庫中推薦最合適的組件和實用方法,幫助開發者提高代碼複用率和開發效率。
✨ 主要特性
智能分析引擎
- 需求理解:基於人工智能深度理解用戶的開發意圖。
- 關鍵詞提取:自動識別需求中的核心元素。
- 複雜度評估:智能評估實現難度和組件適配度。
知識庫管理
- 組件知識庫:管理私有UI組件庫(屬性、事件、插槽、示例)。
- 方法知識庫:管理實用方法庫(參數、返回值、類型、用法)。
- 相關性算法:根據語義匹配計算推薦得分。
提示優化
- 雙向優化:支持組件和方法場景的提示重新設計。
- 結構化輸出:生成包含導入語句和實現步驟的完整解決方案。
- 最佳實踐:整合代碼標準和使用建議。
📦 安裝指南
方法一:使用npx(推薦)
這是在像Claude Desktop這樣的AI IDE中使用MCP服務器的推薦方法。
- 準備配置文件
創建一個配置目錄(推薦位置:
~/.config/ci-mcp):
mkdir -p ~/.config/ci-mcp
下載或創建以下三個配置文件:
- - AI模型配置
- - UI組件知識庫
- - 實用方法知識庫
你可以在npm包或倉庫中找到示例文件。
2. 配置AI IDE
在你的AI IDE配置中添加(例如Claude Desktop的claude_desktop_config.json):
{
"mcpServers": {
"code-intelligence": {
"command": "npx",
"args": ["-y", "code-intelligence-mcp"],
"env": {
"CI_MCP_DATA_DIR": "~/.config/ci-mcp"
}
}
}
}
環境變量:
CI_MCP_DATA_DIR(推薦):指定配置目錄,將從該目錄加載所有三個文件。
CI_MCP_CONFIG:直接指定config.json的路徑。
CI_MCP_COMPONENTS:直接指定components.json的路徑。
CI_MCP_UTILS:直接指定utils.json的路徑。
支持的路徑格式:
- 絕對路徑:
/Users/xxx/.config/ci-mcp
- 主目錄:
~/.config/ci-mcp 或 $HOME/.config/ci-mcp
- 環境變量:
${MY_CONFIG_DIR}/ci-mcp
- 重啟AI IDE
重啟你的AI IDE(例如Claude Desktop),MCP服務將通過npx自動啟動。
方法二:本地開發
- 前提條件
- 配置知識庫數據文件:項目需要在
ci-mcp-data/目錄中手動配置以下數據文件:
ci-mcp-data/config.json - AI模型配置(包括API密鑰)
cp ci-mcp-data/config.example.json ci-mcp-data/config.json
- **`ci-mcp-data/components.json`** - UI組件知識庫
cp ci-mcp-data/components.example.json ci-mcp-data/components.json
添加組件信息時,請遵循現有格式:description、import、relativePath等。
- ci-mcp-data/utils.json - 實用方法知識庫
cp ci-mcp-data/utils.example.json ci-mcp-data/utils.json
包括方法信息:description、import、params、returns等。
注意:
config.json包含敏感信息(API密鑰),已添加到.gitignore中,不會提交到倉庫。
components.json和utils.json需要根據你的實際代碼庫進行配置。
- 請參考
config.example.json等示例文件的配置格式。
- 安裝依賴
pnpm install
- 開發模式
pnpm dev
- 構建
pnpm build
- 生產模式
pnpm start:prod
💻 使用示例
🎨 UI組件建議工具
1. suggest_components
智能分析UI開發需求,並推薦最合適的私有組件。
用例:
- 創建頁面、表單、界面等UI功能。
- 使用私有組件庫進行快速開發。
- 獲取完整的實現解決方案。
輸入參數:
{
prompt: string;
}
輸出:
- 需求分析:關鍵詞、組件類型、複雜度評估。
- 建議組件:組件列表 + 相關性得分 + 推薦理由。
- 優化提示:包括特定組件的導入和使用。
- 實現指南:逐步開發建議。
示例:
{"prompt": "生成用戶信息編輯表單"}
{
"analysis": {
"keywords": ["表單", "編輯", "用戶信息"],
"componentTypes": ["表單", "輸入框", "按鈕"]
},
"suggestedComponents": [
{
"name": "das-form",
"relevance": 0.95,
"reason": "最適合用戶信息編輯場景"
}
],
"redesignedPrompt": "使用das-form組件創建...",
"implementationGuide": "1. 導入組件...\n2. 配置表單字段..."
}
2. query_component
查詢特定組件的詳細信息。
輸入參數:
{
componentName: string;
}
輸出:
- 組件描述、類別、標籤。
- 屬性參數列表。
- 事件列表。
- 插槽描述。
- 使用示例代碼。
- 導入路徑。
🔧 實用方法建議工具
1. suggest_utilities
智能分析邏輯開發需求,並推薦可複用的實用方法。
用例:
- 實現數據處理和格式轉換功能。
- 需要加密、驗證等實用功能。
- 避免重複造輪子。
輸入參數:
{
prompt: string;
}
輸出:
- 需求分析:關鍵功能點、方法類型。
- 建議方法:方法列表 + 相關性得分 + 推薦理由。
- 優化提示:包括方法的導入和調用。
- 實現指南:使用步驟和注意事項。
示例:
{"prompt": "實現密碼加密功能"}
{
"analysis": {
"keywords": ["加密", "密碼", "安全"],
"methodTypes": ["加密", "安全"]
},
"suggestedUtilities": [
{
"name": "encryptPassword",
"relevance": 0.98,
"reason": "提供MD5/SHA256密碼加密"
}
],
"redesignedPrompt": "使用encryptPassword方法...",
"implementationGuide": "1. 導入方法...\n2. 調用加密..."
}
2. query_utility
查詢特定實用方法的詳細信息。
輸入參數:
{
utilityName: string;
}
輸出:
- 方法描述、類別、類型。
- 參數列表(參數名稱、類型、描述)。
- 返回值類型和描述。
- 使用示例代碼。
- 導入路徑。
📚 詳細文檔
MCP資源
- code-intelligence://component-library:提供完整的私有組件庫信息,包括所有可用組件的列表、組件類別和標籤、組件功能概述。
- code-intelligence://utility-library:提供完整的實用方法庫信息,包括所有可用方法的列表、方法類別和功能、方法功能概述。
- code-intelligence://usage-guide:包括MCP工具的使用說明、最佳實踐建議、常見問題解答、集成配置指南。
技術棧
- 核心框架:
- TypeScript - 類型安全的開發。
- Node.js - 運行時環境。
- MCP SDK (@modelcontextprotocol/sdk) - 模型上下文協議實現。
- AI集成:
- Vercel AI SDK - 統一的AI接口。
- OpenAI - GPT系列模型支持。
- Anthropic - Claude系列模型支持。
- DeepSeek - 國內大模型支持。
- 開發工具:
- pnpm - 包管理器。
- tsx - TypeScript執行器。
- ESLint + Prettier - 代碼標準。
- Husky - Git鉤子。
開發標準
- 使用TypeScript進行類型安全的開發。
- 遵循ESLint和Prettier代碼標準。
- 使用Husky進行Git鉤子管理。
配置
- MCP服務配置(mcp-config.json):在AI IDE中註冊MCP服務。
{
"mcpServers": {
"code-intelligence": {
"command": "/bin/zsh",
"args": ["/path/to/code-intelligence-mcp/scripts/start.sh"]
}
}
}
- AI模型配置(data/config.json):配置推薦引擎使用的AI模型。
{
"defaultModel": "claude-3-7-sonnet-latest",
"providers": [
{
"provider": "anthropic",
"models": [
{
"model": "claude-3-7-sonnet-latest",
"title": "Claude 3.7 Sonnet",
"baseURL": "https://api.302.ai/v1",
"apiKey": "your-api-key"
}
]
},
{
"provider": "openai",
"models": [
{
"model": "gpt-4o",
"title": "GPT-4o",
"baseURL": "https://api.openai.com/v1",
"apiKey": "your-api-key"
}
]
}
]
}
配置說明:
defaultModel:要使用的默認模型名稱,必須存在於providers中。
providers:支持的AI提供商列表。
provider:提供商類型(anthropic、openai、deepseek、ollama)。
models:該提供商的模型配置列表。
model:模型名稱(必須與defaultModel匹配)。
title:模型顯示名稱。
baseURL:API端點地址。
apiKey:API密鑰。
支持的提供商:
anthropic - Claude系列模型。
openai - GPT系列模型。
deepseek - DeepSeek國內模型。
ollama - 本地模型。
知識庫數據
- 組件知識庫(data/components.json)
{
"components": [
{
"name": "das-button",
"description": "按鈕組件",
"category": "基礎組件",
"tags": ["按鈕", "交互"],
"props": [...],
"events": [...],
"example": "..."
}
]
}
{
"utilities": [
{
"name": "formatNumber",
"description": "用千位分隔符格式化數字",
"category": "格式化",
"type": "格式化器",
"params": [...],
"returns": {...},
"example": "..."
}
]
}
🔧 技術細節
本項目的目錄結構如下:
code-intelligence-mcp/
├── src/
│ ├── core/ # 核心功能模塊
│ │ ├── knowledge-base.ts # 組件知識庫管理
│ │ ├── utility-knowledge-base.ts # 實用方法知識庫管理
│ │ ├── prompt-redesigner.ts # UI組件提示重新設計
│ │ ├── logic-prompt-redesigner.ts # 邏輯方法提示重新設計
│ │ ├── ai-suggester.ts # AI組件推薦引擎
│ │ ├── ai-utility-suggester.ts # AI方法推薦引擎
│ │ └── index.ts
│ ├── config/ # 配置管理
│ │ ├── model-manager.ts # AI模型管理器
│ │ ├── ai-client-adapter.ts # AI客戶端適配器
│ │ ├── types.ts # 配置類型定義
│ │ └── index.ts
│ ├── tools/ # MCP工具定義
│ │ ├── suggestion.ts # 組件建議工具
│ │ ├── utility-suggestion.ts # 方法建議工具
│ │ ├── query.ts # 查詢工具
│ │ └── index.ts
│ ├── resources/ # MCP資源定義
│ │ └── index.ts
│ ├── types/ # 類型定義
│ │ └── mcp-types.ts
│ ├── utils/ # 實用函數
│ │ ├── logger.ts # 日誌實用工具
│ │ ├── ai-caller.ts # AI統一調用器
│ │ ├── path-utils.ts # 路徑解析實用工具
│ │ └── index.ts
│ └── mcp-server.ts # MCP服務器主入口
├── ci-mcp-data/ # 配置數據(特定於用戶)
│ ├── components.example.json # UI組件知識庫示例
│ ├── utils.example.json # 實用方法知識庫示例
│ └── config.example.json # AI模型配置示例
├── scripts/ # 腳本工具
│ ├── setup.js # 安裝腳本
│ └── start.sh # 啟動腳本
├── package.json
├── tsconfig.json
└── .npmignore # NPM發佈排除項
📄 許可證
本項目採用MIT許可證。
貢獻
我們歡迎貢獻!請參閱 CONTRIBUTING.md 瞭解如何為這個項目做出貢獻的詳細信息。
變更日誌
請參閱 CHANGELOG.md 瞭解版本歷史和發佈說明。