make_decisionLABSCO SUMMARY
It replaces a repeated language-model call with a trained classifier whose decisions you can audit.
The loop is deliberate: define the type with its rules and thresholds, feed it labelled examples of your own or generated ones, train, then call. Escalation to a live LLM is something you opt into on the decision type rather than something that happens by default, which is what keeps the cost and latency of a single decision predictable. Two constraints to plan around: training wants at least 38 labelled examples per option, so a type with several options needs a real example set before it is worth starting, and 5,000 examples is the ceiling per type with an over-limit batch rejected whole rather than partly applied. The Claude Desktop gap is worth knowing before you choose a client.
What it is
An MCP server for Sparkient's decision intelligence API. You define a decision type with its rules and thresholds, add or generate labelled examples, train a model, then call it — with the decision logs, organisation metrics and credit balance reachable from the same place. Compiled cloud decisions target an under-100ms model path, though what you measure end to end also includes your client and the network.
What you get
- make_decision runs one metered, logged decision; the API sets both escalate and fallback_used, so read stage to tell an escalation from a fallback
- batch_decisions takes up to 50 ordered decisions, returning failed positions as null with an indexed error — those positions must not be acted on
- create_decision_type creates a classifier-only type by default, with structured CEL rules, an optional input schema, confidence thresholds and explicit opt-in to live-LLM escalation; list_decision_types and get_decision_type read them back with the active configuration version and deployment status
- add_examples adds labelled records, and generate_examples produces synthetic ones through Gemini
- train_model starts async training once there are at least 38 labelled examples per option, get_training_status polls stage progress, and cancel_training cancels exactly the active policy attempt
- get_decision_logs queries past decisions, get_metrics returns organisation aggregates for the last 24 hours including compiled and escalation rates, and get_credits reports balance, plan and the API's reset timestamp
- get_edge_export_instructions returns the authenticated REST URL and dashboard path for an eligible Growth or Scale edge bundle — the ZIP itself never travels through MCP
- Two resources cover discovery: sparkient://decision-types for the list, and sparkient://decision-types/{decision_type_id} for one type's full schema
- Each decision type stores up to 5,000 examples; an add_examples batch that would exceed that fails outright rather than partially, and near the ceiling generate_examples creates only the number that still fits
Requirements
The cloud server is https://mcp.sparkient.ai/mcp with Authorization: Bearer and an API key from the Sparkient dashboard. Claude Desktop cannot reach it — its remote connectors expect authless or OAuth servers while this one takes a key in the header — so use Cursor, VS Code, or run the local proxy. Locally: pip install -e ".[dev]" then python -m sparkient_mcp with SPARKIENT_API_URL set to https://api.sparkient.ai, keeping the key in the MCP client and sending it as a bearer header on each request rather than putting it in the server process.
Setup effort
Add the hosted endpoint plus a key — paste it into your client, then supply credentials
USE CASES
Standing up a classifier for a decision you make constantly
Define the type with its options, rules and confidence thresholds, add the labelled examples you already have, and train when there are enough of them per option.
Getting to a trained model when you have few real examples
Generate synthetic labelled records to fill out the thin options, then train and watch the stage progress rather than guessing whether it is stuck.
Classifying a queue rather than one item at a time
Up to fifty ordered decisions in one call, with failures coming back as nulls carrying an indexed error so they can be retried rather than silently accepted.
Checking how often decisions escalate
Organisation aggregates for the last day, including compiled and escalation rates, alongside the individual decision logs behind them.
Running the model where the network isn't
Get the authenticated download URL and dashboard path for the edge bundle on an eligible plan, then fetch it outside this connection.
14 tools
Listed in project docs. Your client may show a different list.
batch_decisionslist_decision_typesget_decision_typecreate_decision_typeadd_examplesgenerate_examplestrain_modelget_training_statuscancel_trainingget_decision_logsget_metricsget_creditsget_edge_export_instructionsBEFORE YOU INSTALL
What to know first
Tools you get
14 tools named in the project's documentation.
Requires
A client that can reach a remote MCP server over HTTP
INSTALLATION
Connect your client
Server setup
https://mcp.sparkient.ai/mcpAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
MCP Clients
Cursor
{
"mcpServers": {
"sparkient": {
"url": "https://mcp.sparkient.ai/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}VS Code
{
"servers": {
"sparkient": {
"type": "http",
"url": "https://mcp.sparkient.ai/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}Claude Desktop — edge server
pip install "sparkient-edge[all]"Download an edge bundle: open the decision type in the Sparkient dashboard and choose Export, or call get_edge_export_instructions for the download URL (eligible Growth or Scale plans)
Add this to claude_desktop_config.json:
{
"mcpServers": {
"sparkient-edge": {
"command": "python",
"args": [
"-m",
"sparkient_edge"
]
}
}
}Cursor — local dev proxy
{
"mcpServers": {
"sparkient-local-dev": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}