mcpField
A
Anthropic Model Context Protocol (MCP) Server with Ollama Integration

Anthropic Model Context Protocol (MCP) Server with Ollama Integration

ローカル
github.com/jorgesandovalAI・エージェント077 週間前に更新

Anthropic Model Context Protocol (MCP) Server with Ollama Integration について

Anthropic互換のMCPサーバーとミドルウェアを組み合わせ、推論リクエストをOllamaとGemma3:4bに送ります。MCPのコンテキスト機能とローカルモデル推論を併用し、SQLiteに会話コンテキストを保存したいユーザー向けです。

主な機能

  1. 01コンテキスト管理用のMCPツール
  2. 02会話履歴リソースの提供
  3. 03標準プロンプトテンプレート
  4. 04Ollama推論に接続するミドルウェア
  5. 05SQLiteによる会話コンテキスト保存

活用シーン

  1. 01Ollama経由でGemma3:4bを使って推論
  2. 02会話履歴をMCPクライアントに公開
  3. 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)仕様に厳密に準拠しています。

  1. JSON-RPC 2.0 プロトコル:すべての通信に標準の JSON-RPC 2.0 形式を使用し、他の MCP クライアントおよびサーバーとの互換性を確保します。

  2. プロトコルの初期化:適切なプロトコルバージョンのネゴシエーション(2024-03-26)とクライアント機能の宣言を含む /initialize エンドポイントを正しく実装しています。

  3. ツールインターフェース:必要なすべてのアノテーションを含むツール呼び出しプロトコルを完全に実装しています。

    • readOnlyHint:ツールが状態を変更するかどうかを示します
    • destructiveHint:破壊的な操作の可能性がある場合にフラグを設定します
    • idempotentHint:安全に再試行できる操作を示します
  4. リソース管理:適切な URI と MIME タイプを使用して会話履歴を公開するリソースプロトコルを実装しています。

  5. プロンプトテンプレート:一般的な操作向けに、MCP 仕様に準拠した標準的なプロンプトテンプレートを提供します。

  6. エラー処理:プロトコルで規定されている標準化されたエラーコードとメッセージを含む、適切なエラーレスポンスを実装しています。

  7. セキュリティ:認証と認可に関する MCP 仕様のセキュリティ推奨事項に従っています。

  8. バージョン管理:前方互換性を確保するため、プロトコルのバージョン管理を適切に処理します。

この実装は、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

セットアップスクリプトでは、次の処理が実行されます。

  1. Docker がインストールされているか確認します
  2. Ollama がインストールされているか確認し、必要に応じて Gemma モデルをダウンロードします
  3. 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 クライアントで使用できます。

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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。