---
title: "Connect Culture Amp to Claude: Query Review Cycles & Engagement"
slug: connect-culture-amp-to-claude-query-review-cycles-engagement
date: 2026-10-22
author: Roopendra Talekar
categories: ["AI & Agents"]
excerpt: "Learn how to connect Culture Amp to Claude using Truto's managed MCP server. Query performance cycles, manager reviews, and employee demographics securely."
tldr: "Connect Culture Amp to Claude securely using a managed MCP server. This guide shows how to generate tools dynamically, handle rate limits, and automate HR workflows with natural language."
canonical: https://truto.one/blog/connect-culture-amp-to-claude-query-review-cycles-engagement/
---

# Connect Culture Amp to Claude: Query Review Cycles & Engagement


If your HR or People Ops team needs to connect Culture Amp to Claude to query performance review cycles, summarize employee feedback, or track demographic engagement, you need a [Model Context Protocol (MCP) server](https://truto.one/what-is-mcp-and-mcp-servers-and-how-do-they-work/). This server acts as the translation layer between Claude's tool calling capabilities and Culture Amp's REST APIs. You can either [build, host, and maintain this infrastructure yourself](https://truto.one/the-hands-on-guide-to-building-mcp-servers-for-ai-agents-2026/), or use a [managed integration platform like Truto](https://truto.one/managed-mcp-for-claude-full-saas-api-access-without-security-headaches/) to [dynamically generate a secure, authenticated MCP server URL](https://truto.one/auto-generated-mcp-tools-for-ai-agents-a-2026-architecture-guide/). 

If your team uses ChatGPT, check out our guide on [/connect-culture-amp-to-chatgpt-analyze-employee-review-data/](https://truto.one/connect-culture-amp-to-chatgpt-analyze-employee-review-data/) or explore our broader architectural overview on [/connect-culture-amp-to-ai-agents-sync-performance-workforce-data/](https://truto.one/connect-culture-amp-to-ai-agents-sync-performance-workforce-data/).

Giving a Large Language Model (LLM) read and write access to highly sensitive HR and performance data requires strict engineering discipline. You have to handle token lifecycles, map nested review schemas to MCP tool definitions, and deal with Culture Amp's specific API behaviors. Every time an endpoint shifts or a schema updates, you have to update your server code, redeploy, and test the integration.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Culture Amp, connect it natively to Claude Desktop, and execute complex People Ops workflows using natural language.

> Want to give your AI agents secure, authenticated access to Culture Amp and 100+ other SaaS APIs? Let's talk about managed MCP architecture.
>
> [Talk to us](https://truto.one/book-a-demo/)

## The Engineering Reality of the Culture Amp API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover and execute tools, the reality of implementing it against specialized B2B APIs is painful. Culture Amp is built to manage complex organizational hierarchies, performance cycles, and highly sensitive employee data. Its API reflects that domain complexity.

If you decide to build a custom Culture Amp MCP server, here are the specific integration challenges you will face:

### Deprecated Survey Endpoints and Reporting Shifts
Culture Amp has historically maintained dedicated REST endpoints for surveys, questions, and responses. However, these specific endpoints are deprecated for new setups, with the vendor migrating customers toward a centralized Reporting API for RDE-enabled (Reporting Data Extract) survey data. If you hardcode MCP tools to the legacy survey endpoints, your AI agent will start throwing errors on newer Culture Amp instances. Truto handles this transition by dynamically generating tools based on the documentation records and integration configuration specific to the environment, ensuring the LLM only attempts to call supported endpoints.

### Nested Performance Review Schemas
Manager reviews in Culture Amp are not flat key-value pairs. A single manager review payload includes multi-layered objects containing `openTextQuestions`, `multipleChoiceQuestions`, and `multipleChoiceMultiSelectQuestions`. When an LLM calls a tool to retrieve reviews, it receives this deeply nested JSON structure. If your MCP server does not accurately map these complex schemas into the tool definition's `query_schema` and `body_schema`, Claude will hallucinate query parameters or fail to extract the actual performance ratings hidden inside the nested arrays.

### Rate Limits and the 429 Passthrough
Culture Amp enforces strict rate limits to protect its infrastructure, and hitting a HTTP 429 Too Many Requests is common when pulling large directories or historical performance cycles. It is critical to understand how Truto handles this: **Truto does not retry, throttle, or apply backoff on rate limit errors.** When the upstream Culture Amp API returns an HTTP 429, Truto passes that error directly to the caller. 

However, Truto does normalize the upstream rate limit information into standardized headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`) per the IETF spec. The caller - meaning your custom LangChain script or the Claude client - is entirely responsible for catching the error, reading the headers, and implementing the retry and backoff logic. Do not assume the MCP server absorbs rate limits for you.

## Generating the Culture Amp MCP Server

Truto derives MCP tools dynamically from the integration's resource definitions and documentation records. A tool only appears in the MCP server if it has a corresponding documentation entry, ensuring the LLM is only exposed to curated, well-described endpoints. 

Each MCP server is scoped to a single integrated account (a connected instance of Culture Amp for a specific tenant). The generated URL contains a cryptographic token that encodes which account to use, what tools to expose, and when the server expires.

You can create this server in two ways.

### Method 1: Via the Truto UI

For IT admins or one-off testing, the easiest way to generate the server is through the dashboard.

1. Log in to your Truto dashboard and navigate to the integrated account page for the specific Culture Amp connection.
2. Click the **MCP Servers** tab.
3. Click **Create MCP Server**.
4. Select your desired configuration. You can specify a human-readable name, filter allowed methods (e.g., limit to `read` only), restrict tools by tags, and set an expiration date.
5. Click Save and copy the generated MCP server URL (e.g., `https://api.truto.one/mcp/a1b2c3d4e5f6...`).

### Method 2: Via the Truto API

For engineering teams building multi-tenant AI products, you will want to provision MCP servers programmatically for your users.

Make an authenticated `POST` request to the `/integrated-account/:id/mcp` endpoint. The API validates that the integration has tools available, generates a secure token, stores it in distributed KV storage for low-latency routing, and returns a ready-to-use URL.

```bash
curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Culture Amp Performance AI Agent",
    "config": {
      "methods": ["read"],
      "tags": ["performance", "directory"]
    },
    "expires_at": "2026-12-31T23:59:59Z"
  }'
```

The response will contain the secure URL you need to pass to Claude:

```json
{
  "id": "mcp_token_9x8y7z6",
  "name": "Culture Amp Performance AI Agent",
  "config": {
    "methods": ["read"],
    "tags": ["performance", "directory"]
  },
  "expires_at": "2026-12-31T23:59:59.000Z",
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f67890"
}
```

## Connecting the MCP Server to Claude

Once you have your Truto MCP URL, connecting it to Claude requires zero additional authentication. The URL itself acts as the self-contained authentication and routing mechanism.

### Method A: Via the Claude UI (Desktop App)

If you are using the Claude Desktop application for local agent workflows:

1. Open Claude Desktop.
2. Navigate to **Settings -> Integrations -> Add MCP Server** (Note: Interface labels may vary slightly between versions).
3. Paste the Truto MCP URL into the connection string field.
4. Click **Add** or **Connect**.

Claude will immediately execute the `initialize` handshake and call `tools/list`. It will then display the available Culture Amp tools in its interface.

### Method B: Via Manual Config File

For developers managing configurations as code, you can edit the `claude_desktop_config.json` file directly to include the Server-Sent Events (SSE) client.

Open your config file:
- Mac: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

Add the Truto server configuration using the official MCP SSE transport command:

```json
{
  "mcpServers": {
    "culture_amp_truto": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f67890"
      ]
    }
  }
}
```

Restart Claude Desktop. The model will automatically discover the tools and make them available for your prompts.

## Security and Access Control

Exposing HR data to an LLM requires tight access control. Truto provides four distinct configuration flags on the MCP token to restrict what the AI agent can do:

*   **Method filtering (`config.methods`)**: Restrict the server to specific HTTP operation types. Passing `["read"]` limits the LLM strictly to `get` and `list` operations, ensuring it cannot accidentally mutate employee data.
*   **Tag filtering (`config.tags`)**: Scope the available tools to specific functional areas. By passing `["performance"]`, the server will only expose tools for manager reviews and performance cycles, omitting unrelated tools.
*   **Secondary Authentication (`config.require_api_token_auth`)**: By default, the URL alone is enough to authenticate. If you set this flag to `true`, the client must also provide a valid Truto API token in the `Authorization` header, adding a second layer of security.
*   **Time-to-Live (`expires_at`)**: Set an ISO datetime for the server to automatically expire. When the expiration is reached, distributed cleanup alarms delete the database records and KV entries instantly, permanently revoking access.

## Culture Amp Hero Tools

Truto dynamically builds descriptive, snake_case tool names from the underlying API resources. Here are the highest-leverage tools available for Culture Amp workflows.

### list_all_culture_amp_performance_cycles
Returns a list of all performance cycles within the account, including their state (open, closed, archived) and timestamps. This is typically the first tool an agent calls to map historical context.
> "List all the performance cycles in our Culture Amp account and find the ID for the 2025 Annual Review cycle."

### list_all_culture_amp_performance_cycle_manager_reviews
Fetches all manager reviews associated with a specific performance cycle. This is critical for auditing completion rates and extracting organizational performance metrics in bulk. Requires the `performance_cycle_id`.
> "Pull all the manager reviews for the 2025 Annual Review cycle and list any where the status is not completed."

### list_all_culture_amp_employees
Retrieves the core employee directory. Returns crucial metadata including the employee's email, standard name, preferred name, start date, and status. It supports query filtering by email or identifier.
> "Find the Culture Amp employee record for jsmith@example.com and tell me their start date."

### get_single_culture_amp_manager_review_by_id
Retrieves the full, deeply nested payload for a specific manager review. This tool is heavily utilized when an agent needs to read the exact text responses to open-ended performance questions or multi-select criteria.
> "Get the full manager review details for review ID 88712 and summarize the open text feedback provided by the manager."

### list_all_culture_amp_employee_demographics
Returns the specific demographic assignments for a given employee (e.g., department, location, seniority level). This is vital for cross-referencing engagement or performance data against organizational cohorts.
> "List the demographic data for employee ID 99281. What department and location are they assigned to?"

### get_single_culture_amp_employee_by_id
Fetches a highly specific, single employee record. When the LLM has already discovered an employee ID via a review or a list operation, it uses this tool to hydrate the exact user details.
> "Retrieve the employee record for ID 10452 and confirm if their account is currently active."

For a complete list of available resources, endpoints, and schemas, visit the [Culture Amp integration page](https://truto.one/integrations/detail/cultureamp).

## Workflows in Action

Once the MCP server is configured and connected, Claude can execute complex, multi-step operations that would traditionally require custom Python scripts or manual CSV exports.

### Scenario 1: Performance Cycle Audit

A People Ops administrator needs to identify which managers have not yet acknowledged or completed their reviews for an active performance cycle. Instead of clicking through dashboards, they ask Claude to audit the cycle.

> "Find the 'Q3 2025 Mid-Year Review' performance cycle. Then pull all the manager reviews for that cycle and give me a list of the employee IDs where the review has not been acknowledged by the manager yet."

**Execution Steps:**
1. Claude calls `list_all_culture_amp_performance_cycles` to retrieve all cycles.
2. The model parses the JSON response, identifies the object where `name` matches "Q3 2025 Mid-Year Review", and extracts the `id`.
3. Claude calls `list_all_culture_amp_performance_cycle_manager_reviews`, passing the extracted ID as the `performance_cycle_id` query parameter.
4. The model filters the returned array for reviews where `reviewAcknowledged` is `false` or `status` is incomplete.

**Result:** Claude responds with a cleanly formatted list of employee IDs lacking acknowledged reviews, saving the admin significant manual effort.

```mermaid
sequenceDiagram
    participant Claude as Claude Desktop
    participant MCP as Truto MCP Server
    participant Upstream as Culture Amp API
    
    Claude->>MCP: Call list_all_culture_amp_performance_cycles
    MCP->>Upstream: GET /v1/performance_cycles
    Upstream-->>MCP: Returns cycles array
    MCP-->>Claude: JSON array of cycles
    
    Claude->>MCP: Call list_all_culture_amp_performance_cycle_manager_reviews
    MCP->>Upstream: GET /v1/reviews?performance_cycle_id=abc-123
    Upstream-->>MCP: Returns reviews array
    MCP-->>Claude: JSON array of reviews
```

### Scenario 2: Employee Demographic & Review Synthesis

An HR Business Partner wants to summarize a specific employee's performance feedback and understand their demographic placement within the organization to prepare for a calibration meeting.

> "Find the employee record for m.scott@example.com. Get their demographic assignments, and then pull all their historical manager reviews. Summarize the performance ratings across all cycles."

**Execution Steps:**
1. Claude calls `list_all_culture_amp_employees` with the query parameter `email=m.scott@example.com`.
2. From the resulting array, Claude extracts the employee `id`.
3. Claude calls `list_all_culture_amp_employee_demographics` using the `employee_id` to retrieve department, tenure, and location data.
4. Claude calls `list_all_culture_amp_employee_manager_reviews` using the same `employee_id`.
5. The model reads the nested payload, extracting the `performanceRating` from each review object.

**Result:** The LLM generates a comprehensive summary detailing the employee's department, role, and a historical timeline of their performance ratings, instantly synthesizing data across three distinct API domains.

## Wrapping Up

Integrating AI agents with enterprise HR systems requires more than just standard API keys. You need strict scope control, precise schema mapping for complex nested objects, and a reliable way to handle pagination and rate limits without constantly updating integration code. By leveraging Truto's dynamically generated MCP servers, you eliminate the overhead of building and maintaining custom tool definitions. Your engineering team can provision secure, TTL-bound, read-only endpoints in seconds, giving Claude immediate, structured access to Culture Amp's performance and directory data. Focus on building high-value People Ops workflows, and let the MCP architecture handle the connectivity.
