Gemini Context MCP Server
Сервер Gemini Context MCP управляет контекстом и кешированием для Gemini AI. Он использует модель протокола контекста (MCP) и позволяет эффективно работать с окном контекста до 2M токенов, снижая затраты на повторную передачу больших объёмов данных.
Возможности
- Управление контекстом — до 2 млн токенов, сессионные беседы, добавление/поиск контекста с метаданными, семантический поиск, автоматическая очистка устаревших сессий.
- Кеширование API — кеширование больших промптов, управление временем жизни (TTL), автоматическое удаление просроченных кешей, экономия токенов.
Быстрый старт
Требования
- Node.js 18+
- Ключ Gemini API (получить можно здесь)
Установка
git clone https://github.com/ogoldberg/gemini-context-mcp-server
cd gemini-context-mcp
npm install
cp .env.example .env
В файле .env укажите GEMINI_API_KEY=ваш_ключ.
Запуск
npm run build
node dist/mcp-server.js
Интеграция с MCP-клиентами
Сервер совместим с любыми MCP-клиентами (Claude Desktop, Cursor, VS Code). Для быстрой настройки используйте команды:
npm run install:claude
npm run install:cursor
npm run install:vscode
Подробное руководство по настройке — в README-MCP.md.
Примеры использования
Базовый пример
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, "Что такое машинное обучение?");
console.log("Ответ:", response);
// Следующий запрос в той же сессии — контекст сохраняется
const followUp = await server.processMessage(sessionId, "Какие популярные алгоритмы?");
console.log("Уточнение:", followUp);
}
main();
Пример с кешированием больших инструкций
// Создаём кеш для системной инструкции (TTL 2 часа)
const cacheName = await server.createCache(
'Technical Support System',
'Ты — ассистент техподдержки...',
7200
);
// Генерация ответа с использованием кеша
const response = await server.generateWithCache(cacheName, 'Как сбросить пароль?');
// Удаление кеша после использования
await server.deleteCache(cacheName);
Доступные MCP-инструменты
Управление контекстом
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 — обновление TTL кеша
mcp_gemini_context_delete_cache — удаление кеша
Конфигурация
Все настройки задаются переменными окружения в .env:
| Параметр |
Описание |
GEMINI_API_KEY |
Ключ Gemini API (обязательно) |
GEMINI_MODEL |
Модель, например gemini-2.0-flash |
GEMINI_TEMPERATURE |
Температура (по умолч. 0.7) |
GEMINI_TOP_K |
Top-K (по умолч. 40) |
GEMINI_TOP_P |
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 |
Включить отладку (true/false) |
Пример кастомной конфигурации в коде:
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);
Разработка
npm run build # сборка TypeScript
npm run dev # режим разработки с автоперезагрузкой
npm test # запуск тестов
Скрипты для тестирования:
node test-gemini-context.js — проверка управления контекстом
node test-gemini-api-cache.js — проверка кеширования
Дополнительные материалы
Планы по улучшению
- Персистентность контекста и кешей в БД
- Управление размером кеша и политики вытеснения
- Векторный семантический поиск
- Аналитика и метрики
- Интеграция с векторными хранилищами
- Пакетные операции для управления контекстом
- Гибридные стратегии кеширования
- Автоматическая оптимизация промптов
Лицензия
MIT
Комментарии
Комментариев пока нет. Будьте первым.