Server has 5 tools with complete descriptions and basic input schemas. All tools are READ_ONLY and well-documented with clear purpose statements. However, parameter descriptions lack actionable constraints (enums, ranges, formats), output schemas are not formally documented, and error handling is minimal. Tool names follow verb_noun convention (get_*, check_*, list_*, search_*) which is good. The semantic_search tool has the most complete parameter set with descriptions, but lacks enum constraints for limit bounds. No tool annotations (readOnlyHint, etc.) present despite all being read-only operations.
Check if the Weaviate connection is working. Tests the connection to the Weaviate instance and reports its status and connection details. Returns: dict: Connection status including: - connected: bool indicating if connection is successful - connection_type: 'local' or 'cloud' - host/cluster_url: connection endpoint - error: error message if connection failed (optional)
Get the current Weaviate configuration. Returns the active Weaviate connection configuration with sensitive values (API keys, headers) masked for security. Returns: dict: Configuration details including: - connection_type: 'local' or 'cloud' - host/port or cluster_url - timeout settings - masked API keys
Get schema information for Weaviate collections. Retrieves detailed schema information for a specific collection or all collections if no name is specified. Args: collection_name: Optional name of a specific collection. If None, returns schema for all collections. Returns: dict: Schema information including: - For specific collection: - collection: collection name - properties: list of property definitions - multi_tenancy_enabled: bool - tenant_count: number of tenants (if multi-tenant) - For all collections: - Full schema with all collection definitions - error: error message if operation failed (optional)
Output schemas not documented. Tools return dict[str, Any] with no formal schema specification. LLMs cannot predict response structure for planning downstream calls.
Parameter constraints missing. semantic_search 'limit' parameter lacks min/max bounds (should be 1-100 or similar). No enum constraints on collection_name or tenant_id formats.
Error handling lacks recovery guidance. Errors return raw exception strings (e.g., 'Error checking connection: {e}') without actionable next steps or error classification (retryable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List all available Weaviate collections. Retrieves a list of all collections (classes) defined in the Weaviate schema. Returns: dict: Collection information including: - collections: list of collection names - total: total number of collections - error: error message if operation failed (optional)
Search for objects in Weaviate using vector similarity. Performs semantic search using vector embeddings to find objects similar in meaning to the query text. The query is vectorized and compared against stored vectors using cosine similarity. Args: query: The search query text to vectorize and match. collection_name: Name of the collection to search in. tenant_id: Optional tenant ID for multi-tenant collections. limit: Maximum number of results to return (default: 5). Returns: dict: Search results including: - results: list of matching objects with: - id: object UUID - collection: collection name - properties: object properties - score: similarity score (0-1, higher is better) - total: number of results returned - query: the original query - collection_name: searched collection - tenant_id: tenant ID if specified - error: error message if search failed (optional)
No tool annotations. All tools are read-only but lack readOnlyHint annotation in schema. This forces LLMs to infer safety from descriptions alone.
Result limits not enforced or documented. semantic_search returns results without pagination or cap. Large result sets could exhaust context window.