Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docker/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
19 changes: 19 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# ベースイメージ
FROM python:3.12-slim

# 作業ディレクトリの設定
WORKDIR /app

# 重要: 標準出力のバッファリングを無効化 (MCPの通信がスムーズになります)
ENV PYTHONUNBUFFERED=1

# 依存関係のインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# ソースコードのコピー
COPY src/ src/

# 実行コマンド
# エントリーポイントを設定しておくと、docker run時に引数を渡しやすいです
ENTRYPOINT ["python", "src/server.py"]
47 changes: 47 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Docker

## 使い方

### Dockerのイメージのビルドと実行

```bash
# ビルド
docker build -t docker-mcp-server .

# 実行
docker run -i --rm docker-mcp-server
```

### Claude Desktopへの設定方法

```json
{
"mcpServers": {
"docker-mcp-server": {
"command": "docker",
"args": [
"run",
"-i", // 標準入力を繋ぐために必須
"--rm", // 終了時にコンテナを削除
"docker-mcp-server" // ビルドしたイメージ名
]
}
}
}
```

## 開発者向け

### 依存関係の更新時

1. `pyproject.toml`を更新したら、以下で`requirements.txt`を再生成します。

```
uv export --format requirements-txt > requirements.txt
```

2. pipを使う場合は、生成された`requirements.txt`から依存関係をインストールできます。

```
pip install -r requirements.txt
```
9 changes: 9 additions & 0 deletions docker/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[project]
name = "docker-mcp-server"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"mcp>=1.21.2",
]
385 changes: 385 additions & 0 deletions docker/requirements.txt

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions docker/src/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from mcp.server.fastmcp import FastMCP

# サーバーの定義
mcp = FastMCP("My Dockerized MCP Server")

@mcp.tool()
def add(x: int, y: int) -> int:
"""2つの数字を足し算します"""
return x + y

if __name__ == "__main__":
# Docker内で実行するため、stdioで待ち受けます
mcp.run()
616 changes: 616 additions & 0 deletions docker/uv.lock

Large diffs are not rendered by default.