McpServer について
McpServer は、Ollama のモデルと書籍管理 API をつなぐ .NET 製 MCP サーバーです。HTTP ツールを通じて書籍を管理し、モデルの応答を生成する AI アプリケーション向けです。
主な機能
- 01タイトルまたは著者で書籍を検索
- 02書籍データの作成と更新
- 03Ollama モデルの一覧表示
- 04Ollama による応答生成
- 05サービス間の接続確認
活用シーン
- 01タイトルや著者から書籍を検索
- 02ツール経由で書籍データを追加・編集
- 03利用可能な Ollama モデルでテキストを生成
MCP 対応
MCP を実装し、HTTP API でツール一覧の取得と実行を提供します。書籍 API と Ollama に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
McpServer
AI モデルとの連携と書籍管理のための、Model Context Protocol(MCP)実装サーバーです。
概要
McpServer は、Ollama の AI モデルと書籍管理 API を連携させるための包括的なソリューションです。このプロジェクトでは MCP(Model Context Protocol)プロトコルを実装し、API 経由でツールを実行するための HTTP インターフェースを提供します。
このシステムは、次の 3 つの主要なコンポーネントで構成されています。
- McpServer:.NET による MCP プロトコルの実装
- Livros API:書籍データを管理する API
- Ollama:AI モデルを実行するサービス
システム要件
- Docker と Docker Compose
- .NET 9.0(開発用)
- 8GB 以上の RAM(大規模な AI モデルには 16GB を推奨)
- 10GB のディスク容量
インストールと実行
方法 1:Docker Compose を使用する(推奨)
-
リポジトリをクローンします。
git clone https://github.com/Adriano-Severino/McpServer.git cd McpServer -
Docker Compose を使用してシステムを実行します。
docker-compose up -d -
すべてのサービスが稼働していることを確認します。
docker-compose ps
方法 2:ローカルで実行する(開発用)
-
リポジトリをクローンします。
git clone https://github.com/Adriano-Severino/McpServer.git cd McpServer -
Ollama をローカルまたは Docker 経由で実行します。
docker run -d -p 11434:11434 -v ollama_data:/root/.ollama --name ollama ollama/ollama -
Livros API を実行します。
cd Livros dotnet run -
McpServer の環境変数を設定します。
set OLLAMA_BASE_URL=http://localhost:11434 set API_BASE_ADDRESS=http://localhost:5000/api/ -
McpServer を実行します。
cd McpServer dotnet run
システムの使用方法
システムが起動したら、次のエンドポイントにアクセスできます。
API エンドポイント
-
MCP サーバー:http://localhost:5500
- ツール一覧:http://localhost:5500/api/tools
- OpenAPI ドキュメント:http://localhost:5500/api/openapi.json
- ツールの実行:http://localhost:5500/api/execute (POST)
-
Livros API:http://localhost:5000
- 書籍管理用の REST API
Open WebUI との連携
Open WebUI と連携するには、次の手順に従います。
-
Open WebUI を起動します(docker-compose 全体を使用していない場合)。
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://localhost:11434 -e MCP_SERVER_URL=http://localhost:5500 ghcr.io/open-webui/open-webui:cuda -
http://localhost:3000 で Open WebUI にアクセスします。
-
MCP Server への接続を設定します。
利用可能なツール
MCP Server は次のツールを提供します。
書籍管理
- ObterAsync:タイトルによる任意の絞り込みで書籍を検索
- ObterPorAutor:著者で書籍を検索
- CadastrarAsync:新しい書籍を作成・登録
- AtualizarAsync:既存の書籍データを更新
Ollama との連携
- ListModels:Ollama で利用可能なモデルを一覧表示
- GenerateResponse:Ollama のモデルを使って応答を生成
システムユーティリティ
- VerificarConectividade:コンポーネント間の接続を確認
- ExibirConfiguracao:MCP Server の接続設定を表示
使用例
例 1:書籍の一覧表示
// POST para http://localhost:5500/api/execute
{
"tool": "ObterAsync",
"parameters": {
"titulo": "O Senhor dos Anéis"
}
}
例 2:書籍の登録
// POST para http://localhost:5500/api/execute
{
"tool": "CadastrarAsync",
"parameters": {
"livro": {
"titulo": "O Hobbit",
"autor": "J.R.R. Tolkien",
"anoPublicacao": 1937,
"genero": "Fantasia"
}
}
}
例 3:Ollama による応答の生成
// POST para http://localhost:5500/api/execute
{
"tool": "GenerateResponse",
"parameters": {
"model": "llama3",
"prompt": "Escreva um resumo sobre O Senhor dos Anéis"
}
}
設定
環境変数
- OLLAMA_BASE_URL:Ollama サービスのベース URL(既定値:http://ollama:11434)
- API_BASE_ADDRESS:Livros API のベースアドレス(既定値:http://livros-api:5000/api/)
トラブルシューティング
接続の問題
サービス間の接続に問題がある場合は、次の手順をお試しください。
-
すべてのコンテナーが実行中であることを確認します。
docker-compose ps -
接続確認ツールを使用します。
// POST para http://localhost:5500/api/execute { "tool": "VerificarConectividade", "parameters": {} } -
コンテナーのログを確認します。
docker-compose logs mcpserver docker-compose logs livros-api docker-compose logs ollama
Ollama モデルの問題
モデルが読み込まれない場合は、次の手順をお試しください。
- Ollama が実行中であることを確認します。
- Ollama でモデルが利用可能であることを確認します。
docker exec -it ollama ollama list - 必要に応じてモデルをダウンロードします。
docker exec -it ollama ollama pull llama3
システムアーキテクチャ
┌─────────────┐ ┌──────────────┐ ┌───────────┐
│ Open WebUI │────►│ MCP Server │────►│ Ollama │
└─────────────┘ └──────────────┘ └───────────┘
│
▼
┌──────────────┐
│ Livros API │
└──────────────┘
開発
プロジェクトに貢献するには、次の手順に従います。
- リポジトリをフォークします。
- 機能用のブランチを作成します(
git checkout -b feature/nome-da-feature)。 - 変更をコミットします(
git commit -am 'Adiciona funcionalidade X')。 - ブランチにプッシュします(
git push origin feature/nome-da-feature)。 - Pull Request を作成します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。