# Langfuse MCP connector

The Langfuse connector brings your datasets, annotation queues, comments and review assignments into Claude, ChatGPT, Cursor and the Elaichi Agent, so your team can ask about them, add to them and tidy them in plain language.

Source: https://elaichi.ai/connectors/langfuse/

## Facts

| | |
| --- | --- |
| Application | Langfuse |
| Category | Analytics |
| AI tools | 100 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 100 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Langfuse is connected

- List open annotation queue items assigned to the eval team
- Create an annotation queue for last week's flagged traces
- Which blob storage integrations are configured in Langfuse?

## Connect Langfuse in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Langfuse.
2. Optionally set Share with, then press Connect.
3. Paste a Langfuse API key. One person generates a token in Langfuse and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Langfuse tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Langfuse to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Langfuse to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Langfuse to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Langfuse to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Langfuse tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Langfuse through Elaichi

### Turn a real conversation into a test case

AI engineering. After spotting a bad answer in production, add it to a Langfuse dataset as a new item with the expected output, without leaving the chat where you found it.

### Queue outputs for human review

Quality. Create a Langfuse annotation queue for this week's release, add the traces that need eyes on them, and assign each reviewer their share.

### Check what is waiting for review

Product. Ask how many items are still open in a Langfuse annotation queue and who they are assigned to before the weekly quality meeting.

### Record how an evaluation run went

Data. Log dataset run items in Langfuse as a batch of test cases finishes, so every run is tied back to the dataset it came from.

### Leave notes on traces for the team

Research. Add a comment to a Langfuse trace or observation explaining why the output was wrong, so the next person reading it has context.

### Clean up finished review work

Operations. Mark reviewed Langfuse queue items as done, remove stale assignments in bulk, and retire dataset items that no longer reflect the product.

## Frequently asked questions

### How do I connect Langfuse to Claude?

Connect Langfuse in Elaichi by pasting an API key from your Langfuse project settings. There is no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Langfuse is available in the chat.

### Does Langfuse work with ChatGPT and Cursor as well as Claude?

Yes. Once Langfuse is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Langfuse once and every client picks it up.

### What can an AI agent actually do with my Langfuse data?

With Langfuse connected, an agent can list your datasets and pull up individual dataset items, add new items and dataset run items, create annotation queues, add items to them and assign reviewers, and read or leave comments on traces. Because Langfuse exposes a lot of actions, the agent looks them up as needed, so short concrete asks like "add this to the regression dataset" work better than long paragraphs.

### Does connecting Langfuse give the AI access to every project?

No. The connection runs inside whatever the Langfuse API key you pasted can already see, typically one project, and the agent gets nothing beyond that. Elaichi can narrow access further, for example read only on datasets, but it can never widen what Langfuse itself allows.

### Can my team share one Langfuse connection?

Yes. One person connects Langfuse in Elaichi and shares it with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log records exactly who added a dataset item or assigned a review, not just that the shared connection did.

### Can I stop an agent from deleting or changing things in Langfuse?

Yes. Restrictions in Elaichi work per action, so you can allow reading Langfuse datasets and queues while blocking deletes of dataset items, queue items or assignments. A blocked action is never shown to Claude, ChatGPT, Cursor or any other client, so no prompt can reach it.

### What happens to a Langfuse connection when someone leaves?

When a person is offboarded in Elaichi, their access to Langfuse through every client ends at once. A Langfuse connection they shared keeps working for everyone else on the team. If you want to remove Langfuse entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and the Elaichi Agent together.

## All 100 Langfuse tools

Every tool below is callable through https://api.elaichi.ai/mcp once Langfuse is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Langfuse public annotation queues** (List). List all annotation queues in Langfuse. Returns a list of queues, each with id and upstream-defined fields in attributes. Truto handles pagination.
- **Create a Langfuse public annotation queue** (Create). Create an annotation queue in Langfuse. Returns the created queue with id. Requires a JSON request body. Required: name, scoreConfigIds.
- **Get single Langfuse public annotation queue by ID** (Get). Get a single Langfuse annotation queue by id. Returns the queue with id. Required: id.
- **List all Langfuse annotation queue items** (List). List items in a langfuse annotation queue. Returns each item's id and upstream-defined fields. Optional: status. Required: queue_id.
- **Create a Langfuse annotation queue item** (Create). Add an item to a langfuse annotation queue. Returns the created item with its id and upstream-defined fields. Required: queue_id, objectId, objectType.
- **Get single Langfuse annotation queue item by ID** (Get). Get a specific langfuse annotation queue item by id. Returns the item's id and upstream-defined fields. Required: id, queue_id.
- **Update a Langfuse annotation queue item by ID** (Update). Update a langfuse annotation queue item. Returns the item's id and upstream-defined fields. Required: id, queue_id.
- **Delete a Langfuse annotation queue item by ID** (Delete). Remove an item from a Langfuse annotation queue. Returns an empty 204 response on success. Required: id, queue_id.
- **Create a Langfuse annotation queue assignment** (Create). Assign a user to a Langfuse annotation queue. Returns the created assignment with its id, queue id, and user id. Required: queue_id, userId.
- **Langfuse annotation queue assignments bulk delete** (Delete). Remove a user's assignment from a Langfuse annotation queue. Returns an empty 204 response on success. Required: queue_id, userId.
- **List all Langfuse integrations blob storages** (List). List all blob storage integrations for the Langfuse organization. Returns: id, projectId, type, bucketName, endpoint, region, accessKeyId, prefix, exportFrequency, enabled, forcePathStyle, fileType, exportMode, exportStartDate, compressed, exportSource, exportFieldGroups, nextSyncAt, lastSyncAt, lastError, lastErrorAt, createdAt, updatedAt.
- **Get single Langfuse integrations blob storage by ID** (Get). Get the sync status of a Langfuse blob storage integration by id. Returns: id, projectId, enabled. Required: id.
- **Delete a Langfuse integrations blob storage by ID** (Delete). Delete a Langfuse blob storage integration by id. Returns an empty 204 response on success. Required: id.
- **Langfuse integrations blob storages bulk update** (Update). Create or update a Langfuse blob storage integration for a project by sending a provider-specific configuration payload. The call performs a test upload to validate the bucket. Returns: id, projectId, type, endpoint, region, prefix, enabled, compressed, createdAt, updatedAt. Required: projectId, type, bucketName, region, exportFrequency, enabled, forcePathStyle, fileType, exportMode.
- **List all Langfuse public comments** (List). List comments in Langfuse, optionally filtered by objectType, objectId, or authorUserId. Returns paginated comment records including id and upstream-defined comment attributes.
- **Create a Langfuse public comment** (Create). Create a comment attached to a Langfuse object (trace, observation, session, or prompt). Returns the created comment including id and upstream-defined comment attributes. Requires the request body defined by the upstream CreateCommentRequest schema. Required: projectId, objectType, objectId, content.
- **Get single Langfuse public comment by ID** (Get). Get a single Langfuse comment by id. Returns the comment including id and upstream-defined comment attributes. Required: id.
- **List all Langfuse public dataset items** (List). List dataset items in Langfuse. Returns: id, status, input, expectedOutput, metadata, sourceTraceId, sourceObservationId, datasetId, datasetName, createdAt, updatedAt, mediaReferences. Requires datasetName when version is provided.
- **Create a Langfuse public dataset item** (Create). Create a dataset item in Langfuse. Returns: id, status, input, metadata, createdAt, updatedAt. Required: datasetName.
- **Get single Langfuse public dataset item by ID** (Get). Get a Langfuse dataset item by id. Returns: id, status, input, metadata, createdAt, updatedAt. Required: id.
- **Delete a Langfuse public dataset item by ID** (Delete). Delete a Langfuse dataset item and all its run items. Returns an empty 204 response on success. Required: id.
- **List all Langfuse public dataset run items** (List). List dataset run items in langfuse. Returns a paginated list of run items for the specified dataset and run. Required: dataset_id, run_name.
- **Create a Langfuse public dataset run item** (Create). Create a dataset run item in langfuse. Returns the created run item with its id and schema-specific attributes. Required: runName, datasetItemId.
- **List all Langfuse public datasets** (List). Get all datasets. Returns: id, name, description, metadata, inputSchema, expectedOutputSchema, projectId, createdAt.
- **Create a Langfuse public dataset** (Create). Create a dataset. Returns: id, name, description, metadata, inputSchema, expectedOutputSchema, projectId, createdAt. Required: name.
- **Get single Langfuse public dataset by ID** (Get). Get a dataset. Returns: id, name, description, metadata, inputSchema, expectedOutputSchema, projectId, createdAt. Required: dataset_name.
- **Get single Langfuse dataset run by ID** (Get). Get a dataset run in Langfuse by id and return its run items. Returns an array of objects with id, name, description, metadata, datasetId, datasetName, createdAt, and updatedAt. Required: id, dataset_name.
- **Delete a Langfuse dataset run by ID** (Delete). Delete a dataset run in Langfuse and all its run items. This action is irreversible. Returns the delete confirmation response. Required: id, dataset_name.
- **List all Langfuse dataset runs** (List). List dataset runs in Langfuse for a dataset. Returns a list of runs, each including: id, created_at, updated_at. Required: dataset_name.
- **List all Langfuse public experiments** (List). List experiments in Langfuse. Returns experiment records including id, name, datasetId, metadata, and scores. Use `fields` to request `metadata` and `scores` in addition to the default `core` group. Required: from_start_time.
- **List all Langfuse public experiment items** (List). List Langfuse experiment items with cursor-based pagination, ordered by start time descending. Returns each item with id, traceId, startTime, endTime, experimentId, experimentName, and experimentItemId, plus optional field-group-specific fields for dataset, io, metadata, itemMetadata, experimentMetadata, and scores. Required: from_start_time.
- **List all Langfuse public healths** (List). Check the health of the Langfuse API and database. Returns the health status response.
- **Create a Langfuse public ingestion** (Create). Batch ingest tracing events into Langfuse. Returns a 207 ingestion response including a list of encountered errors. Deprecated in favor of the OpenTelemetry endpoint; max batch size 3.5 MB. Required: batch.
- **List all Langfuse public metrics v 2** (List). List aggregated metrics from a Langfuse project via the v2 Metrics API. Returns the query-dependent metrics result object. Required: query.
- **Get single Langfuse public observation by ID** (Get). Get a single langfuse observation (event, span, or generation) by id. Returns the observation record including id, traceId, type, name, startTime, endTime, usageDetails, and costDetails. Required: id.
- **List all Langfuse public observations** (List). List observations in Langfuse with optional filtering by type, level, trace, environment, and start time. Returns observation records including id, traceId, type, name, and metadata. Legacy v1 endpoint; consider the v2 endpoint for cursor-based pagination.
- **List all Langfuse public observations v 2** (List). List observations in a Langfuse project using the Observations API v2. Returns each observation's id, traceId, type, start/end times, model, usage, cost, and metadata. Supports filters such as traceId, type, level, environment, and start-time range, plus field groups (`fields`) and cursor-based pagination.
- **Create a Langfuse public score** (Create). Create a score in Langfuse. Supports both trace and session scores. Required: name, value.
- **Delete a Langfuse public score by ID** (Delete). Delete a Langfuse score by id. Returns an empty 204 response on success. Required: id.
- **List all Langfuse public scores** (List). List scores in Langfuse. Returns a polymorphic value field (NUMERIC→number, BOOLEAN→boolean, CATEGORICAL/TEXT/CORRECTION→string) with core fields id, projectId, name, dataType, source, timestamp, environment, createdAt, and updatedAt.
- **List all Langfuse public scores v 2** (List). List deprecated Langfuse v2 scores (trace and session scores). Returns a score record including id, projectId, name, value, dataType, source, timestamp, environment, createdAt, and updatedAt. Deprecated: use GET /api/public/v3/scores instead; not available on Langfuse v4 and later.
- **Get single Langfuse public scores v 2 by ID** (Get). Get a deprecated Langfuse v2 score by id. Returns the score including id, projectId, name, value, dataType, source, timestamp, environment, createdAt, and updatedAt. Deprecated: use GET /api/public/v3/scores with the id filter; not available on Langfuse v4 and later. Required: id.
- **List all Langfuse public llm connections** (List). List all LLM connections in the authenticated Langfuse project. Returns connection records including id and adapter-specific attributes.
- **Delete a Langfuse public llm connection by ID** (Delete). Delete a Langfuse LLM connection by id. Evaluators that depend on the deleted connection are automatically paused. Returns the deletion response including id and operation-specific attributes. Required: id.
- **Langfuse public llm connections bulk update** (Update). Create or update a Langfuse LLM connection. The connection is upserted on provider. Returns the upserted connection object including id and adapter-specific attributes. Required: provider, adapter, secretKey.
- **Get single Langfuse public media by ID** (Get). Get a langfuse media record by id. Returns: url. Required: id.
- **Update a Langfuse public media by ID** (Update). Patch a langfuse media record by id. Returns an empty 204 response on success. Required: id, uploadedAt, uploadHttpStatus.
- **Create a Langfuse public media** (Create). Get a presigned upload URL for a langfuse media record. Returns: url. Requires a request body. Required: contentType, contentLength, sha256Hash, field.
- **List all Langfuse public models** (List). List models in Langfuse. Returns each model record with its id and upstream model-specific attributes.
- **Create a Langfuse public model** (Create). Create a model in Langfuse by posting a JSON request body. Returns the created model record with its id and upstream model-specific attributes. Required: modelName, matchPattern.
- **Get single Langfuse public model by ID** (Get). Get a single Langfuse model by id. Returns the model object including its id, modelName, and project-specific pricing fields. Required: id.
- **Delete a Langfuse public model by ID** (Delete). Delete a Langfuse model by id. Cannot delete Langfuse-managed models; create a custom definition with the same modelName to override instead. Returns an empty 204 response on success. Required: id.
- **Create a Langfuse otel trace** (Create). Ingest OpenTelemetry traces into Langfuse via the OTLP/HTTP trace export endpoint. Returns an OTLP export response with partial success summary. Required: resourceSpans.
- **List all Langfuse organizations memberships** (List). List all organization memberships in Langfuse. Returns a list of membership records, each including id and attributes.
- **Langfuse organizations memberships bulk update** (Update). Create or update an organization membership in Langfuse. Returns the membership record including id and attributes. Requires a JSON request body. Required: userId, role.
- **Langfuse organizations memberships bulk delete** (Delete). Delete an organization membership from Langfuse. Returns the deletion response including id and attributes. Requires a JSON request body. Required: userId.
- **List all Langfuse project memberships** (List). List all memberships for a langfuse project. Returns a list of membership records including id, created_at, and updated_at. Required: project_id.
- **Langfuse project memberships bulk update** (Update). Create or update a langfuse project membership. Returns the membership record including id and schema-specific attributes. The user must already be a member of the organization. Required: project_id, userId, role.
- **Langfuse project memberships bulk delete** (Delete). Delete a membership from a langfuse project. Returns the deletion response including id and schema-specific attributes. The user must be a member of the organization. Required: project_id, userId.
- **List all Langfuse organizations projects** (List). List all projects for the organization associated with the API key in langfuse. Returns project objects, each including id and upstream-defined attributes. Requires an organization-scoped API key.
- **List all Langfuse organizations API keys** (List). List all API keys for the Langfuse organization associated with the API key. Returns: id, attributes.
- **List all Langfuse public projects** (List). Get the Langfuse project associated with the API key. Returns the project object including id, name, createdAt, and updatedAt.
- **Create a Langfuse public project** (Create). Create a new Langfuse project. Returns the created project including id, name, metadata, and retention. Required: name, retention.
- **Update a Langfuse public project by ID** (Update). Update an existing Langfuse project by id. Returns the updated project including id, name, metadata, and retention. Required: id, name.
- **Delete a Langfuse public project by ID** (Delete). Delete a Langfuse project by id. Returns the project deletion response with upstream-defined fields. Project deletion is processed asynchronously. Required: id.
- **List all Langfuse project API keys** (List). List all API keys for a Langfuse project. Returns the API key objects including their id and upstream-defined attributes. Required: project_id.
- **Create a Langfuse project API key** (Create). Create a new Langfuse project API key. Returns the created API key object including its id and upstream-defined attributes. publicKey and secretKey must be provided together. Required: project_id.
- **Delete a Langfuse project API key by ID** (Delete). Delete a Langfuse project API key by id. Returns the deletion result including id and upstream-defined attributes. Required: id, project_id.
- **Langfuse prompt versions bulk update** (Update). Update the labels for a specific Langfuse prompt version. Returns the updated prompt with id, name, version, projectId, labels, prompt, type, config, commitMessage, tags, createdAt, and updatedAt. Required: name, version, newLabels.
- **List all Langfuse public prompts** (List). List langfuse prompt names with their versions and labels. Returns an array of prompt metadata records. Optional filters: name, label, tag, from_updated_at, to_updated_at.
- **Create a Langfuse public prompt** (Create). Create a new version for a langfuse prompt. Returns the created prompt object.
- **Get single Langfuse public prompt by ID** (Get). Get a single langfuse prompt by prompt name. Returns the prompt object. Optional: version, label, resolve. Required: prompt_name.
- **Langfuse public prompts bulk delete** (Delete). Delete langfuse prompt versions by prompt name. If neither version nor label is specified, all versions of the prompt are deleted. Required: prompt_name.
- **List all Langfuse SCIM service provider configs** (List). Get the SCIM Service Provider Configuration for a Langfuse organization. Returns the SCIM ServiceProviderConfig object including its identifier and SCIM-defined capability attributes.
- **List all Langfuse SCIM resource types** (List). List SCIM Resource Types in Langfuse. Returns a list of resource type entries, each containing id and attributes (SCIM-defined fields).
- **List all Langfuse SCIM schemas** (List). List SCIM schemas in Langfuse. Returns the registered schemas with their ids, names, and attribute definitions.
- **List all Langfuse SCIM users** (List). List SCIM users in the langfuse organization. Returns the SCIM list response. Supports optional filter, startIndex, and count parameters.
- **Create a Langfuse SCIM user** (Create). Create a new SCIM user in the langfuse organization. Returns the created SCIM user object. Required: userName, name.
- **Get single Langfuse SCIM user by ID** (Get). Get a specific langfuse SCIM user by id. Returns the SCIM user object. Required: id.
- **Delete a Langfuse SCIM user by ID** (Delete). Remove a SCIM user from the langfuse organization by id. This removes the user from the organization but does not delete the user entity itself. Returns an empty 204 response on success. Required: id.
- **List all Langfuse public score configs** (List). List all Langfuse score configs. Returns a paginated list of score configs, each including id and upstream schema-defined attributes.
- **Create a Langfuse public score config** (Create). Create a Langfuse score config with a JSON request body. Returns the created score config including id and upstream schema-defined attributes. Required: name, dataType.
- **Get single Langfuse public score config by ID** (Get). Get a Langfuse score config by id. Returns the score config including id and upstream schema-defined attributes. Required: id.
- **Update a Langfuse public score config by ID** (Update). Update a Langfuse score config by id with a JSON request body. Returns the updated score config including id and upstream schema-defined attributes. Required: id.
- **List all Langfuse public sessions** (List). List langfuse sessions. Returns a paginated list of session objects including id and content-type-specific attributes. Optional: fromTimestamp, toTimestamp, environment. Legacy endpoint; prefer v2 observations for new data extraction workflows.
- **Get single Langfuse public session by ID** (Get). Get a Langfuse session by id. Returns the session object including its id and traces. Traces are not paginated; prefer the v2 observations endpoint for large sessions. Required: id.
- **Get single Langfuse public trace by ID** (Get). Get a specific Langfuse trace by id. Returns the trace object including id, name, timestamp, input, output, metadata, scores, observations, and metrics such as totalCost and latency. Optional: fields. Required: id.
- **Delete a Langfuse public trace by ID** (Delete). Delete a specific Langfuse trace by id. Returns the upstream deletion response in `attributes`. Required: id.
- **List all Langfuse public traces** (List). List Langfuse traces in a project. Returns each trace with id, name, timestamp, userId, sessionId, tags, and aggregated metrics. Optional filters: userId, name, sessionId, tags, version, release, environment, fromTimestamp, toTimestamp, and a JSON filter string.
- **Langfuse public traces bulk delete** (Delete). Delete multiple Langfuse traces at once. Returns a 200 confirmation response. Avoid sending more than 30–50 trace IDs in a single request. Required: traceIds.
- **Create a Langfuse unstable dashboard widget** (Create). Create a reusable dashboard widget in Langfuse. Returns the created widget including id, view, and minVersion. Widgets must be placed on a dashboard grid via the UI; the legacy traces view is rejected. Unstable API: may evolve.
- **List all Langfuse unstable evaluation rules** (List). List evaluation rules in the authenticated Langfuse project. Returns each rule's id, name, target, enabled state, evaluator, filter, mapping, and timestamps.
- **Create a Langfuse unstable evaluation rule** (Create). Create an evaluation rule in Langfuse. Returns the created rule with id, name, target, enabled, evaluator, filter, mapping, and timestamps. Required: name, target, and evaluator (with name and scope). Target must be observation or experiment; omit mapping for code evaluators; at most 50 active rules per project.
- **Get single Langfuse unstable evaluation rule by ID** (Get). Get a single Langfuse evaluation rule by id. Returns the rule including id, name, target, enabled, evaluator, filter, mapping, and timestamps. Required: id.
- **Update a Langfuse unstable evaluation rule by ID** (Update). Update a Langfuse evaluation rule by id. Returns the updated rule including its id, name, target, evaluator, filter, mapping, and enabled state. Required: id. Provide only the fields you want to change.
- **Delete a Langfuse unstable evaluation rule by ID** (Delete). Delete a Langfuse evaluation rule by id. Returns the deletion result object. Required: id. Note: this removes the live-ingestion rule only and does not delete the referenced evaluator.
- **List all Langfuse unstable evaluators** (List). List evaluators available to the authenticated Langfuse project. Returns the latest version of each evaluator, including id, name, scope, version, variables, outputDefinition, and modelConfig. Project and Langfuse-managed evaluators may share a name but appear as separate items with different scope values.
- **Create a Langfuse unstable evaluator** (Create). Create an evaluator in Langfuse. Returns the created evaluator including id, name, scope, version, variables, outputDefinition, and modelConfig. Required: name. For `llm_as_judge` evaluators, send `type` and `outputDefinition`; for `code` evaluators, send `type`, `sourceCode`, and `runtime`.
- **Get single Langfuse unstable evaluator by ID** (Get). Get a single Langfuse evaluator by id. Returns the evaluator including id, name, version, scope, type, prompt, outputDefinition, modelConfig, and variables. Required: id.
- **Delete a Langfuse unstable evaluator by ID** (Delete). Delete a Langfuse evaluator by id. Removes the evaluator and all its stored versions; existing scores are not deleted. Returns the deletion response with id and attributes. Required: id. Cannot delete managed evaluators (scope=managed); delete referencing evaluation rules first to avoid 409.
