Skip to main content
Glama
README.md
# Call DK MCP

> Call DK MCP服务器 - 为AI辅助开发提供用户call dk功能

## 项目概述

Call DK MCP 是一个基于 Model Context Protocol (MCP) 的服务器,专为AI辅助开发场景设计。它提供了一个图形用户界面,允许用户进行交互式call dk。

**许可证**: MIT License

## 核心功能

### 🎯 主要特性

- **交互式call dk系统**: 通过GUI界面收集用户的call dk
- **🚀 提示词优化功能**: 集成Google Gemini AI,智能优化用户输入的提示词
- **现代化UI**: 基于PySide6构建,支持暗色主题
- **跨平台兼容**: 支持Windows、macOS和Linux
- **MCP协议集成**: 完全兼容Model Context Protocol标准

### 🛠️ 技术实现

#### 架构设计

```
call-dk-mcp/
├── server.py          # MCP服务器主文件
├── calldk_ui.py       # GUI用户界面实现
├── test_server.py     # 测试文件
└── images/           # 界面资源文件
```

## MCP配置

在Claude Desktop或其他MCP客户端中添加以下配置:

```json
{
  "mcpServers": {
    "call-dk-mcp": {
      "command": "python",
      "args": [
        "G:\\docker\\McpApi\\call-dk-mcp\\server.py"
      ],
      "cwd": "G:\\docker\\McpApi\\call-dk-mcp"
    }
  }
}
```

**注意**: 请将路径 `G:\\docker\\McpApi\\call-dk-mcp` 替换为你的实际项目路径。

#### 核心组件

1. **MCP服务器 (server.py)**
   - 基于FastMCP框架构建
   - 提供`call_dk`工具接口
   - 无需参数,直接调用
   - 管理GUI进程的启动和结果收集

2. **GUI界面 (calldk_ui.py)**
   - 使用PySide6构建现代化界面
   - 支持Windows暗色标题栏
   - 提供用户call dk输入功能
   - 支持图片上传功能

3. **配置管理**
   - 保存用户界面设置
   - 项目特定的配置存储

## 技术栈

### 依赖项

- **Python**: >=3.11
- **fastmcp**: >=2.0.0 (MCP协议实现)
- **pyside6**: >=6.8.2.1 (GUI框架)
- **pillow**: >=10.0.0 (图片处理)
- **google-genai**: >=1.25.0 (Google Gemini AI API)
- **python-dotenv**: >=1.1.1 (环境变量管理)

### 开发工具

- **pip**: Python包管理器
- **pytest**: 测试框架
- **Git**: 版本控制

## 使用说明

### 环境要求

- Python >= 3.11
- 支持的操作系统:Windows、macOS、Linux

### 快速开始

#### 1. 克隆项目
```bash
git clone <repository-url>
cd call-dk-mcp
```

#### 2. 创建虚拟环境
```bash
python -m venv venv
venv\Scripts\activate  # Windows
# 或
source venv/bin/activate  # Linux/Mac
```

#### 3. 安装依赖
```bash
pip install -r requirements.txt
```

#### 4. 配置环境变量
```bash
# 复制环境变量模板
copy .env.example .env  # Windows
# 或
cp .env.example .env    # Linux/Mac

# 编辑.env文件,配置你的Google Gemini API密钥
```

#### 5. 运行项目
```bash
# 作为MCP服务器运行
python server.py

# 或直接运行GUI界面测试
python calldk_ui.py
```

### MCP工具使用

服务器提供一个主要工具:

```python
call_dk() -> List[Union[str, Image]]
```

**返回值**:
- 文本内容:用户call dk内容
- 图片内容:用户上传的图片

## 项目结构

```
call-dk-mcp/
├── images/                  # 界面资源
│   ├── attribution.txt
│   └── feedback.png
├── venv/                   # 虚拟环境
├── README.md               # 项目文档
├── calldk_ui.py            # GUI界面实现
├── server.py               # MCP服务器
├── test_server.py          # 测试文件
├── prompt_optimizer.py     # 提示词优化模块
├── .env                    # 环境配置文件
└── 参考文件/               # 参考实现文件
```

## 开发特性

### 代码质量

- **类型注解**: 完整的Python类型提示
- **错误处理**: 健壮的异常处理机制
- **进程管理**: 安全的子进程启动和清理
- **跨平台支持**: Windows特定优化和通用兼容性

### 用户体验

- **响应式界面**: 流畅的用户交互体验
- **暗色主题**: 现代化的视觉设计
- **实时反馈**: 命令执行状态的实时显示
- **配置持久化**: 用户设置的自动保存

## 工作流程

1. **AI代理调用**: AI助手通过MCP协议调用`call_dk`工具
2. **GUI启动**: 系统启动图形界面,标题为"call dk"
3. **用户交互**: 用户输入call dk内容,可选择上传图片
4. **结果返回**: 系统收集用户call dk和图片,返回给AI代理
5. **流程完成**: AI代理基于call dk继续后续操作

## 贡献指南

欢迎贡献代码!请遵循以下步骤:

1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交变更 (`git commit -m 'Add some AmazingFeature'`)
4. 推送分支 (`git push origin feature/AmazingFeature`)
5. 创建Pull Request

## 许可证

本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。

## 联系方式

- **项目**: Call DK MCP
- **许可证**: MIT License

---

## 🚀 提示词优化功能

### 功能概述
集成了基于Google Gemini 2.5 Flash模型的智能提示词优化功能,能够将用户输入的简单提示词优化为更清晰、具体、有效的提示词。

### 配置步骤

1. **获取Google Gemini API密钥**
   - 访问 [Google AI Studio](https://aistudio.google.com/app/apikey)
   - 创建新的API密钥
   - 复制生成的API密钥

2. **配置环境变量**
   - 编辑项目根目录下的 `.env` 文件
   - 将 `GEMINI_API_KEY=your_api_key_here` 中的 `your_api_key_here` 替换为你的实际API密钥

   ```env
   # Google Gemini API配置
   GEMINI_API_KEY=AIzaSyC_your_actual_api_key_here
   GEMINI_MODEL=gemini-2.5-flash
   GEMINI_TEMPERATURE=0.2
   GEMINI_MAX_TOKENS=1000
   ```

3. **安装依赖**
   ```bash
   # 激活虚拟环境
   venv\Scripts\activate  # Windows

   # 安装提示词优化相关依赖
   pip install google-genai python-dotenv
   ```

### 使用方法

1. **启动GUI界面**
   ```bash
   python calldk_ui.py
   ```

2. **使用提示词优化**
   - 在文本输入框中输入原始提示词
   - 点击 "🚀 提示词优化 (Ctrl+Q)" 按钮或按快捷键 `Ctrl+Q`
   - 等待AI处理完成(按钮会显示"🧠 优化中...")
   - 优化后的提示词会自动替换输入框中的内容
   - 如需撤销优化,按 `Ctrl+Z` 恢复原始内容

### 优化示例

**原始提示词:**
```
写一个关于AI的文章
```

**优化后的提示词:**
```
请撰写一篇关于人工智能技术发展现状与未来趋势的深度分析文章。文章应包含:
1. AI技术的历史发展脉络
2. 当前主流AI技术及其应用领域
3. AI对社会经济的影响分析
4. 未来AI发展的机遇与挑战
5. 对AI伦理和监管的思考
文章字数控制在2000-3000字,语言专业但易懂,适合技术爱好者阅读。
```

### 功能特点

- **智能优化**: 基于Google Gemini 2.5 Flash模型的AI思考能力
- **保持原意**: 优化过程中保持用户原始意图不变
- **增强细节**: 自动添加必要的细节和具体要求
- **多领域适用**: 适用于各种领域和场景的提示词优化
- **快捷键支持**: `Ctrl+Q` 快速优化,`Ctrl+Z` 撤销操作
- **无干扰体验**: 优化完成后无弹窗提示,保持流畅操作
- **撤销功能**: 支持一键撤销优化,恢复原始输入内容

### 故障排除

**问题:提示词优化按钮显示为灰色不可用**
- 检查 `.env` 文件中的API密钥是否正确配置
- 确认已安装 `google-genai` 依赖包
- 验证网络连接是否正常

**问题:优化失败提示API错误**
- 检查API密钥是否有效且有足够的配额
- 确认API密钥有访问Gemini模型的权限
- 检查网络连接和防火墙设置

---

## 功能特性

### 图片上传功能

#### 功能概述
为call dk系统增加图片上传功能,允许用户在call dk中包含图像内容,提升AI助手对用户需求的理解能力。

#### 实现思路

**1. 用户界面增强**
- 在call dk文本框旁边添加"添加图片"按钮
- 支持点击按钮选择本地图片文件(支持常见格式:PNG、JPG、JPEG、GIF等)
- 添加"清除所有图片"按钮,允许用户移除已选择的图片
- 在界面中显示已选择图片的缩略图预览
- 支持单个图片删除功能

**2. 图片处理流程**
- 用户选择图片后,在本地进行预处理(压缩、格式转换等)
- 图片临时存储在内存中,不写入磁盘
- 支持多张图片上传(可设置数量限制,如最多5张)

**2.1 截图功能实现**
- 集成屏幕截图工具,支持区域截图
- 自定义截图快捷键设置(默认可设为Ctrl+Shift+S)
- 截图后自动添加到反馈框的图片预览区域
- 支持截图编辑功能(如标注、裁剪等基础操作)

**3. 数据传输机制**
- 用户点击"发送call dk"时,将图片转换为Base64编码
- 通过MCP协议将图片数据与文字call dk一同传输给AI客户端
- 返回数据结构:
  ```python
  {
      "interactive_calldk": str,
      "images": [
          {
              "filename": str,
              "data": str,  # Base64编码的图片数据
              "mime_type": str  # 图片MIME类型
          }
      ]
  }
  ```

**4. AI处理能力**
- AI助手接收到图片数据后,利用内置的图像识别功能分析图片内容
- 结合文字call dk和图像内容,提供更准确的响应
- 支持图片中的文字识别(OCR)、对象检测、场景理解等

#### 技术实现要点

**前端界面(PySide6)**
- 使用`QFileDialog`实现文件选择
- 使用`QLabel`显示图片缩略图
- 使用`QScrollArea`支持多图片展示
- 图片压缩使用PIL/Pillow库

**数据处理**
- 图片大小限制(如单张不超过5MB)
- 自动压缩大尺寸图片以优化传输
- 支持的图片格式验证

**安全考虑**
- 内存使用优化,防止大图片导致内存溢出

#### 用户体验优化

- **图片预览**:显示已选择图片的缩略图
- **单个删除**:支持删除单个图片
- **错误处理**:友好的错误提示信息
- **格式支持**:支持常见图片格式

---

## 工作进度记录

### 2025-01-27 Call DK功能实现与优化

**实现内容:**
1. **项目重构** - 将所有"feedback"相关字眼替换为"call dk"
2. **文件重命名** - feedback_ui.py重命名为calldk_ui.py
3. **界面优化** - 简化GUI界面,去掉不必要的描述区域
4. **图片功能** - 支持图片上传和预览功能
5. **测试完善** - 添加pytest测试确保功能正常

**技术优化:**
1. **代码清理** - 移除不必要的依赖导入
2. **函数重命名** - 所有函数名从feedback改为calldk
3. **配置更新** - 更新MCP配置为标准Python环境
4. **文档完善** - 更新README.md文档

**当前状态:** 功能实现完成,所有测试通过,GUI界面简洁易用

### 2025-01-27 提示词优化功能集成

**实现内容:**
1. **提示词优化模块** - 基于Google Gemini 2.5 Flash模型的智能优化功能
2. **环境配置管理** - 使用.env文件管理API密钥和模型参数
3. **GUI界面集成** - 在calldk_ui.py中添加"提示词优化"按钮
4. **异步处理** - 使用QThread避免UI阻塞,提供流畅的用户体验
5. **错误处理** - 完善的错误提示和状态反馈机制

**技术实现:**
1. **依赖管理** - 新增google-genai和python-dotenv依赖
2. **模块封装** - 创建独立的prompt_optimizer.py模块
3. **线程处理** - 实现OptimizeThread类处理API调用
4. **配置系统** - 支持多种模型参数和优化选项配置
5. **用户体验** - 一键优化,自动替换输入内容

**功能特点:**
- 🧠 AI思考模式:利用Gemini 2.5的内置思考能力
- 🎯 智能优化:保持原意的同时增强提示词的具体性和有效性
- ⚡ 快速响应:异步处理确保界面流畅不卡顿
- 🔧 灵活配置:支持温度、Token数等参数调整
- 🛡️ 错误处理:友好的错误提示和状态反馈

**当前状态:** 提示词优化功能集成完成,支持一键智能优化用户输入


*本项目旨在改善AI辅助开发的用户体验,通过call dk机制让开发者更好地与AI协作。*