Gemini MCP 服务器

提供对Gemini套件访问的MCP服务器,支持多种模型、文件上传、批量处理等功能。

  • by mintmcqueen
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mintmcqueen/gemini-mcp

使用说明

Gemini MCP服务器

提供对Gemini Suite访问的MCP服务器。

✨ 特性

  • 支持1.5到2.5 pro
  • 纳米香蕉
  • 嵌入
  • 文件上传
  • 批处理(NLP和嵌入)

🚀 快速开始

选项1:NPX(无需安装)

claude mcp add gemini -s user --env GEMINI_API_KEY=YOUR_KEY_HERE -- npx -y @mintmcqueen/gemini-mcp@latest

选项2:全局安装

# Install globally
npm install -g @mintmcqueen/gemini-mcp

# Add to Claude Code
claude mcp add gemini -s user --env GEMINI_API_KEY=YOUR_KEY_HERE -- gemini-mcp

选项3:本地项目安装

# Install in your project
npm install @mintmcqueen/gemini-mcp

# Add to Claude Code (adjust path as needed)
claude mcp add gemini -s project --env GEMINI_API_KEY=YOUR_KEY_HERE -- node node_modules/@mintmcqueen/gemini-mcp/build/index.js

在任何安装方法之后,重新启动Claude Code,您就可以使用Gemini了。

外壳环境

  • 文件: ~/.zshrc 或 ~/.bashrc
  • 格式: export GEMINI_API_KEY="your-key-here"

用法

MCP工具

服务器提供以下工具:

chat

向Gemini发送带有可选文件附件的消息。

参数:

  • message (必填):要发送的消息
  • model (可选):使用型号(gemini-2.5-pro、gemini-2.5-flash、gemini-2,5-lash-lite)
  • files (可选):包含base64编码数据的文件数组
  • temperature (可选):控制随机性(0.0-2.0)
  • maxTokens (可选):最大响应令牌数
  • conversationId (可选):继续现有对话

start_conversation

开始新的对话会话。

参数:

  • id (可选):自定义对话ID

clear_conversation

清空对话会话。

参数:

  • id (必填):要清除的对话ID

generate_images

根据文本提示生成图像或使用Gemini 2.5 Flash Image模型编辑现有图像。

参数:

  • prompt (必填):生成或编辑指令的图像文本描述
  • aspectRatio (可选):图像宽高比- 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (默认值: 1:1)
  • numImages (可选):要生成的图像数量,1-4(默认值: 1).注:按顺序调用API,每张图像约10-15秒。
  • inputImageUri (可选):上传文件中用于图像编辑的文件URI(文本到图像生成时省略)
  • outputDir (可选):保存生成图像的目录(默认: ./generated-images)
  • temperature (可选):控制随机性(0.0-2.0,默认值:1.0)

退货:

  • 带有文件路径和base64数据的生成图像数组
  • 代币使用情况(每张图片约1290-1300个代币)
  • 所有图像都包含SynthID水印

性能说明: Gemini API为每个请求生成一个图像。当 numImages > 1,该工具进行多个顺序的API调用以生成所需数量的图像。每张图片大约需要10-15秒。

文本到图像示例:

generate_images({
  prompt: "A photorealistic coffee cup on a wooden table",
  aspectRatio: "16:9",
  numImages: 2
})
// Generates 2 images saved to ./generated-images/

图像编辑示例:

// First, upload the image to edit
upload_file({ filePath: "./photo.jpg" })
// Returns: { uri: "files/abc123" }

// Then edit it
generate_images({
  prompt: "Add a wizard hat to the subject",
  inputImageUri: "files/abc123"
})
// Generates edited image saved to ./generated-images/

🆕 批量API工具(v0.3.0)

异步处理大规模任务 50%成本 大约24小时的周转时间。

内容生成

简单(自动):

// One-call solution: Ingest → Upload → Create → Poll → Download
batch_process({
  inputFile: "prompts.csv",  // CSV, JSON, TXT, or MD
  model: "gemini-2.5-flash"
})
// Returns: Complete results with metadata

高级(手动控制):

// 1. Convert your file to JSONL
batch_ingest_content({ inputFile: "prompts.csv" })
// Returns: { outputFile: "prompts.jsonl", requestCount: 100 }

// 2. Upload JSONL
upload_file({ filePath: "prompts.jsonl" })
// Returns: { uri: "files/abc123" }

// 3. Create batch job
batch_create({
  inputFileUri: "files/abc123",
  model: "gemini-2.5-flash"
})
// Returns: { batchName: "batches/xyz789" }

// 4. Monitor progress
batch_get_status({
  batchName: "batches/xyz789",
  autoPoll: true  // Wait until complete
})
// Returns: { state: "SUCCEEDED", stats: {...} }

// 5. Download results
batch_download_results({ batchName: "batches/xyz789" })
// Returns: { results: [...], outputFile: "results.json" }

嵌入

简单(自动):

// One-call solution with automatic task type prompting
batch_process_embeddings({
  inputFile: "documents.txt",
  // taskType optional - will prompt if not provided
})
// Returns: 1536-dimensional embeddings array

高级(手动控制):

// 1. Select task type (if unsure)
batch_query_task_type({
  context: "Building a search engine"
})
// Returns: { selectedTaskType: "RETRIEVAL_DOCUMENT", recommendation: {...} }

// 2. Ingest content for embeddings
batch_ingest_embeddings({ inputFile: "documents.txt" })
// Returns: { outputFile: "documents.embeddings.jsonl" }

// 3-5. Same as content generation workflow
// 6. Results contain 1536-dimensional vectors

任务类型(8个选项):

  • SEMANTIC_SIMILARITY -比较文本相似性
  • CLASSIFICATION -对内容进行分类
  • CLUSTERING -将类似项目分组
  • RETRIEVAL_DOCUMENT -构建搜索索引
  • RETRIEVAL_QUERY -搜索查询
  • CODE_RETRIEVAL_QUERY -代码搜索
  • QUESTION_ANSWERING -问答系统
  • FACT_VERIFICATION -事实核查

作业管理

// Cancel running job
batch_cancel({ batchName: "batches/xyz789" })

// Delete completed job
batch_delete({ batchName: "batches/xyz789" })

支持的输入格式:

  • CSV(将行转换为请求)
  • JSON(将对象包装为请求)
  • TXT(根据请求拆分行)
  • MD(根据要求标记部分)
  • JSONL(即用型)

MCP资源

gemini://models/available

有关可用Gemini型号及其功能的信息。

gemini://conversations/active

包含元数据的活动对话会话列表。

🔧 发展

npm run build        # Build TypeScript
npm run watch        # Watch mode
npm run dev          # Build + auto-restart
npm run inspector    # Debug with MCP Inspector

连接失败

如果Claude Code无法连接:

  1. 验证您的API密钥是否正确
  2. 检查命令路径是否正确(对于本地安装)
  3. 配置更改后重新启动Claude代码

🔒 安全

  • API密钥从不记录或回显
  • 使用600权限创建的文件(仅限用户读/写)
  • 按键输入时屏蔽输入
  • 存储前的真实API验证

🤝 贡献

欢迎投稿!该包装设计用于生产准备,包括:

  • 完整的TypeScript类型
  • 全面的错误处理
  • 自动重试逻辑
  • 真正的API验证

📄 许可证

MIT-见许可证文件

🙋 支持

  • MCP协议: https://modelcontextprotocol.io
  • Gemini API文件: https://ai.google.dev/docs