欢迎使用 Gemini MCP Server,这是首个配备智能工具系统的MCP服务器——一个革命性的自我学习系统,能够适应您的偏好并随着时间推移而改进。该综合平台提供7个由AI驱动的工具,具有自动提示增强和上下文感知功能。
git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install
cp .env.example .env
.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_config.json)中添加:
{
\"mcpServers\": {
\"gemini\": {
\"command\": \"node\",
\"args\": [\"/path/to/gemini-mcp-server/gemini-server.js\"],
\"env\": {
\"GEMINI_API_KEY\": \"your_api_key_here\"
}
}
}
}
generate_image)使用Gemini 2.0 Flash从文本描述生成图像。
参数:
prompt (字符串,必需) - 要生成的图像描述context (字符串,可选) - 用于智能工具系统增强的上下文示例:
{
\"prompt\": \"夕阳下的宁静山景,色彩鲜艳\",
\"context\": \"艺术性\"
}
返回:
{
\"content\": [{
\"type\": \"text\",
\"text\": \"生成了一张美丽的山景图像。\"
}, {
\"type\": \"image\",
\"data\": \"base64_image_data\",
\"mimeType\": \"image/png\"
}]
}
gemini-edit-image)使用自然语言指令编辑现有图像。
参数:
image_path (字符串,必需) - 要编辑的图像文件路径edit_instruction (字符串,必需) - 所需更改的描述context (字符串,可选) - 增强上下文示例:
{
\"image_path\": \"/path/to/image.jpg\",
\"edit_instruction\": \"在夜空中添加流星\",
\"context\": \"艺术性\"
}
gemini-chat)与Gemini AI进行交互式对话,该AI会学习您的偏好。
参数:
message (字符串,必需) - 您的消息或问题context (字符串,可选) - 智能工具系统的上下文示例:
{
\"message\": \"用简单的话解释量子计算\",
\"context\": \"意识\" // 将应用学术严谨性增强
}
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
}
逐字模式特性:
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\": \"代码\"
}
gemini-analyze-video)分析视频内容以生成摘要、转录和详细见解。
参数:
file_path (字符串,必需) - 视频文件路径(MP4, MOV, AVI, WEBM, MKV, FLV)analysis_type (字符串,可选) - “摘要”,“转录”,“对象”,“详细”,“自定义”context (字符串,可选) - 增强上下文示例:
{
\"file_path\": \"/path/to/video.mp4\",
\"analysis_type\": \"详细\"
}
gemini-analyze-image)从图像中提取详细信息,包括对象、文本和描述。
参数:
file_path (字符串,必需) - 图像文件路径(JPEG, PNG, WebP, HEIC, HEIF, BMP, GIF)analysis_type (字符串,可选) - “摘要”,“对象”,“文本”,“详细”,“自定义”context (字符串,可选) - 增强上下文示例:
{
\"file_path\": \"/path/to/image.jpg\",
\"analysis_type\": \"对象\"
}
智能工具系统是MCP生态系统中的首创。它自动:
系统识别这些上下文并应用适当的增强:
意识 - 添加学术严谨性、引用、详细解释代码 - 包括实用示例、工作代码、最佳实践调试 - 关注根本原因分析和具体修复通用 - 应用全面、结构化的响应逐字 - 对于音频转录,提供逐字逐句输出偏好内部存储在./data/tool-preferences.json,并从外部存储自动迁移。
想要将这一革命性能力添加到您自己的MCP服务器吗?这里是如何操作:
// 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) {
// 检索已学习的模式
}
}
// 在您的工具执行方法中:
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;
}
研究此仓库中的这些文件:
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
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 # 文件操作
// 在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.通用;
}
src/tools/my-new-tool.js中创建工具文件BaseTool类execute方法并集成智能系统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
这是**首个真正学习和适应的