Nyckel integration
Nyckel trains and runs custom machine-learning functions on text, images or table rows: classification, tagging, detection, OCR and similarity search. Create a function, add labels and annotated samples to train it, invoke it to get a predicted label with its confidence, or search for the nearest samples. The trainer stream, the CSP report sink and Nyckel's older pre-trained OCR route are not exposed. Authentication is OAuth 2.0 client credentials: the account-wide client_id and client_secret from the Access Management section of the Nyckel account buy a one-hour bearer token.
Say what should happen.
The workflow builds itself.
What you can do with Nyckel
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Function, 6 operations
create_functionCreate functionPOSTCreates a new, empty function. input (Text, Image or Tabular) and output (Classification, Detection, Search, Ocr, Localization, Tags or BoxDetect) are fixed at creation and cannot be changed later.delete_functionDelete functionDELETEPermanently deletes the function with all its labels, samples and annotations. This cannot be undone.get_functionGet functionGETReturns one function's configuration: id, name, projectId, input modality and output modality.invoke_tabular_functionInvoke tabular functionPOSTSame as invoke_function, for a Tabular function: data is a row object keyed by field id or name. Returns the predicted labelName, labelId and confidence; may be captured for review unless capture is false.list_functionsList functionsGETLists the functions of your Nyckel project (id, name, input and output modality), paged with startIndex and count. Use the id as functionId in every other tool.update_functionUpdate functionPUTRenames a function or moves it to another project. Leave a field out to keep its current value; input and output modality cannot be changed after creation.
Sample, 6 operations
create_sampleCreate samplePOSTAdds a sample to a Text or Image function, optionally annotated with a label so the function trains on it. A sample with the same content or externalId is refused (409, with the existing id): re-label it with set_sample_annotation.create_tabular_sampleCreate tabular samplePOSTSame as create_sample, for a Tabular function: data is a row object keyed by field id or name. A sample with the same content or externalId is refused (409, with the existing id).delete_sampleDelete sampleDELETEDeletes one sample from a function. This cannot be undone.delete_sample_by_external_idDelete sample by external idDELETEDeletes the sample that carries the given externalId (your own identifier). This cannot be undone.get_sampleGet sampleGETReturns one sample with its data, annotation, prediction, sample sets and externalId.list_samplesList samplesGETLists a function's samples with their annotation and prediction, filtered by annotation, prediction agreement, capture reason, sample set, creation date or free text.
Field, 5 operations
create_fieldCreate fieldPOSTAdds an input field (a column) to a Tabular function. Rows sent to invoke_tabular_function or create_tabular_sample are keyed by field id or field name.delete_fieldDelete fieldDELETEDeletes an input field from a Tabular function. This cannot be undone.get_fieldGet fieldGETReturns one input field of a Tabular function: id, name and type.list_fieldsList fieldsGETLists the input fields (columns) of a Tabular function: id, name and type (Text, Number or Image).update_fieldUpdate fieldPUTUpdates an input field of a Tabular function. Leave a field out to keep its current value.
Label, 5 operations
create_labelCreate labelPOSTCreates a label (a class the function can predict). Then annotate samples with it through create_sample or set_sample_annotation.delete_labelDelete labelDELETEDeletes a label from a function. This cannot be undone.get_labelGet labelGETReturns one label of a function: id, name, description and metadata.list_labelsList labelsGETLists the labels (classes) of a function: id, name, description and metadata. Use a label id or name to annotate samples.update_labelUpdate labelPUTUpdates a label's name, description or metadata. Leave a field out to keep its current value.
Annotation, 2 operations
delete_sample_annotationDelete sample annotationDELETERemoves a sample's annotation. The sample stays in the function but no longer trains it until annotated again.set_sample_annotationSet sample annotationPUTSets or replaces a sample's annotation (its ground-truth label); an existing annotation is overwritten. Pass labelId or labelName.
Invoke, 2 operations
invoke_functionInvoke functionPOSTRuns a function on one Text or Image input and returns the predicted labelName, labelId and confidence (0 to 1). The invoke may be captured for review unless capture is false.search_function_samplesSearch function samplesPOSTRuns a Search function: returns the samples nearest to the query, each with sampleId, distance and externalId. Pass data (raw input) or the sampleId of an existing sample.
Sample set, 2 operations
add_sample_to_sample_setAdd sample to sample setPOSTAdds a sample to a sample set, optionally with an integer weight. The sample set is created on the fly if it does not exist yet.remove_sample_from_sample_setRemove sample from sample setDELETERemoves a sample from a sample set. The sample itself stays in the function.
Summary, 1 operation
get_function_summaryGet function summaryGETReturns aggregate counts for a function: total samples, annotated samples, and annotated samples per label id. Useful to check training progress.
Use Nyckel from Claude Code, Cursor or Codex
Connect Nyckel in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Nyckel operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Nyckel
- Create your workspace
Sign up free. Nothing to install.
- Connect Nyckel once
Add your Nyckel connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Nyckel integration FAQ
What can you do with the Nyckel integration?
LiveContext exposes 29 operations on Nyckel, covering function, sample, field and label.
