Skip to main content
Glama

Notion MCP Server

by Kazy1014
DOCKER.md7.44 kB
# Docker使用ガイド このドキュメントでは、Notion MCP ServerをDockerで使用する方法を説明します。 ## 前提条件 - Docker がインストールされていること - Docker Compose がインストールされていること(オプション) - Notion APIキーを取得済みであること ## クイックスタート ### 1. Docker Hubから取得して使用(推奨) ```bash # イメージをpull docker pull kazuyaoda/notion-mcp:latest # 環境変数を設定して実行 docker run -it \ -e NOTION_API_KEY=your_notion_api_key \ kazuyaoda/notion-mcp:latest ``` ### 2. ローカルでビルドして使用 ```bash # リポジトリをクローン git clone https://github.com/kazuyaoda/notion-mcp.git cd notion-mcp # Dockerイメージをビルド docker build -t notion-mcp:latest . # 実行 docker run -it \ -e NOTION_API_KEY=your_notion_api_key \ notion-mcp:latest ``` ## Docker Composeを使用した起動 ### 1. 環境変数ファイルの作成 `.env` ファイルを作成: ```bash NOTION_API_KEY=your_notion_api_key_here ``` ### 2. Docker Composeで起動 ```bash # サービスを起動 docker-compose up -d # ログを確認 docker-compose logs -f # サービスを停止 docker-compose down ``` ## Cursor/Claudeでの使用設定 ### オプション1: Docker経由で直接実行 Cursorの設定ファイル(`~/.cursor/mcp_settings.json` または `.cursor/mcp_settings.json`): ```json { "mcpServers": { "notion": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "NOTION_API_KEY=your_notion_api_key", "kazuyaoda/notion-mcp:latest" ] } } } ``` ### オプション2: Docker Composeを使用 ```json { "mcpServers": { "notion": { "command": "docker-compose", "args": [ "-f", "/path/to/notion-mcp/docker-compose.yml", "run", "--rm", "notion-mcp" ], "env": { "NOTION_API_KEY": "your_notion_api_key" } } } } ``` ### オプション3: スクリプトラッパーを使用 `notion-mcp.sh` を作成: ```bash #!/bin/bash docker run -i --rm \ -e NOTION_API_KEY="${NOTION_API_KEY}" \ kazuyaoda/notion-mcp:latest ``` 実行権限を付与: ```bash chmod +x notion-mcp.sh ``` Cursor設定: ```json { "mcpServers": { "notion": { "command": "/path/to/notion-mcp.sh", "env": { "NOTION_API_KEY": "your_notion_api_key" } } } } ``` ## 高度な使用方法 ### カスタムネットワークでの実行 ```bash # カスタムネットワークを作成 docker network create mcp-network # ネットワークに接続して実行 docker run -it \ --network mcp-network \ -e NOTION_API_KEY=your_api_key \ notion-mcp:latest ``` ### ボリュームマウント(ログやキャッシュ用) ```bash docker run -it \ -v $(pwd)/data:/app/data \ -e NOTION_API_KEY=your_api_key \ notion-mcp:latest ``` ### デバッグモード ```bash # ビルド時にデバッグ情報を含める docker build --build-arg NODE_ENV=development -t notion-mcp:debug . # デバッグモードで実行 docker run -it \ -e NOTION_API_KEY=your_api_key \ -e NODE_ENV=development \ notion-mcp:debug ``` ## イメージのビルドとプッシュ ### ローカルでビルド ```bash # 基本的なビルド docker build -t notion-mcp:latest . # タグ付きビルド docker build -t notion-mcp:1.0.0 -t notion-mcp:latest . # マルチプラットフォームビルド(Apple Silicon対応) docker buildx build --platform linux/amd64,linux/arm64 -t notion-mcp:latest . ``` ### Docker Hubにプッシュ ```bash # Docker Hubにログイン docker login # タグ付け docker tag notion-mcp:latest kazuyaoda/notion-mcp:latest docker tag notion-mcp:latest kazuyaoda/notion-mcp:1.0.0 # プッシュ docker push kazuyaoda/notion-mcp:latest docker push kazuyaoda/notion-mcp:1.0.0 ``` ## トラブルシューティング ### イメージのサイズが大きい マルチステージビルドを使用しているため、本番イメージは最適化されています: ```bash # イメージサイズを確認 docker images notion-mcp # 不要なイメージを削除 docker image prune -a ``` ### コンテナが起動しない ```bash # ログを確認 docker logs notion-mcp-server # コンテナ内でシェルを実行 docker run -it --entrypoint /bin/sh notion-mcp:latest # 環境変数を確認 docker run -it --rm notion-mcp:latest env ``` ### APIキーが認識されない 環境変数が正しく設定されているか確認: ```bash # 環境変数をテスト docker run -it --rm \ -e NOTION_API_KEY=test_key \ notion-mcp:latest \ node -e "console.log('API Key:', process.env.NOTION_API_KEY)" ``` ### ビルドが失敗する ```bash # キャッシュなしで再ビルド docker build --no-cache -t notion-mcp:latest . # ビルドログを詳細表示 docker build --progress=plain -t notion-mcp:latest . ``` ## セキュリティのベストプラクティス ### 1. APIキーの管理 環境変数やシークレット管理ツールを使用: ```bash # Docker Secretsを使用(Docker Swarm) echo "your_api_key" | docker secret create notion_api_key - docker service create \ --name notion-mcp \ --secret notion_api_key \ notion-mcp:latest ``` ### 2. 非rootユーザーでの実行 Dockerfileでは既に非rootユーザー(`notion`)で実行するように設定されています。 ### 3. 読み取り専用ファイルシステム ```bash docker run -it --read-only \ -e NOTION_API_KEY=your_api_key \ notion-mcp:latest ``` ## パフォーマンス最適化 ### イメージサイズの最小化 - Alpine Linuxをベースイメージとして使用 - マルチステージビルドで本番用ファイルのみを含める - `.dockerignore`で不要なファイルを除外 ### ビルドキャッシュの活用 ```bash # BuildKitを有効化(Docker 23.0+) export DOCKER_BUILDKIT=1 docker build -t notion-mcp:latest . ``` ## CI/CD統合 ### GitHub Actions例 `.github/workflows/docker-publish.yml`: ```yaml name: Docker Build and Push on: push: branches: [ main ] tags: [ 'v*' ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v4 with: context: . push: true tags: | kazuyaoda/notion-mcp:latest kazuyaoda/notion-mcp:${{ github.ref_name }} ``` ## まとめ Docker化により以下の利点があります: ✅ **環境の一貫性**: どの環境でも同じように動作 ✅ **簡単なデプロイ**: 1コマンドで起動可能 ✅ **依存関係の管理**: 全ての依存関係がコンテナに含まれる ✅ **セキュリティ**: 隔離された環境で実行 ✅ **スケーラビリティ**: 複数インスタンスの起動が容易 ご質問やサポートが必要な場合は、GitHubのIssuesまでお願いします。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kazy1014/notion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server