🚀 代码智能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 了解版本历史和发布说明。