This server has 8 tools with schemas and descriptions visible in mcp_timeplus/__init__.py. However, most descriptions are extremely brief (10-30 chars), parameter descriptions are missing entirely or minimal, and output schemas are not documented. Parameter constraints (enums, ranges) are absent. Error handling guidance is minimal. The tool set is somewhat cohesive around Timeplus database operations and Kafka integration, but lacks idempotency documentation, output schema clarity, and error recovery guidance expected of production tools. Baselines: avg tool description should be 194 chars (p90=392); avg param annotation 72 chars. This server averages ~25 chars per tool description and 0-15 chars per param description.
Create a Timeplus database in iceberg type to connect to Iceberg
Create a Timeplus materialized view from a Kafka topic
Consume messages from a Kafka topic
Generate Timeplus SQL for given requirements
List available Timeplus databases
List all topics in the Kafka cluster
List available tables/streams in the given database
Descriptions are critically short (10-30 chars): far below baseline of 194 chars (p10=34, p90=392). Tool-level descriptions do not explain WHAT the tool does, WHEN to call it instead of similar tools, or WHAT it returns. Examples: 'List available Timeplus databases' (32 chars), 'List available tables/streams in the given database' (50 chars). These violate pattern:tool-description which requires complete, context-rich docstrings.
Parameter descriptions are missing or extremely brief. E.g., 'database' param in list_tables has description 'Database name' (13 chars); 'query' in run_sql is 'SQL query to execute' (20 chars). Parameters lack guidance on format, constraints, and when to use them. Violates pattern:tool-description.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Run a query in a Timeplus database
Output schemas are not documented. The code shows tools return query results, lists of tables/databases, and status messages, but there is no formal schema declaration describing field names, types, and structure that LLMs expect downstream. Violates pattern:tool and pattern:response-shaper.
No enum constraints for constrained parameters. E.g., 'aws_region' in connect_to_apache_iceberg defaults to 'us-west-2' but doesn't declare allowed regions as an enum. Free-form strings invite hallucinated invalid values. Violates pattern:constrained-input.
Error handling guidance is minimal. Code in run_sql returns {'status': 'error', 'message': '...'} on failure, but the tool description does not explain what errors can occur, which are retryable, or what the LLM should do next. Violates pattern:recovery-guide and pattern:error-classification.
No pagination or result limits declared. list_databases, list_tables, and list_kafka_topics do not document max result size or pagination tokens. If Timeplus returns thousands of tables, responses could blow the context window. Violates pattern:paginated-result and mxe:enforce-result-limits.
run_sql tool accepts arbitrary SQL. No dry-run or confirmation step before executing state-changing queries. Agents can accidentally DROP TABLEs or DELETE data without confirmation. Violates pattern:confirmation-request.
No idempotency documentation. Tools like create_kafka_stream have no indication whether re-calling with the same topic will idempotently succeed or fail. Agents retry on ambiguous failures, non-idempotent tools risk duplicate resources. Violates pattern:idempotent-operation.
Parameter relationships undocumented. connect_to_apache_iceberg requires is_s3_table_bucket which may affect what other parameters are valid or required. No docs explain these interdependencies. Violates review:param-relationships.
Secrets potentially exposed. Code shows Timeplus and Kafka credentials must be configured via environment (dotenv), which is correct server-side injection. However, tool descriptions do not explicitly state that credentials are handled server-side and never appear in tool parameters. This could confuse users/operators. Should document pattern:secret-injection clearly.