Gemini Context MCP Server

Gemini Context MCP Server

镜子 (jìng zi)

MCP-Mirror

开发者工具
访问服务器

README

Gemini Context MCP 服务器

一个强大的 MCP (模型上下文协议) 服务器实现,利用 Gemini 的能力进行上下文管理和缓存。该服务器最大化了 Gemini 的 2M token 上下文窗口的价值,同时提供了高效缓存大型上下文的工具。

🚀 功能

上下文管理

  • 高达 2M token 的上下文窗口支持 - 利用 Gemini 广泛的上下文能力
  • 基于会话的对话 - 跨多个交互维护对话状态
  • 智能上下文跟踪 - 使用元数据添加、检索和搜索上下文
  • 语义搜索 - 使用语义相似性查找相关上下文
  • 自动上下文清理 - 会话和上下文自动过期

API 缓存

  • 大型提示缓存 - 高效地重用大型系统提示和指令
  • 成本优化 - 降低常用上下文的 token 使用成本
  • TTL 管理 - 控制缓存过期时间
  • 自动清理 - 过期的缓存自动删除

🏁 快速开始

前提条件

安装

# 克隆仓库
git clone https://github.com/ogoldberg/gemini-context-mcp-server
cd gemini-context-mcp

# 安装依赖
npm install

# 复制环境变量示例
cp .env.example .env

# 将您的 Gemini API 密钥添加到 .env 文件
# GEMINI_API_KEY=your_api_key_here

基本用法

# 构建服务器
npm run build

# 启动服务器
node dist/mcp-server.js

MCP 客户端集成

此 MCP 服务器可以与各种 MCP 兼容的客户端集成:

  • Claude Desktop - 在 Claude 设置中添加为 MCP 服务器
  • Cursor - 在 Cursor 的 AI/MCP 设置中配置
  • VS Code - 与 MCP 兼容的扩展一起使用

有关与每个客户端的详细集成说明,请参阅 MCP 文档中的 MCP 客户端配置指南

快速客户端设置

使用我们简化的客户端安装命令:

# 安装并配置 Claude Desktop
npm run install:claude

# 安装并配置 Cursor
npm run install:cursor

# 安装并配置 VS Code
npm run install:vscode

每个命令都会设置适当的配置文件,并提供完成集成的说明。

💻 使用示例

针对初学者

直接使用服务器:

  1. 启动服务器:

    node dist/mcp-server.js
    
  2. 使用提供的测试脚本进行交互:

    # 测试基本上下文管理
    node test-gemini-context.js
    
    # 测试缓存功能
    node test-gemini-api-cache.js
    

在您的 Node.js 应用程序中使用:

import { GeminiContextServer } from './src/gemini-context-server.js';

async function main() {
  // 创建服务器实例
  const server = new GeminiContextServer();
  
  // 在会话中生成响应
  const sessionId = "user-123";
  const response = await server.processMessage(sessionId, "What is machine learning?");
  console.log("Response:", response);
  
  // 在同一会话中提出后续问题(保持上下文)
  const followUp = await server.processMessage(sessionId, "What are popular algorithms?");
  console.log("Follow-up:", followUp);
}

main();

针对高级用户

使用自定义配置:

// 自定义配置
const config = {
  gemini: {
    apiKey: process.env.GEMINI_API_KEY,
    model: 'gemini-2.0-pro',
    temperature: 0.2,
    maxOutputTokens: 1024,
  },
  server: {
    sessionTimeoutMinutes: 30,
    maxTokensPerSession: 1000000
  }
};

const server = new GeminiContextServer(config);

使用缓存系统进行成本优化:

// 为大型系统指令创建缓存
const cacheName = await server.createCache(
  'Technical Support System',
  'You are a technical support assistant for a software company...',
  7200 // 2 小时 TTL
);

// 使用缓存生成内容
const response = await server.generateWithCache(
  cacheName,
  'How do I reset my password?'
);

// 完成后清理
await server.deleteCache(cacheName);

🔌 与 MCP 工具(如 Cursor)一起使用

此服务器实现了模型上下文协议 (MCP),使其与 Cursor 或其他 AI 增强的开发环境等工具兼容。

可用的 MCP 工具

  1. 上下文管理工具:

    • generate_text - 生成带有上下文的文本
    • get_context - 获取会话的当前上下文
    • clear_context - 清除会话上下文
    • add_context - 添加特定的上下文条目
    • search_context - 以语义方式查找相关上下文
  2. 缓存工具:

    • mcp_gemini_context_create_cache - 为大型上下文创建缓存
    • mcp_gemini_context_generate_with_cache - 使用缓存的上下文生成
    • mcp_gemini_context_list_caches - 列出所有可用的缓存
    • mcp_gemini_context_update_cache_ttl - 更新缓存 TTL
    • mcp_gemini_context_delete_cache - 删除缓存

与 Cursor 连接

Cursor 一起使用时,您可以通过 MCP 配置进行连接:

{
  "name": "gemini-context",
  "version": "1.0.0",
  "description": "Gemini 上下文管理和缓存 MCP 服务器",
  "entrypoint": "dist/mcp-server.js",
  "capabilities": {
    "tools": true
  },
  "manifestPath": "mcp-manifest.json",
  "documentation": "README-MCP.md"
}

有关 MCP 工具的详细使用说明,请参阅 README-MCP.md

⚙️ 配置选项

环境变量

创建一个包含以下选项的 .env 文件:

# 必需
GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-2.0-flash

# 可选 - 模型设置
GEMINI_TEMPERATURE=0.7
GEMINI_TOP_K=40
GEMINI_TOP_P=0.9
GEMINI_MAX_OUTPUT_TOKENS=2097152

# 可选 - 服务器设置
MAX_SESSIONS=50
SESSION_TIMEOUT_MINUTES=120
MAX_MESSAGE_LENGTH=1000000
MAX_TOKENS_PER_SESSION=2097152
DEBUG=false

🧪 开发

# 构建 TypeScript 文件
npm run build

# 在开发模式下运行,带有自动重新加载
npm run dev

# 运行测试
npm test

📚 进一步阅读

  • 有关 MCP 的特定用法,请参阅 README-MCP.md
  • 浏览 mcp-manifest.json 中的清单以了解可用的工具
  • 检查存储库中的示例脚本以了解使用模式

📋 未来改进

  • 上下文和缓存的数据库持久性
  • 缓存大小管理和驱逐策略
  • 基于向量的语义搜索
  • 分析和指标跟踪
  • 与向量存储集成
  • 上下文管理的批量操作
  • 混合缓存策略
  • 自动提示优化

📄 许可证

MIT

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript