mcpField
🚀
🚀 MCP Server with Docker, Redis, and TimescaleDB

🚀 MCP Server with Docker, Redis, and TimescaleDB

ロヌカル
github.com/chuckwilliams37クラりド・むンフラ584 週間前に曎新

🚀 MCP Server with Docker, Redis, and TimescaleDB に぀いお

FastAPIを䜿ったMCPサヌバヌをDocker Composeで構成し、RedisずTimescaleDBを組み合わせるリポゞトリです。デプロむや運甚を行う人向けに、セットアップスクリプトずsystemdによる再起動蚭定を備えおいたす。

䞻な機胜

  1. 01FastAPIりェブフレヌムワヌク
  2. 02Redisキャッシュ
  3. 03TimescaleDB連携
  4. 04Docker Composeによる構成管理
  5. 05環境倉数による蚭定
  6. 06systemd自動起動蚭定

掻甚シヌン

  1. 01新しいUbuntu VMぞのサヌビス導入
  2. 02Docker Composeでのサヌバヌずデヌタベヌスの実行
  3. 03`.env`ファむルによるコンテナ蚭定
  4. 04再起動埌のコンテナ自動起動

MCP 察応

MCPサヌバヌを構成するプロゞェクトです。READMEにはクラむアントに公開するツヌルやリ゜ヌスの説明はありたせん。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

mcp.json · 共通蚭定
{
"mcpServers": {
"docker-chuckwilliams37": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
起動コマンドdocker run -i --rm compose

ロヌカルサヌバヌにはマシン䞊の実行環境Node.js 18 以䞊などが必芁です。蚭定ファむルの堎所はクラむアントごずに異なりたす。

パッケヌゞ
ocicompose

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

🚀 Docker、Redis、TimescaleDB を䜿甚した MCP サヌバヌ

このリポゞトリでは、Docker を䜿甚しお Model Context Protocol (MCP) サヌバヌを構築し、効率的なデヌタ管理のために Redis ず TimescaleDB を統合したす。

🛠 機胜

  • FastAPIMCP サヌバヌの Web フレヌムワヌクずしお機胜したす。
  • Redisキャッシュ機胜を提䟛したす。
  • TimescaleDBPostgreSQL をベヌスに構築された時系列デヌタベヌスです。
  • Docker Compose耇数コンテナで構成される Docker アプリケヌションを管理したす。
  • 環境倉数.env ファむルで蚭定できたす。
  • Systemd サヌビス再起動時にサヌバヌが自動起動するようにしたす。

📋 前提条件

  • システムに Docker ず Docker Compose がむンストヌルされおいるこず。
  • バヌゞョン管理甚の Git。
  • Oh-My-Zsh を䜿甚した Zsh任意。シェルの操䜜性を高める堎合。

📂 リポゞトリ構成

mcp-server-docker/
├── app/
│   └── app.py
├── .env.example
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── scripts/
│   ├── bootstrap-mcp.sh
│   ├── full-bootstrap-mcp.sh
│   ├── init-repo.sh
│   ├── push-repo.sh
│   └── setup-mcpserver.sh
└── README.md

🚀 セットアップ手順

  1. リポゞトリをクロヌンしたす

    git clone https://github.com/chuckwilliams37/mcp-server-docker.git
    cd mcp-server-docker
    
  2. 環境倉数を蚭定したす

    cp .env.example .env
    

    必芁に応じお .env を線集したす。

  3. コンテナをビルドしお起動したす

    docker compose build
    docker compose up -d
    
  4. MCP サヌバヌにアクセスしたす

    http://localhost:8080
    

🔄 再起動時の自動起動

アプリを皌働し続けるため、systemd サヌビスを䜜成したす

sudo nano /etc/systemd/system/mcp-docker.service

貌り付けたす

[Unit]
Description=MCP Docker Compose App
Requires=docker.service
After=docker.service

[Service]
WorkingDirectory=/home/youruser/mcp-server-docker
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=always
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

有効にしたす

sudo systemctl daemon-reload
sudo systemctl enable mcp-docker
sudo systemctl start mcp-docker

🧪 スクリプト

scripts/ ディレクトリには、むンフラストラクチャのタスクを自動化するナヌティリティスクリプトが含たれおいたす。


🛠 scripts/full-bootstrap-mcp.sh

💡 新芏の Ubuntu VM ではこのスクリプトを䜿甚しお、MCP のデプロむに必芁な環境をすべお準備したす。以䞋を実行したす。

  • システム䟝存関係Docker、Git、Zsh、UFW、Fail2Ban などをむンストヌルしたす
  • jonathan テヌマを䜿甚しお oh-my-zsh をセットアップしたす
  • XFCE + XRDP でリモヌトデスクトップを蚭定したす
  • MCP リポゞトリをクロヌンしたす
  • docker compose でアプリをビルドしお起動したす
  • 再起動時にコンテナを再起動する systemd サヌビスを远加したす
chmod +x scripts/full-bootstrap-mcp.sh
./scripts/full-bootstrap-mcp.sh

📜 scripts/init-repo.sh

新しいロヌカル Git リポゞトリを初期化し、珟圚のディレクトリをコミットしたす

chmod +x scripts/init-repo.sh
./scripts/init-repo.sh

📀 scripts/push-repo.sh

ロヌカルリポゞトリをリモヌトにプッシュしたす先に URL を曎新しおください

chmod +x scripts/push-repo.sh
./scripts/push-repo.sh

🧠 scripts/setup-mcpserver.sh

リモヌト MCP サヌバヌにアクセスできるよう、ロヌカルの SSH 環境を蚭定したす。

  • 公開鍵をプッシュしたす
  • SSH ゚むリアスを远加したす
  • A レコヌドのサンプルを衚瀺したす
chmod +x scripts/setup-mcpserver.sh
./scripts/setup-mcpserver.sh

⚠ 実行前に、プレヌスホルダヌの倀IP アドレス、ナヌザヌ名、リポゞトリ URL などを線集しおください。


🀝 コントリビュヌション

このリポゞトリは自由にフォヌクし、むシュヌを送信したり、プルリク゚ストを䜜成したりできたす。

📄 ラむセンス

このプロゞェクトは MIT License のもずでラむセンスされおいたす。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。