返回市场
双子星上下文MCP服务器

双子星上下文MCP服务器

作者:ogoldberg26 星标更新:2025-04-07

项目介绍

Gemini Context MCP Server

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

🚀 特性

上下文管理

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

API缓存

  • 大型提示缓存 - 高效重用大型系统提示和指令
  • 成本优化 - 减少频繁使用的上下文的令牌使用成本
  • TTL管理 - 控制缓存过期时间
  • 自动清理 - 过期的缓存自动移除

🏁 快速开始

先决条件

安装

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

# 安装依赖
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-111";
  const response = await server.processMessage(sessionId, "什么是机器学习?");
  console.log("响应:", response);
  
  // 在同一会话中提问后续问题(维持上下文)
  const followUp = await server.processMessage(sessionId, "有哪些流行算法?");
  console.log("后续问题:", 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(
  '技术支持系统',
  '您是一家软件公司的技术支持助手...',
  7200 // 2小时TTL
);

// 使用缓存生成内容
const response = await server.generateWithCache(
  cacheName,
  '如何重置我的密码?'
);

// 完成后清理
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