一个强大的MCP(模型上下文协议)服务器实现,利用了Gemini的能力进行上下文管理和缓存。该服务器最大限度地发挥了Gemini 2M令牌上下文窗口的价值,并提供了高效缓存大型上下文的工具。
# 克隆仓库
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文档中的MCP客户端配置指南。
使用我们的简化客户端安装命令:
# 安装并配置Claude Desktop
npm run install:claude
# 安装并配置Cursor
npm run install:cursor
# 安装并配置VS Code
npm run install:vscode
每个命令都会设置适当的配置文件,并提供完成集成的说明。
启动服务器:
node dist/mcp-server.js
使用提供的测试脚本进行交互:
# 测试基本上下文管理
node test-gemini-context.js
# 测试缓存特性
node test-gemini-api-cache.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或其他增强型AI开发环境兼容。
上下文管理工具:
generate_text - 使用上下文生成文本get_context - 获取会话的当前上下文clear_context - 清理会话上下文add_context - 添加特定的上下文条目search_context - 使用语义查找相关上下文缓存工具:
mcp_gemini_context_create_cache - 为大型上下文创建缓存mcp_gemini_context_generate_with_cache - 使用缓存的上下文生成mcp_gemini_context_list_caches - 列出所有可用的缓存mcp_gemini_context_update_cache_ttl - 更新缓存TTLmcp_gemini_context_delete_cache - 删除缓存当与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
MIT