Static source inference · medium confidence · detected: Logging
Deprecated protocol patterns detected
Summary
This server exhibits critical definition quality gaps across nearly all dimensions. Tool names are inconsistently verb-prefixed; descriptions are present but often generic or incomplete; parameter schemas lack comprehensive type information and validation constraints; output schemas are not documented; error handling is minimal. Of the 12 tools, none achieve A-grade quality, and most fall into the D-F range. The server relies heavily on external service calls (embedding, LLM) without clear documentation of failure modes or recovery paths. Parameter documentation is minimal, and several tools accept opaque object inputs without specifying their internal structure.
Tools (12)
add_worksheetwritesource verified57/100
Ajoute une nouvelle feuille dans un classeur Excel
analyze_with_llmread onlysource verified50/100
Analyse les données Excel avec un modèle LLM et génère du code Python pour répondre à des requêtes
check_excel_statusread onlysource verified43/100
Vérifie si Excel est accessible via xlwings
execute_excel_formulawritesource verified63/100
Exécute une formule Excel dans une cellule spécifique
Missing output schemas for 6+ tools (get_open_workbooks, get_embedding_status, get_llm_status, and others). LLMs cannot plan downstream calls or extract structured data without knowing the response structure.
Parameter descriptions are minimal or absent for complex inputs. Tools like 'retrieve_relevant_rows' accept 'excel_data' as an opaque object with no specification of required structure (headers/rows format). Similarly, 'analyze_with_llm' and 'generate_excel_modification' accept unspecified 'excel_data' objects.
Tool 'update_cell_value' has a parameter 'value' with type 'null' and a generic description. This violates schema clarity, the type should specify what kinds of values are accepted (string, number, boolean, formula-string). The description does not clarify format expectations.
Recommendations
Add complete output schemas to all 12 tools. Document the structure of returned objects (fields, types, nullability). Example for get_open_workbooks: 'Returns {workbooks: [{name: string, path: string, is_active: boolean}], total_count: integer}'
Restructure complex object parameters. For 'retrieve_relevant_rows', 'analyze_with_llm', and 'generate_excel_modification', replace opaque 'excel_data: object' with explicit fields: 'excel_headers: string[]' and 'excel_rows: array<array<any>>' or similar. Document the expected structure in the parameter description.
Enhance tool descriptions to answer: (1) What does it do? (2) When/why use it instead of similar tools? (3) What does it return? Example: 'get_sheet_data: Extracts all data from a specified Excel sheet as a table with headers and rows. Use this to read data before analysis or modification. Returns headers (column names) and rows (2D data array). If data is large (>10K rows), use pagination to avoid context overflow.'
Add value-type constraints for 'update_cell_value'. Document accepted types (string, number, boolean, Excel formula starting with =) and conversion rules. Example: 'value (string|number|boolean|formula): The new cell value. Strings and numbers are inserted as-is. Formulas must start with = (e.g., =SUM(A1:A10)). Booleans become TRUE/FALSE.'
Document pagination for collection tools. Add optional 'limit' (default 20, max 1000) and 'offset' (default 0) parameters to 'get_sheet_data' and 'get_open_workbooks'. Document: 'Large sheets are returned in pages. Specify limit and offset to retrieve chunks. Total row count is returned for planning pagination.'
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Logging (deprecated) - log to stderr or use OpenTelemetry
No pagination or result-limiting guidance for tools that return collections (get_sheet_data, get_open_workbooks). Unbounded results risk context window exhaustion and degraded LLM reasoning.
Error handling is not documented. No guidance on retryability, user-fixable errors, or recovery paths. Tools that interact with external LLM/embedding services (analyze_with_llm, retrieve_relevant_rows, get_embedding_status, get_llm_status) will fail unpredictably without documented error classification.
Tool descriptions use generic language. Examples: 'Vérifie si Excel est accessible via xlwings', 'Récupère la liste des classeurs Excel ouverts', 'Retourne le statut du modèle d'embedding'. These lack WHEN/WHY guidance. An LLM cannot distinguish between similar read-only tools or determine if a status check is necessary before calling a dependent tool.
Tool 'generate_excel_modification' is vaguely named and described. The name suggests it modifies Excel directly, but the description says 'génère des modifications Excel recommandées' (generates recommendations). It is unclear if this tool is destructive or read-only. This ambiguity will cause LLMs to misuse it.
Formula validation is not documented for 'execute_excel_formula'. The description says 'doit commencer par =' (must start with =) but does not document: what happens if the formula is invalid? Can it reference external resources? Are there length limits? This invites LLM hallucination of invalid formulas.
execute_excel_formula
Classify errors for external service calls. For 'analyze_with_llm', 'retrieve_relevant_rows', 'get_embedding_status', 'get_llm_status': document failure modes (service timeout, invalid query, model unavailable) and recovery paths (e.g., 'If the embedding service times out, retry with a smaller query or check get_embedding_status to confirm service is online').
Clarify the destructive/read-only nature of 'generate_excel_modification'. If it only recommends changes without applying them, rename to 'suggest_excel_modifications' and clarify: 'Returns a list of suggested changes (cell updates, formulas, range modifications) without modifying the actual workbook. Use the returned suggestions as input to update_cell_value, execute_excel_formula, or update_range_values to apply them.'
Add formula validation guidance to 'execute_excel_formula'. Document: 'Formulas must start with = and follow Excel syntax. Common formulas: =SUM(range), =AVERAGE(range), =IF(condition, true_val, false_val). Returns the cell reference and evaluated result. Invalid formulas return an error with details.'
For all status tools (check_excel_status, get_embedding_status, get_llm_status), document: 'Use to verify service availability before calling dependent tools. Returns {status: "online"|"offline", version: string, capabilities: object}. If status is offline, downstream tools will fail; consider offering fallback strategies.'
Add parameter validation examples to 'update_range_values'. Clarify: 'data must be a 2D array (list of lists). Example: [["Name", "Age"], ["Alice", 30], ["Bob", 25]]. All rows must have the same number of columns. Mismatched dimensions return a validation error.'
Document cell address format for tools accepting 'cell_address' (update_cell_value, execute_excel_formula). Specify: 'Cell addresses follow Excel notation: A1, B3, Z100, AA1. Column letters are case-insensitive. Invalid addresses (e.g., "1A", "AB0") return a validation error. Supports both single cells and ranges (A1:B10) where applicable.'
For 'add_worksheet', document constraints: 'Sheet names must be unique within the workbook, 1-31 characters, and cannot contain: / \ ? * [ ]. Returns the newly created sheet name and workbook path. If a sheet with the same name exists, returns an error with a conflict message.'