Skip to content

feat(mcp): add RedisJSON and RediSearch module tools#840

Merged
joshrotenberg merged 1 commit intomainfrom
feat/module-tools
Mar 6, 2026
Merged

feat(mcp): add RedisJSON and RediSearch module tools#840
joshrotenberg merged 1 commit intomainfrom
feat/module-tools

Conversation

@joshrotenberg
Copy link
Collaborator

Summary

Add 34 new MCP tools for RedisJSON and RediSearch modules, expanding the database toolset from 90 to 124 tools.

Part of the "redisctl-mcp as Redis Database Powertool" epic (#833).

RedisJSON (16 tools) - #835

Safety Tools
Read-only json_get, json_mget, json_type, json_arrlen, json_objkeys, json_objlen, json_strlen
Write json_set (NX/XX), json_numincrby, json_arrappend, json_arrinsert, json_toggle
Destructive json_del, json_clear, json_arrpop, json_arrtrim

RediSearch (18 tools) - #837

Safety Tools
Read-only ft_list, ft_info, ft_search, ft_aggregate, ft_explain, ft_profile, ft_tagvals, ft_syndump, ft_dictdump
Write ft_create, ft_alter, ft_synupdate, ft_dictadd, ft_aliasadd, ft_aliasupdate
Destructive ft_dropindex, ft_aliasdel, ft_dictdel

Notable features:

  • ft_create supports full schema definition with field types (TEXT, NUMERIC, TAG, GEO, VECTOR), SORTABLE, WEIGHT, SEPARATOR, AS alias
  • ft_search supports LIMIT, SORTBY, RETURN, NOCONTENT, VERBATIM, WITHSCORES
  • ft_aggregate supports LOAD and raw pipeline args for GROUPBY/REDUCE/SORTBY
  • ft_profile profiles both SEARCH and AGGREGATE queries
  • ft_aliasupdate enables zero-downtime index migrations
  • All JSON tools support JSONPath expressions with $ root default

Registered as database:json and database:search sub-modules, selectable via --tools database:json,database:search.

Test plan

  • cargo clippy -p redisctl-mcp --all-features -- -D warnings passes
  • cargo fmt --all -- --check passes
  • CI passes
  • Manual testing against Redis with JSON/Search modules loaded

Closes #835, closes #837

Add 34 new database tools for Redis module commands:

RedisJSON (16 tools):
- Read: json_get, json_mget, json_type, json_arrlen, json_objkeys,
  json_objlen, json_strlen
- Write: json_set, json_numincrby, json_arrappend, json_arrinsert,
  json_toggle
- Destructive: json_del, json_clear, json_arrpop, json_arrtrim

RediSearch (18 tools):
- Read: ft_list, ft_info, ft_search, ft_aggregate, ft_explain,
  ft_profile, ft_tagvals, ft_syndump, ft_dictdump
- Write: ft_create, ft_alter, ft_synupdate, ft_dictadd, ft_aliasadd,
  ft_aliasupdate
- Destructive: ft_dropindex, ft_aliasdel, ft_dictdel

Registered as database:json and database:search sub-modules.
Total database tools: 90 -> 124.

Closes #835, closes #837
@joshrotenberg joshrotenberg merged commit d4e0a54 into main Mar 6, 2026
16 checks passed
@joshrotenberg joshrotenberg deleted the feat/module-tools branch March 6, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add RediSearch tools to database toolset Add RedisJSON module tools to database toolset

1 participant