はじめに
AIエージェントと外部ツールを連携させるプロトコルとして、MCP(Model Context Protocol)が注目を集めています。
MCPは、LLMが外部のデータソースやAPIと安全かつ標準化された方法で通信するための仕様であり、Anthropic社が中心となって策定を進めています。すでに多くのサービスやツールがMCPサーバーを提供しており、Redisも公式のMCPサーバーを公開しています。
本記事では、Redis公式MCPサーバー(redis-mcp-server)の基本的な動作確認に加え、本番環境を意識したACLによるコマンド制限についても検証します。
本記事で扱う内容
- Redis公式MCPサーバー(
redis-mcp-server)をVS Codeで動かす - ACLで
mcpユーザーを作成し、使えるコマンドを制限する
環境
- macOS
- Docker Desktop
- VS Code + GitHub Copilot(Claude)
- Redis 8(公式イメージ)
- redis-mcp-server(PyPIパッケージ)
セットアップ
ディレクトリ構成
project-root/
├── docker-compose.yml
├── redis/
│ └── users.acl
└── .vscode/
└── mcp.json
Redis ACL設定
まずはACLファイルを作成します。MCPサーバー用のユーザーには最小限の権限だけ与えます。
user mcp on nopass ~* +GET +SET +SCAN +PING +SELECT +INFO
user default on nopass ~* +@all
ポイント:
-
mcpユーザーはパスワードなし(nopass) - 許可するコマンドは
GET,SET,SCAN,PING,SELECT,INFOのみ -
DELやFLUSHDBなどの危険なコマンドは使えない
docker-compose.yml
スタンドアロンのRedisを立ち上げます。
services:
redis:
image: redis:8
container_name: redis-standalone
ports:
- "6379:6379"
command: redis-server --aclfile /etc/redis/users.acl
volumes:
- ./redis/users.acl:/etc/redis/users.acl:ro
- redis_data:/data
volumes:
redis_data:
起動
docker compose up -d
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d20999afa89 redis:8 "docker-entrypoint.s…" 21 seconds ago Up 20 seconds 0.0.0.0:6379->6379/tcp redis-standalone
VS Code MCP設定
.vscode/mcp.jsonでMCPサーバーを設定します。
{
"servers": {
"redis-standalone-mcp": {
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--host", "127.0.0.1",
"--port", "6379",
"--username", "mcp"
]
}
}
}
ポイント:
-
uvxを使ってPyPIから直接実行(インストール不要) -
--username mcpでACLユーザーを指定
実際に動かしてみる
SET/GETの動作確認
基本操作を試してみます。
Copilot ChatでMCPを使ってSET/GETを実行することを要請すると、MCPサーバー経由でRedisにデータが書き込まれます。
問題なくSET/GETが動作しています。
DELの動作確認(ACLによる拒否)
ACLが効いているか確認します。DELの実行をお願いすると...
権限エラーで拒否されました。
ACL設定により、mcpユーザーにはDELコマンドの実行権限がないため、正しくブロックされています。
redis-cliでの確認
redis-cli GET K
"V"
MCPサーバー経由でセットした値がredis-cliでも確認できます。
まとめ
Redis公式のMCPサーバー、思ったより簡単に動きました!
-
uvxでワンライナー起動できるのが楽 - ACLでコマンド制限できるので、本番でも安心
AIエージェントにRedisを操作させたい場合、公式MCPサーバー + ACL制限の組み合わせは良い選択肢だと思います。

