A lightweight MCP server exposing Airtable data as tools for AI assistants.
Single tool with critical definition gaps. read_airtable_winds has a generic description (67 chars) that lacks WHEN to use it, WHAT it returns structurally, and any prerequisites. No parameter descriptions exist (N/A due to empty schema). Tool name lacks clarity on scope, does it read all records, filter by date, or support pagination? No error handling guidance. Naming is acceptable (verb_noun: read_airtable), but the implementation is severely underspecified for LLM use.
Read all records from the configured Airtable table. Fetches records using the Airtable client and returns them in MCP content format.
Empty input schema ({}). Tool accepts no parameters, making it impossible to filter, paginate, or customize behavior. LLMs cannot reason about constraints or valid inputs.
Description is 67 characters and generic ('Read all records from the configured Airtable table'). Violates baseline: descriptions should be 194 chars avg (p10=34, p90=392). Missing: WHEN to call this tool, WHAT fields are returned, pagination behavior, max record limit, and error conditions.
Output schema undocumented. Returns dict with 'content' key wrapping MCP JSON type, but LLM has no visibility into the actual Airtable record structure (fields, types, required keys). Violates baseline: 100% of A+ tools have documented return types.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No pagination support. Tool fetches up to 1000 records (hardcoded _DEFAULT_MAX_RECORDS) with no limit parameter, offset, or cursor. Large result sets will blow context window. Violates baseline: tools returning lists should accept page/offset and limit parameters.
No error handling guidance. If Airtable API fails (auth, rate limit, network), the exception propagates with no recovery hint. LLM receives raw error with no actionable next step. Violates pattern: error responses must tell LLM what to do next.