返回市场
双子座-MCP服务器

双子座-MCP服务器

作者:Garblesnarff13 星标更新:2025-07-06

项目介绍

Gemini MCP Server 智能工具系统

欢迎使用 Gemini MCP Server,这是首个配备智能工具系统的MCP服务器——一个革命性的自我学习系统,能够适应您的偏好并随着时间推移而改进。该综合平台提供7个由AI驱动的工具,具有自动提示增强和上下文感知功能。

🚀 功能概览

🤖 7个由AI驱动的工具

  • 图像生成 - 使用Gemini 2.0 Flash从文本提示创建图像
  • 图像编辑 - 使用自然语言指令编辑现有图像
  • 聊天 - 具有上下文感知响应的交互式对话
  • 音频转录 - 将音频转换为文本,可选逐字模式
  • 代码执行 - 在安全的沙箱环境中运行Python代码
  • 视频分析 - 分析视频内容以生成摘要、转录和见解
  • 图像分析 - 从图像中提取对象、文本和详细描述

🧠 智能工具系统(MCP生态系统中的首创)

  • 自我学习 - 自动从成功的交互中学习
  • 上下文检测 - 识别意识研究、编码、调试等场景
  • 模式识别 - 识别使用模式和用户偏好
  • 提示增强 - 改进提示以提高AI模型性能
  • 持久记忆 - 跨会话存储学习到的偏好
  • 自动迁移 - 平滑升级偏好存储

📦 快速开始

安装

git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install

配置

  1. Google AI Studio获取您的Gemini API密钥
  2. 复制环境模板:
    cp .env.example .env
    
  3. 编辑.env并添加您的API密钥:
    GEMINI_API_KEY=your_actual_api_key_here
    OUTPUT_DIR=/path/to/your/output/directory  # 可选
    DEBUG=false  # 可选
    

运行服务器

npm start
# 或者为了开发调试日志:
npm run dev

与Claude Desktop集成

在您的Claude Desktop配置文件(claude_desktop_config.json)中添加:

{
  \"mcpServers\": {
    \"gemini\": {
      \"command\": \"node\",
      \"args\": [\"/path/to/gemini-mcp-server/gemini-server.js\"],
      \"env\": {
        \"GEMINI_API_KEY\": \"your_api_key_here\"
      }
    }
  }
}

🛠️ 工具参考

1. 图像生成(generate_image

使用Gemini 2.0 Flash从文本描述生成图像。

参数:

  • prompt (字符串,必需) - 要生成的图像描述
  • context (字符串,可选) - 用于智能工具系统增强的上下文

示例:

{
  \"prompt\": \"夕阳下的宁静山景,色彩鲜艳\",
  \"context\": \"艺术性\"
}

返回:

{
  \"content\": [{
    \"type\": \"text\",
    \"text\": \"生成了一张美丽的山景图像。\"
  }, {
    \"type\": \"image\", 
    \"data\": \"base64_image_data\",
    \"mimeType\": \"image/png\"
  }]
}

2. 图像编辑(gemini-edit-image

使用自然语言指令编辑现有图像。

参数:

  • image_path (字符串,必需) - 要编辑的图像文件路径
  • edit_instruction (字符串,必需) - 所需更改的描述
  • context (字符串,可选) - 增强上下文

示例:

{
  \"image_path\": \"/path/to/image.jpg\",
  \"edit_instruction\": \"在夜空中添加流星\",
  \"context\": \"艺术性\"
}

3. 聊天(gemini-chat

与Gemini AI进行交互式对话,该AI会学习您的偏好。

参数:

  • message (字符串,必需) - 您的消息或问题
  • context (字符串,可选) - 智能工具系统的上下文

示例:

{
  \"message\": \"用简单的话解释量子计算\",
  \"context\": \"意识\"  // 将应用学术严谨性增强
}

4. 音频转录(gemini-transcribe-audio

使用智能工具系统增强将音频文件转换为文本。

参数:

  • file_path (字符串,必需) - 音频文件路径(MP3, WAV, FLAC, AAC, OGG, WEBM, M4A)
  • language (字符串,可选) - 提高准确性的语言提示
  • context (字符串,可选) - 使用“逐字”进行逐字逐句转录
  • preserve_spelled_acronyms (布尔值,可选) - 保留U-R-L而不是URL

示例(标准模式):

{
  \"file_path\": \"/path/to/audio.mp3\",
  \"language\": \"en\"
}

示例(逐字模式):

{
  \"file_path\": \"/path/to/audio.mp3\",
  \"context\": \"逐字\",  // 获取逐字逐句转录
  \"preserve_spelled_acronyms\": true
}

逐字模式特性:

  • 捕获所有“嗯”,“呃”,“像”,重复词
  • 保留情感表达:[笑声],[叹气],[清嗓子]
  • 维持原始标点符号和句子结构
  • 不进行总结或清理

5. 代码执行(gemini-code-execute

在安全的沙箱环境中执行Python代码。

参数:

  • code (字符串,必需) - 要执行的Python代码
  • context (字符串,可选) - 增强上下文

示例:

{
  \"code\": \"import pandas as pd\\ndata = {'x': [1,2,3], 'y': [4,5,6]}\\ndf = pd.DataFrame(data)\\nprint(df.describe())\",
  \"context\": \"代码\"
}

6. 视频分析(gemini-analyze-video

分析视频内容以生成摘要、转录和详细见解。

参数:

  • file_path (字符串,必需) - 视频文件路径(MP4, MOV, AVI, WEBM, MKV, FLV)
  • analysis_type (字符串,可选) - “摘要”,“转录”,“对象”,“详细”,“自定义”
  • context (字符串,可选) - 增强上下文

示例:

{
  \"file_path\": \"/path/to/video.mp4\",
  \"analysis_type\": \"详细\"
}

7. 图像分析(gemini-analyze-image

从图像中提取详细信息,包括对象、文本和描述。

参数:

  • file_path (字符串,必需) - 图像文件路径(JPEG, PNG, WebP, HEIC, HEIF, BMP, GIF)
  • analysis_type (字符串,可选) - “摘要”,“对象”,“文本”,“详细”,“自定义”
  • context (字符串,可选) - 增强上下文

示例:

{
  \"file_path\": \"/path/to/image.jpg\",
  \"analysis_type\": \"对象\"
}

🧠 智能工具系统

工作原理

智能工具系统是MCP生态系统中的首创。它自动:

  1. 检测上下文 - 识别您是否正在进行意识研究、编码、调试等。
  2. 增强提示 - 根据学习到的模式添加相关指令
  3. 学习模式 - 存储成功交互模式供未来使用
  4. 随时间适应 - 每次交互都变得更擅长帮助您

上下文类型

系统识别这些上下文并应用适当的增强:

  • 意识 - 添加学术严谨性、引用、详细解释
  • 代码 - 包括实用示例、工作代码、最佳实践
  • 调试 - 关注根本原因分析和具体修复
  • 通用 - 应用全面、结构化的响应
  • 逐字 - 对于音频转录,提供逐字逐句输出

存储位置

偏好内部存储在./data/tool-preferences.json,并从外部存储自动迁移。

在您的MCP服务器中实现智能工具系统

想要将这一革命性能力添加到您自己的MCP服务器吗?这里是如何操作:

1. 核心架构

// src/intelligence/context-detector.js
class ContextDetector {
  detectContext(prompt, toolName) {
    // 实现不同上下文的模式匹配
    if (this.isConsciousnessContext(prompt)) return '意识';
    if (this.isCodeContext(prompt)) return '代码';
    if (this.isDebuggingContext(prompt)) return '调试';
    return '通用';
  }
}

// src/intelligence/prompt-enhancer.js  
class PromptEnhancer {
  enhancePrompt(originalPrompt, context, toolName) {
    // 应用上下文特定的增强
    const enhancement = this.getEnhancementForContext(context);
    return `${originalPrompt}\\n\\n${enhancement}`;
  }
}

// src/intelligence/preference-store.js
class PreferencesManager {
  async storePattern(original, enhanced, context, toolName, success) {
    // 存储成功模式供未来学习
  }
  
  async getPatterns(context) {
    // 检索已学习的模式
  }
}

2. 集成模式

// 在您的工具执行方法中:
async execute(args) {
  const intelligence = IntelligenceSystem.getInstance();
  
  // 检测上下文并增强提示
  const context = args.context || intelligence.contextDetector.detectContext(args.prompt, this.name);
  const enhancedPrompt = await intelligence.enhancePrompt(args.prompt, context, this.name);
  
  // 使用增强提示执行
  const result = await this.geminiService.generateContent(enhancedPrompt);
  
  // 存储成功模式
  await intelligence.storeSuccessfulPattern(args.prompt, enhanced_提示, context, this.name);
  
  return result;
}

3. 关键实现文件

研究此仓库中的这些文件:

  • src/intelligence/index.js - 主智能协调器
  • src/intelligence/context-detector.js - 上下文识别逻辑
  • src/intelligence/prompt-enhancer.js - 增强应用
  • src/intelligence/preference-store.js - 模式存储和检索
  • src/tools/base-tool.js - 工具执行集成

🧪 测试

运行测试套件

# 测试基本功能
npm test

# 测试智能工具系统
node test-tool-intelligence-full.js

# 测试内部存储
node test-internal-storage.js

# 测试逐字转录
node test-verbatim-mode.js

手动测试示例

# 测试图像生成
echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"generate_image\",\"arguments\":{\"prompt\":\"一只可爱的机器人正在读书\"}}}' | node gemini-server.js

# 测试带有意识上下文的聊天
echo '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"gemini-chat\",\"arguments\":{\"message\":\"什么是意识?\",\"context\":\"意识\"}}}' | node gemini-server.js

📊 性能与限制

文件大小限制

  • 图像:20MB(JPEG, PNG, WebP, HEIC, HEIF, BMP, GIF)
  • 音频:20MB(MP3, WAV, FLAC, AAC, OGG, WEBM, M4A)
  • 视频:100MB(MP4, MOV, AVI, WEBM, MKV, FLV)

API速率限制

  • 遵循Google Gemini API速率限制
  • 内置错误处理和重试逻辑
  • 配额超出时优雅降级

🏗️ 架构深入

模块化设计

src/
├── server.js              # MCP协议处理器
├── config.js              # 配置管理
├── tools/                 # 工具实现
│   ├── index.js           # 工具注册及调度
│   ├── base-tool.js       # 抽象基类
│   ├── chat.js            # 聊天工具
│   ├── image-generation.js # 图像生成工具
│   ├── image-editing.js   # 图像编辑工具
│   ├── audio-transcription.js # 音频转录工具
│   ├── code-execution.js  # 代码执行工具
│   ├── video-analysis.js  # 视频分析工具
│   └── image-analysis.js  # 图像分析工具
├── intelligence/          # 智能工具系统
│   ├── index.js           # 智能协调器
│   ├── context-detector.js # 上下文识别
│   ├── prompt-enhancer.js # 提示增强
│   └── preference-store.js # 模式存储
├── gemini/               # Gemini API集成
│   ├── gemini-service.js # API服务层
│   └── request-handler.js # 请求格式化
└── utils/                # 工具
    ├── logger.js         # 日志系统
    └── file-utils.js     # 文件操作

智能系统流程

  1. 接收请求 → 工具的执行方法被调用
  2. 上下文检测 → 分析提示以获取上下文线索
  3. 模式检索 → 获取相关的已学习模式
  4. 提示增强 → 应用上下文特定的改进
  5. API执行 → 发送增强提示到Gemini
  6. 模式存储 → 存储成功交互模式
  7. 返回响应 → 返回增强结果给用户

🔧 自定义

添加新上下文

// 在src/intelligence/context-detector.js中
isMyCustomContext(prompt) {
  const patterns = [
    /自定义模式1/i,
    /自定义模式2/i
  ];
  return patterns.some(pattern => pattern.test(prompt));
}

// 在src/intelligence/prompt-enhancer.js中
getEnhancementForContext(context) {
  const enhancements = {
    'my_custom_context': '在这里应用我的自定义增强指令。',
    // ...其他上下文
  };
  return enhancements[context] || enhancements.通用;
}

添加新工具

  1. src/tools/my-new-tool.js中创建工具文件
  2. 继承BaseTool
  3. 实现execute方法并集成智能系统
  4. src/tools/index.js中注册
// src/tools/my-new-tool.js
class MyNewTool extends BaseTool {
  constructor(geminiService, intelligenceSystem) {
    super('my-new-tool', '我的工具描述', geminiService, intelligenceSystem);
  }
  
  async execute(args) {
    // 使用智能系统进行增强
    const context = args.context || this.detectContext(args.input);
    const enhancedPrompt = await this.enhancePrompt(args.input, context);
    
    // 您的工具逻辑
    const result = await this.geminiService.someMethod(enhancedPrompt);
    
    // 存储成功模式  
    await this.storeSuccessfulPattern(args.input, enhancedPrompt, context);
    
    return result;
  }
}

🐛 故障排除

常见问题

“缺少GEMINI_API_KEY”错误

# 确保.env文件存在并包含您的API密钥
cp .env.example .env
# 编辑.env并添加:GEMINI_API_KEY=您的密钥

“文件未找到”错误

# 确保文件路径是绝对路径且文件存在
# 检查文件权限和格式

智能系统不学习

# 检查数据目录权限
ls -la data/
# 验证tool-preferences.json是否可写

调试模式

DEBUG=true npm start
# 或
npm run dev

日志位置

  • 应用程序日志:控制台输出
  • 智能模式:./data/tool-preferences.json
  • 生成的图像:$OUTPUT_DIR(默认:~/Claude/gemini-images

🤝 贡献

我们欢迎贡献!这个项目代表了MCP服务器开发的新范式。

开发设置

git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install
npm run dev

贡献领域

  • 新上下文 - 添加对专业领域的支持
  • 增强模式 - 改进学习算法
  • 新工具 - 扩展Gemini AI的能力
  • 性能 - 优化智能系统性能
  • 文档 - 改进指南和示例

📈 路线图

  • 多语言支持 - 多语言上下文检测
  • 高级分析 - 使用模式和性能指标
  • 工具链 - 多个工具之间的智能协调
  • 定制模型 - 支持微调的Gemini模型
  • 协作学习 - 在实例之间共享匿名模式
  • 可视化界面 - 基于Web的配置和监控

🌟 为什么这很重要

这是**首个真正学习和适应的