MCP Server for Lattice HQ API - Access goals, users, reviews, and feedback
20 tools with consistent naming (verb_noun pattern: lattice_get_*) and clear descriptions (avg ~150 chars). All tools are READ_ONLY, reducing risk. Schemas present for all tools with proper required fields and parameter descriptions. However, output schemas are completely undocumented, LLMs cannot predict response structure for chaining. No error handling guidance, no pagination support despite tools returning potentially large lists (e.g., lattice_get_users, lattice_get_goals). Parameter descriptions are adequate but lack format constraints (e.g., no enum for review_type despite mentioning 'Self', 'Downward', 'Peer', 'Upward'). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Missing batch operations and result limits.
Get details of a specific department by ID
Get all departments in the organization
Get details of a specific feedback by ID
Get all feedback in the organization
Get details of a specific goal by ID
Get all goals in the organization
Get current user information
No output schemas documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining. This forces agents to guess or make extra discovery calls.
Bulk retrieval tools (lattice_get_users, lattice_get_goals, etc.) lack pagination (limit, offset, page_size) and result caps. No documentation of max result count. Large result sets will exhaust context windows.
review_type parameter in lattice_get_review_cycle_reviews and lattice_get_reviewee_reviews lacks enum constraint. Description mentions 'Self', 'Downward', 'Peer', 'Upward' as examples but does not enforce them. LLMs may hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get a review question or question revision by ID. Returns the question body text, description, and rating scale (if applicable). Works with both question IDs (e.g. 'question-...') and question revision IDs (e.g. 'questionRevision-...'). Use this to see what was asked when viewing a review response.
Get details of a specific review cycle by ID
Get all reviewees for a specific review cycle
Get all reviews for a specific review cycle. Each review contains the reviewer, reviewee, question reference, reviewType (e.g. 'Self', 'Downward', 'Peer', 'Upward'), and the response text/rating. Optionally filter by review_type (client-side). To get self-reviews, set review_type to 'Self'. For a specific person's reviews, prefer lattice_get_reviewee_reviews instead.
Get all review cycles in the organization
Get details of a specific reviewee by ID. A reviewee represents a user's participation in a specific review cycle, including their weighted score, PDF report URLs, and links to their reviews. The reviewee ID is found in review cycle reviewee lists or individual review objects.
Get all reviews for a specific reviewee. This is the most efficient way to get reviews for a single person in a cycle (rather than fetching all cycle reviews and filtering). Optionally filter by review_type. To get a user's self-reviews: first find their reviewee ID via lattice_get_review_cycle_reviewees, then call this with review_type='Self'.
Get details of a specific update by ID
Get all updates in the organization
Get details of a specific user by ID
Get direct reports for a specific user
Get all goals for a specific user
Get all users in the organization
No tool annotations (readOnlyHint, idempotentHint). All 20 tools are read-only and safe to retry, but this is not declared in the schema. Agents cannot infer safety properties.
No error handling guidance. Descriptions do not explain what happens on invalid IDs, network failures, or permission errors. LLMs cannot recover from failures without explicit recovery hints.