A Kubernetes-native MCP server registry with semantic search capabilities powered by Qdrant vector database. Includes a ksyncer operator for syncing Knative Services as MCP tools.
SMCP exposes 5 tools with complete input schemas and basic descriptions. All tools follow verb_noun naming (registerTool, listTools, getTool, deleteTool, searchTools). Descriptions are present but generic (avg 85 chars, below 194-char baseline). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No output schemas documented. Error handling and recovery guidance absent. Tool composition is reasonable (single responsibility per tool), but parameter design could be more LLM-friendly (e.g., visibility as enum, limit bounds). Security risk: deleteTool is destructive but lacks confirmation/dry-run pattern.
Delete a tool from the registry by owner and name
Get a specific tool by owner and name
List tools from the registry filtered by owner and visibility
Register a new tool in the registry with owner, name, visibility, and description
Search tools in the registry using semantic search on descriptions
No output schemas documented. LLMs cannot infer response structure, forcing them to guess at field names and types for downstream tool calls.
Destructive tool (deleteTool) lacks confirmation/dry-run pattern. Agents can permanently delete tools without a safety gate.
Parameter 'visibility' in registerTool and listTools lacks enum constraint. Should be one of: public, private, internal. Free-form strings invite hallucinated values.
Parameter 'limit' in searchTools lacks bounds. Should specify min/max (e.g., 1 - 100) to prevent LLMs from requesting absurd result counts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Descriptions are generic and lack WHEN/WHY guidance. E.g., 'List tools from the registry filtered by owner and visibility' does not explain when to call this vs getTool or searchTools.