Remote MCP server for saving, searching, syncing, and managing Teak cards.
Teak provides 20 tools with mostly complete schemas and descriptions. The MCP tools (teak_v1_*) have well-structured JSON schemas with proper type definitions, enums, and parameter descriptions. However, 5 tools (search-cards, get-card, get-recent, list-tags, save-card, favorite-card) are inferred from package.json metadata only, no explicit schema or implementation visible in source. Descriptions are generally adequate (50-150 chars) but lack actionable context for LLM selection. Error handling is minimal; no recovery guidance or categorization. Tool naming is mostly clear (verb_noun pattern) but some tools have overlapping responsibilities (e.g., teak_v1_list_cards vs teak_v1_search_cards both retrieve cards). Output schemas are not documented in the source.
Favorite or unfavorite a Teak card by id.
Fetch a Teak card by ID for ChatGPT connectors and Deep Research.
Fetch the full details of a specific Teak card by id.
Fetch the newest Teak cards without a search query.
List the user's Teak tags with per-tag card counts.
Save a note or URL to the user's Teak library.
Search Teak cards for ChatGPT connectors and Deep Research.
5 tools (search-cards, get-card, get-recent, list-tags, save-card, favorite-card) have no visible input schemas in source code, only inferred from package.json metadata. Per HARD SCORING RULES, these tools are capped at 50 overall and scored 0 for schema.
Output schemas are not documented in source code. LLMs cannot plan downstream calls or extract required fields (e.g., cardId for chaining). Baseline: 100% of A+ tools document return types.
No error handling guidance. Errors do not categorize as retryable/user-fixable/fatal or suggest recovery steps. E.g., 'Card not found' should suggest 'Try search_cards() with a partial title.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2025-06-18+ | v2 |
Search Teak cards by text, type, tags, favorites, and sort order.
Run a bulk card operation for up to 100 items. Delete batches require confirm: true.
Create a card from text, a URL, or a completed file upload. cardType is optional for file uploads and inferred when omitted.
Create a direct upload URL. PUT bytes to uploadUrl, then create a card with the returned fileKey.
Delete a card. `confirm` must be true.
Get a card by ID.
List card changes since a timestamp with cursor pagination.
List cards with cursor pagination and optional filters.
List favorited cards, optionally filtered by query text.
List tags used by saved cards.
Search cards by query text.
Set a card's favorite state.
Update card fields for an existing card.
Overlapping tool responsibilities: teak_v1_list_cards, teak_v1_search_cards, and teak_v1_list_favorite_cards all retrieve cards with different filters. LLMs waste reasoning cycles deciding between them. Consolidate into one canonical search tool with optional filters.
Destructive operations (teak_v1_delete_card, teak_v1_bulk_cards with delete) require confirm=true but lack dry-run or preview. Agents cannot preview what will be deleted before confirming, risking accidental data loss.