Redis MCP サーバー
Redis データベース操作へのアクセスを提供するモデル コンテキスト プロトコル (MCP) サーバー。
プロジェクト構造
src/
├── interfaces/
│ └── types.ts # Shared TypeScript interfaces and types
├── tools/
│ ├── base_tool.ts # Abstract base class for Redis tools
│ ├── tool_registry.ts # Registry managing all available Redis tools
│ ├── hmset_tool.ts # HMSET Redis operation
│ ├── hget_tool.ts # HGET Redis operation
│ ├── hgetall_tool.ts # HGETALL Redis operation
│ ├── scan_tool.ts # SCAN Redis operation
│ ├── set_tool.ts # SET Redis operation
│ ├── get_tool.ts # GET Redis operation
│ ├── del_tool.ts # DEL Redis operation
│ ├── zadd_tool.ts # ZADD Redis operation
│ ├── zrange_tool.ts # ZRANGE Redis operation
│ ├── zrangebyscore_tool.ts # ZRANGEBYSCORE Redis operation
│ └── zrem_tool.ts # ZREM Redis operation
└── redis_server.ts # Main server implementationRelated MCP server: Redash MCP Server
利用可能なツール
道具 | タイプ | 説明 | 入力スキーマ |
hmset | ハッシュコマンド | 複数のハッシュフィールドに複数の値を設定する |
|
ゲット | ハッシュコマンド | ハッシュフィールドの値を取得する |
|
hgetall | ハッシュコマンド | ハッシュ内のすべてのフィールドと値を取得する |
|
スキャン | キーコマンド | パターンに一致するRedisキーをスキャンする |
|
セット | 文字列コマンド | オプションのNXおよびPXオプションを使用して文字列値を設定する |
|
得る | 文字列コマンド | 文字列値を取得する |
|
デル | キーコマンド | キーを削除する |
|
ザッド | ソートセットコマンド | ソートされたセットに1つ以上のメンバーを追加する |
|
zrange | ソートセットコマンド | インデックスでソートされたセットからメンバーの範囲を返す |
|
zrangebyscore | ソートセットコマンド | ソートされたセットから、最小値と最大値の間のスコアを持つメンバーを返します。 |
|
ズレム | ソートセットコマンド | ソートされたセットから1つ以上のメンバーを削除します |
|
悲しい | コマンドの設定 | セットに1人以上のメンバーを追加する |
|
スメンバー | コマンドの設定 | セット内のすべてのメンバーを取得する |
|
使用法
MCP クライアント (例: Claude Desktop、Cline) で構成します。
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["redis-mcp", "--redis-host", "localhost", "--redis-port", "6379"],
"disabled": false
}
}
}コマンドライン引数
--redis-host: Redis サーバーのホスト (デフォルト: localhost)--redis-port: Redisサーバーのポート(デフォルト: 6379)
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Redis サーバーを自動的にインストールするには:
npx -y @smithery/cli install redis-mcp --client claude発達
新しい Redis ツールを追加するには:
src/tools/にRedisToolを拡張した新しいツールクラスを作成します。src/interfaces/types.tsでツールのインターフェースを定義します。src/tools/tool_registry.tsにツールを登録します。
ツールの実装例:
export class MyTool extends RedisTool {
name = 'mytool';
description = 'Description of what the tool does';
inputSchema = {
type: 'object',
properties: {
// Define input parameters
},
required: ['requiredParam']
};
validateArgs(args: unknown): args is MyToolArgs {
// Implement argument validation
}
async execute(args: unknown, client: RedisClientType): Promise<ToolResponse> {
// Implement tool logic
}
}