delete_keys
Delete specific keys from a Redis database. Requires disabling read-only mode before use.
Instructions
删除键(需要关闭只读模式)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | 要删除的键名列表 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/redis_mcp_server/server.py:167-180 (handler)The tool handler function decorated with @mcp.tool() that receives a list of keys and delegates to db.delete_keys(), returning JSON result or error.
@mcp.tool() def delete_keys(keys: list[str]) -> str: """删除键(需要关闭只读模式) Args: keys: 要删除的键名列表 """ try: result = db.delete_keys(keys) return json.dumps(result, ensure_ascii=False, indent=2) except PermissionError as e: return json.dumps({"error": str(e)}, ensure_ascii=False) except Exception as e: return json.dumps({"error": str(e)}, ensure_ascii=False) - src/redis_mcp_server/db.py:275-283 (helper)The actual Redis deletion logic in RedisConnection class: checks write permission, validates each key is allowed, calls redis delete(*keys), and returns the count of deleted keys.
def delete_keys(self, keys: list[str]) -> dict[str, Any]: """删除键""" self._check_write_permission() # 检查所有键是否允许访问 for key in keys: if not self._is_key_allowed(key): raise PermissionError(f"键 '{key}' 不允许访问") deleted = self._client.delete(*keys) return {"keys": keys, "deleted_count": deleted, "success": True} - src/redis_mcp_server/server.py:18-28 (registration)The MCP server initialization with FastMCP, where all @mcp.tool() decorated functions (including delete_keys) are registered as tools.
mcp = FastMCP( "Redis MCP Server", instructions=( "这是一个Redis的MCP服务器。" "你可以通过它来查看Redis中的键、读取值、分析内存使用。" "\n\n安全说明:" "\n- 默认为只读模式,只能查看键和值" "\n- 写操作(SET/DELETE/EXPIRE)需要显式关闭只读模式" "\n- 可以通过环境变量配置键前缀过滤和禁止访问的键模式" ), ) - src/redis_mcp_server/server.py:15-16 (registration)Instantiation of RedisConnection which is used by all tool handlers including delete_keys.
config = RedisConfig() db = RedisConnection(config) - tests/test_server.py:100-108 (registration)Test that verifies 'delete_keys' is among the registered MCP tools.
def test_server_has_tools(self): tool_names = list(self.server.mcp._tool_manager._tools.keys()) expected = [ "ping", "server_info", "db_size", "scan_keys", "get_key_type", "get_key_value", "get_hash", "get_memory_usage", "set_string", "delete_keys", "set_expire", ] for t in expected: assert t in tool_names, f"缺少工具: {t}"