Anthropic Model Context Protocol (MCP) Server with Ollama Integration について
Anthropic互換のMCPサーバーとミドルウェアを組み合わせ、推論リクエストをOllamaとGemma3:4bに送ります。MCPのコンテキスト機能とローカルモデル推論を併用し、SQLiteに会話コンテキストを保存したいユーザー向けです。
主な機能
- 01コンテキスト管理用のMCPツール
- 02会話履歴リソースの提供
- 03標準プロンプトテンプレート
- 04Ollama推論に接続するミドルウェア
- 05SQLiteによる会話コンテキスト保存
活用シーン
- 01Ollama経由でGemma3:4bを使って推論
- 02会話履歴をMCPクライアントに公開
- 03セッション中のコンテキストを保存
MCP 対応
MCPを通じてツール、会話履歴リソース、プロンプトテンプレートを提供します。ミドルウェアは推論リクエストをOllamaに接続し、会話コンテキストをサーバーに保存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Ollama 連携機能を備えた Anthropic Model Context Protocol(MCP)サーバー
Anthropic 互換の Model Context Protocol(MCP)サーバーと、推論に Ollama/Gemma の LLM を使用するハイブリッドアーキテクチャです。この実装はオープンソースモデルを使用しながら、公式の Model Context Protocol 仕様に準拠しています。
概要
このプロジェクトでは、公式の MCP 仕様に準拠した Anthropic 互換の MCP サーバーと、クライアントと Ollama の Gemma モデル間の通信を処理するミドルウェアを実装しています。
アーキテクチャ
┌───────────┐ ┌──────────────┐ ┌────────────────────────┐
│ Client │────▶│ Middleware │────▶│ Anthropic MCP Server │
│ │◀────│ │◀────│ (Claude MCP Protocol) │
└───────────┘ └──────┬───────┘ └────────────────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌────────────────────┐
│ Ollama │ │ SQLite Database │
│ (Gemma3:4b) │ │ (Context Storage) │
└─────────────┘ └────────────────────┘
コンポーネント
- MCP サーバー:ポート 3000 で Anthropic MCP プロトコルを実装します
- ミドルウェア:クライアントと Ollama 間の通信を処理します
- Ollama:推論のために Gemma3:4b モデルを実行します
- データベース:会話コンテキストを保存する SQLite データベース
機能
-
MCP プロトコルの機能:
- ツール:コンテキスト管理用
- リソース:会話履歴を公開します
- プロンプト:標準的なプロンプトテンプレート
-
モデルのサポート:
- Claude Desktop またはその他の MCP クライアントを介して Claude モデルを使用できます
- Model Context Protocol をサポートするあらゆるクライアントと互換性があります
MCP プロトコルへの準拠
この実装は、Anthropic が公開した公式の Model Context Protocol(MCP)仕様に厳密に準拠しています。
-
JSON-RPC 2.0 プロトコル:すべての通信に標準の JSON-RPC 2.0 形式を使用し、他の MCP クライアントおよびサーバーとの互換性を確保します。
-
プロトコルの初期化:適切なプロトコルバージョンのネゴシエーション(2024-03-26)とクライアント機能の宣言を含む
/initializeエンドポイントを正しく実装しています。 -
ツールインターフェース:必要なすべてのアノテーションを含むツール呼び出しプロトコルを完全に実装しています。
readOnlyHint:ツールが状態を変更するかどうかを示しますdestructiveHint:破壊的な操作の可能性がある場合にフラグを設定しますidempotentHint:安全に再試行できる操作を示します
-
リソース管理:適切な URI と MIME タイプを使用して会話履歴を公開するリソースプロトコルを実装しています。
-
プロンプトテンプレート:一般的な操作向けに、MCP 仕様に準拠した標準的なプロンプトテンプレートを提供します。
-
エラー処理:プロトコルで規定されている標準化されたエラーコードとメッセージを含む、適切なエラーレスポンスを実装しています。
-
セキュリティ:認証と認可に関する MCP 仕様のセキュリティ推奨事項に従っています。
-
バージョン管理:前方互換性を確保するため、プロトコルのバージョン管理を適切に処理します。
この実装は、Claude Desktop、VS Code 拡張機能、その他の公式仕様に準拠したツールを含む、あらゆる MCP クライアントと完全に互換性を持つよう設計されています。
API エンドポイント
MCP サーバー(ポート 3000)
MCP サーバーは公式の MCP プロトコルエンドポイントを実装しています。
- ツール:
/tools/list、/tools/call - リソース:
/resources/list、/resources/read - プロンプト:
/prompts/list、/prompts/get - コア:
/initialize
ミドルウェア(ポート 8080)
POST /infer:コンテキストを MCP サーバーに保存しながら、ユーザーメッセージを Ollama/Gemma に送信しますGET /health:ミドルウェアと接続先の状態を確認します
要件
- Python 3.10+
- Docker と Docker Compose
- Gemma3:4b モデルをインストールした Ollama
インストール
セットアップスクリプトを使用する場合
chmod +x setup.sh
./setup.sh
セットアップスクリプトでは、次の処理が実行されます。
- Docker がインストールされているか確認します
- Ollama がインストールされているか確認し、必要に応じて Gemma モデルをダウンロードします
- Docker コンテナをビルドして起動します
手動でセットアップする場合
# Clone the repository
git clone <repository-url>
cd simple-mcp-server
# Make sure Ollama is running with Gemma model
ollama pull gemma3:4b
# Build and run with Docker
docker-compose build
docker-compose up -d
使用例
Ollama/Gemma とミドルウェアを使用する
ミドルウェアを介してシステムを利用できます。推論には Ollama/Gemma が使用され、会話コンテキストは MCP サーバーに保存されます。
# Start a new conversation
curl -X POST http://localhost:8080/infer \
-H "Content-Type: application/json" \
-d '{"session_id": "user123", "content": "Hello, how are you today?"}'
# Continue the conversation with the same session ID
curl -X POST http://localhost:8080/infer \
-H "Content-Type: application/json" \
-d '{"session_id": "user123", "content": "What's the capital of France?"}'
MCP サーバーを直接使用する
ポート 3000 の MCP サーバーは、次のような任意の MCP クライアントで使用できます。
- Claude Desktop App
- VS Code GitHub Copilot
- Cursor
- その他、MCP クライアントページに掲載されている多くのツール
Docker の設定
このプロジェクトでは、Docker を使用して次の 2 つの主要コンポーネントをコンテナ化しています。
- MCP Server Container:ポート 3000 で Anthropic MCP プロトコルを提供します。
- Middleware Container:ポート 8080 で Gemma モデルの推論を行うために Ollama に接続します。
テスト
インストールをテストするには、次の手順に従ってください。
# Run the included test script
python test_system.py
# Or use the shell script
./test.sh
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。