Skip to main content
Glama
ogoldberg

Gemini Context MCP Server

by ogoldberg

Gemini Context MCP 서버

Gemini의 컨텍스트 관리 및 캐싱 기능을 활용하는 강력한 MCP(Model Context Protocol) 서버 구현입니다. 이 서버는 Gemini의 2M 토큰 컨텍스트 윈도우의 가치를 극대화하는 동시에 대규모 컨텍스트의 효율적인 캐싱을 위한 도구를 제공합니다.

🚀 특징

컨텍스트 관리

  • 최대 2M 토큰 컨텍스트 창 지원 - Gemini의 광범위한 컨텍스트 기능 활용

  • 세션 기반 대화 - 여러 상호 작용에서 대화 상태 유지

  • 스마트 컨텍스트 추적 - 메타데이터를 사용하여 컨텍스트 추가, 검색 및 검색

  • 의미 검색 - 의미 유사성을 사용하여 관련 컨텍스트 찾기

  • 자동 컨텍스트 정리 - 세션 및 컨텍스트가 자동으로 만료됩니다.

API 캐싱

  • 대용량 프롬프트 캐싱 - 대용량 시스템 프롬프트 및 지침을 효율적으로 재사용

  • 비용 최적화 - 자주 사용되는 컨텍스트에 대한 토큰 사용 비용 절감

  • TTL 관리 - 캐시 만료 시간 제어

  • 자동 정리 - 만료된 캐시는 자동으로 제거됩니다.

Related MCP server: Simple Memory Extension MCP Server

🏁 빠른 시작

필수 조건

설치

지엑스피1

기본 사용법

# Build the server
npm run build

# Start the server
node dist/mcp-server.js

MCP 클라이언트 통합

이 MCP 서버는 다양한 MCP 호환 클라이언트와 통합될 수 있습니다.

  • Claude Desktop - Claude 설정에서 MCP 서버로 추가

  • 커서 - 커서의 AI/MCP 설정에서 구성

  • VS Code - MCP 호환 확장 프로그램과 함께 사용

각 클라이언트와의 자세한 통합 지침은 MCP 설명서의 MCP 클라이언트 구성 가이드를 참조하세요.

빠른 클라이언트 설정

간소화된 클라이언트 설치 명령을 사용하세요.

# Install and configure for Claude Desktop
npm run install:claude

# Install and configure for Cursor
npm run install:cursor

# Install and configure for VS Code
npm run install:vscode

각 명령은 적절한 구성 파일을 설정하고 통합을 완료하기 위한 지침을 제공합니다.

💻 사용 예시

초보자를 위한

서버를 직접 사용하는 경우:

  1. 서버를 시작합니다:

    node dist/mcp-server.js
  2. 제공된 테스트 스크립트를 사용하여 상호 작용하세요.

    # Test basic context management
    node test-gemini-context.js
    
    # Test caching features
    node test-gemini-api-cache.js

Node.js 애플리케이션에서 사용:

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

async function main() {
  // Create server instance
  const server = new GeminiContextServer();
  
  // Generate a response in a session
  const sessionId = "user-123";
  const response = await server.processMessage(sessionId, "What is machine learning?");
  console.log("Response:", response);
  
  // Ask a follow-up in the same session (maintains context)
  const followUp = await server.processMessage(sessionId, "What are popular algorithms?");
  console.log("Follow-up:", followUp);
}

main();

전문 사용자를 위한

사용자 정의 구성 사용:

// Custom configuration
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);

비용 최적화를 위한 캐싱 시스템 사용:

// Create a cache for large system instructions
const cacheName = await server.createCache(
  'Technical Support System',
  'You are a technical support assistant for a software company...',
  7200 // 2 hour TTL
);

// Generate content using the cache
const response = await server.generateWithCache(
  cacheName,
  'How do I reset my password?'
);

// Clean up when done
await server.deleteCache(cacheName);

🔌 MCP 도구(커서 등)와 함께 사용

이 서버는 MCP(모델 컨텍스트 프로토콜)를 구현하여 커서나 기타 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 와 함께 사용하면 MCP 구성을 통해 연결할 수 있습니다.

{
  "name": "gemini-context",
  "version": "1.0.0",
  "description": "Gemini context management and caching MCP server",
  "entrypoint": "dist/mcp-server.js",
  "capabilities": {
    "tools": true
  },
  "manifestPath": "mcp-manifest.json",
  "documentation": "README-MCP.md"
}

MCP 도구에 대한 자세한 사용 지침은 README-MCP.md를 참조하세요.

⚙️ 구성 옵션

환경 변수

다음 옵션을 사용하여 .env 파일을 만듭니다.

# Required
GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-2.0-flash

# Optional - Model Settings
GEMINI_TEMPERATURE=0.7
GEMINI_TOP_K=40
GEMINI_TOP_P=0.9
GEMINI_MAX_OUTPUT_TOKENS=2097152

# Optional - Server Settings
MAX_SESSIONS=50
SESSION_TIMEOUT_MINUTES=120
MAX_MESSAGE_LENGTH=1000000
MAX_TOKENS_PER_SESSION=2097152
DEBUG=false

🧪 개발

# Build TypeScript files
npm run build

# Run in development mode with auto-reload
npm run dev

# Run tests
npm test

📚 추가 자료

  • MCP 관련 사용법은 README-MCP.md를 참조하세요.

  • 사용 가능한 도구를 이해하려면 mcp-manifest.json 의 매니페스트를 탐색하세요.

  • 사용 패턴을 알아보려면 저장소의 예제 스크립트를 확인하세요.

📋 향후 개선 사항

  • 컨텍스트 및 캐시에 대한 데이터베이스 지속성

  • 캐시 크기 관리 및 제거 정책

  • 벡터 기반 의미 검색

  • 분석 및 메트릭 추적

  • 벡터 저장소와의 통합

  • 컨텍스트 관리를 위한 일괄 작업

  • 하이브리드 캐싱 전략

  • 자동 프롬프트 최적화

📄 라이센스

MIT

Related MCP Connectors

Related MCP Servers