Skip to main content
Glama
ogoldberg

Gemini Context MCP Server

by ogoldberg

Gemini コンテキスト MCP サーバー

Geminiのコンテキスト管理とキャッシュ機能を活用する強力なMCP(Model Context Protocol)サーバー実装。このサーバーは、Geminiの2Mトークンコンテキストウィンドウの価値を最大限に高めるとともに、大規模なコンテキストを効率的にキャッシュするためのツールを提供します。

🚀 機能

コンテキスト管理

  • 最大200万トークンのコンテキストウィンドウをサポート- Geminiの広範なコンテキスト機能を活用

  • セッションベースの会話- 複数のインタラクションにわたって会話状態を維持する

  • スマートなコンテキスト追跡- メタデータを使用してコンテキストを追加、取得、検索します

  • セマンティック検索- 意味的類似性を使用して関連するコンテキストを見つける

  • 自動コンテキストクリーンアップ- セッションとコンテキストは自動的に期限切れになります

APIキャッシュ

  • 大規模なプロンプトのキャッシュ- 大規模なシステムプロンプトと指示を効率的に再利用します

  • コスト最適化- 頻繁に使用されるコンテキストのトークン使用コストを削減

  • TTL管理- キャッシュの有効期限を制御する

  • 自動クリーンアップ- 期限切れのキャッシュは自動的に削除されます

Related MCP server: MCP Gemini Server

🏁 クイックスタート

前提条件

インストール

# Clone the repository
git clone https://github.com/ogoldberg/gemini-context-mcp-server
cd gemini-context-mcp-server

# Install dependencies
npm install

# Copy environment variables example
cp .env.example .env

# Add your Gemini API key to .env file
# GEMINI_API_KEY=your_api_key_here

基本的な使い方

# 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) を実装しており、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と一緒に使用する場合は、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のマニフェストを調べてください。

  • リポジトリ内のサンプルスクリプトの使用パターンを確認する

📋 今後の改善点

  • コンテキストとキャッシュのデータベース永続性

  • キャッシュサイズの管理と削除ポリシー

  • ベクトルベースのセマンティック検索

  • 分析と指標の追跡

  • ベクターストアとの統合

  • コンテキスト管理のためのバッチ操作

  • ハイブリッドキャッシュ戦略

  • 自動プロンプト最適化

📄 ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ogoldberg/gemini-context-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server