MCP server for interacting with Quip spreadsheets. Allows reading and exporting Quip document content as CSV data with support for multiple storage backends (local filesystem, S3).
The server exposes a single tool (quip_read_spreadsheet) with a well-structured JSON schema and input parameters defined. The tool name follows verb_noun convention and the description is detailed, though somewhat verbose and technical. The input schema declares required and optional parameters with types and descriptions. However, the description does not explicitly state what the tool returns beyond a vague reference to 'JSON object' and metadata structure. The tool lacks explicit error handling guidance, recovery instructions, and the description at 560+ characters exceeds the 200-char baseline for optimal LLM consumption. Output schema structure is mentioned in the description but not formally documented as a separate schema definition visible in the code. The server supports resources (reading via alternative URIs) but does not declare tool annotations (readOnlyHint, destructiveHint, idempotentHint) that would clarify this is a read-only, idempotent operation.
Read the content of a Quip spreadsheet by its thread ID. Returns a JSON object containing truncated CSV content (limited to 10KB) and metadata. For large spreadsheets, the returned content may be truncated. To access the complete CSV data, use the resource interface with URI format: 'quip://{threadId}?sheet={sheetName}' for local storage, 'file:///<storage path>/{threadId}-{sheetName}.csv' for file protocol, 's3://{bucket}/{prefix}{threadId}-{sheetName}.csv' for S3 storage identification, or HTTPS URLs (presigned S3 URLs) for direct access to S3 resources when S3 storage is used. The returned data structure includes: { 'csv_content': string (possibly truncated CSV data), 'metadata': { 'rows': number, 'columns': number, 'is_truncated': boolean, 'resource_uri': string } }
Output schema not formally declared; only described narratively in tool description text
Tool description is 560+ characters, well above the 200-char baseline, mixing technical implementation details with functional intent
No tool annotations (readOnlyHint, idempotentHint) declared in tool registration
No error handling guidance in tool description or visible error recovery paths
Optional parameter (sheetName) lacks guidance on default behavior if omitted
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | - | v1 |