Dynamic Model Context Protocol server for query-driven tool discovery with Redis vector similarity search and semantic search capabilities. Exposes a search_tools meta-tool that enables dynamic tool discovery from indexed tools in Redis.
DMCP exposes a single meta-tool, 'search_tools', with moderate quality. The tool has a clear action verb (search_), a reasonable description (194 chars, within baseline), and a properly typed input schema. However, critical gaps exist: (1) The tool description, while comprehensive, lacks explicit guidance on what happens when tools are 'enabled' or become 'callable' after discovery, this is vague for LLM planning. (2) The input schema has two parameters but neither has explicit type constraints (number type lacks min/max bounds; query is free-form string with no validation hints). (3) No output schema is documented, LLMs cannot reason about what fields the response contains or how to chain results into downstream tool calls. (4) Error handling is entirely absent from the definition. (5) The tool is not idempotent, repeated searches may return different results as the indexed toolset changes, yet this non-idempotency is not documented. (6) The 'limit' parameter defaults to 15 but maxes at 50; this is a reasonable pagination hint but lacks explicit documentation in the description. The tool definition is functional but would not pass a principal engineer's code review due to missing output schema and incomplete parameter documentation.
Discover and enable tools by semantic search. This server indexes tools that become available after discovery. Tools span many categories: external services (APIs, cloud platforms, issue trackers), local operations (files, processes, system), reasoning & cognition (sequential thinking, planning), knowledge & memory, web interaction, databases, and more. Search with natural language describing your goal—matching tools are returned and become callable.
Missing output schema documentation. LLMs cannot infer the structure of search results (field names, types, available metadata). This prevents meaningful chaining of this tool into downstream operations.
Parameter 'limit' lacks constraints in description. Min/max bounds (1 - 50) are enforced in code but not documented, forcing LLMs to guess valid ranges. Should state: 'Maximum tools to return (default: 15, range: 1 - 50)'.
Tool description does not explain side effects or state changes. Saying tools 'become available after discovery' is vague, does this persist? Are results cached? Can the same query return different tools on retry? Non-idempotent behavior must be explicit.
No error handling guidance in tool definition. If search fails (Redis unavailable, embedding service down), what should the LLM do? Missing recovery hints (e.g., 'If search times out, try a shorter query').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter 'query' description could be more prescriptive. Current text gives examples ('action', 'capability', 'service') but does not warn against anti-patterns or explain what happens if the query is too vague or too specific.