0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redis公式MCPサーバーを試してみた 〜ACL設定によるコマンド制限〜

Last updated at Posted at 2026-01-28

はじめに

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サーバー用のユーザーには最小限の権限だけ与えます。

redis/users.acl
user mcp on nopass ~* +GET +SET +SCAN +PING +SELECT +INFO
user default on nopass ~* +@all

ポイント:

  • mcpユーザーはパスワードなし(nopass
  • 許可するコマンドは GET, SET, SCAN, PING, SELECT, INFO のみ
  • DELFLUSHDBなどの危険なコマンドは使えない

docker-compose.yml

スタンドアロンのRedisを立ち上げます。

docker-compose.yml
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サーバーを設定します。

.vscode/mcp.json
{
  "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.png

問題なくSET/GETが動作しています。

DELの動作確認(ACLによる拒否)

ACLが効いているか確認します。DELの実行をお願いすると...

del.png

権限エラーで拒否されました。
ACL設定により、mcpユーザーにはDELコマンドの実行権限がないため、正しくブロックされています。

redis-cliでの確認

redis-cli GET K
"V"

MCPサーバー経由でセットした値がredis-cliでも確認できます。

まとめ

Redis公式のMCPサーバー、思ったより簡単に動きました!

  • uvxでワンライナー起動できるのが楽
  • ACLでコマンド制限できるので、本番でも安心

AIエージェントにRedisを操作させたい場合、公式MCPサーバー + ACL制限の組み合わせは良い選択肢だと思います。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?