Connect ChatGPT
ChatGPT connects to Decision Cloud as a remote MCP app. Developer mode discovers the server's evaluate_file tool.
- In ChatGPT, open Settings, then Security and login. Turn on Developer mode. Availability can depend on your account and workspace policy.
- Open ChatGPT Plugins, select the plus button, enter a name and description, then choose the public endpoint connection method and paste the server URL below.
- Review the discovered tool, then add the connection to a new conversation from the tools menu.
- If ChatGPT asks you to authorize Decision Cloud, sign in to your account. Use /login to create or access the account and /pricing to add credits.
https://decision-cloud.vercel.app/api/mcpSee OpenAI's current ChatGPT connection guide.
Connect Claude
In Claude on the web or desktop, add Decision Cloud as a custom remote connector.
- Open Settings, then Connectors.
- Select Add, then Add custom connector.
- Enter the server URL shown below and add the connector.
- Complete the Decision Cloud authorization prompt if Claude shows one. If your organization manages connectors, ask its administrator to allow the connection.
https://decision-cloud.vercel.app/api/mcpFor Claude Code, run this command in a terminal. It saves the remote server at user scope:
claude mcp add --transport http --scope user decision-cloud https://decision-cloud.vercel.app/api/mcpUse claude mcp list to check the configured server and/mcp in Claude Code to complete remote authorization if needed. See Anthropic's guides for Claude custom connectors and Claude Code MCP.
Connect another MCP client
Add a remote server using Streamable HTTP (often labelled HTTP) and the endpoint below. This is a hosted service, so choose remote HTTP rather than a local stdio command.
https://decision-cloud.vercel.app/api/mcpIf the client offers authorization, sign in to Decision Cloud. Client configuration formats differ, so follow that client's remote MCP instructions instead of copying a local-server example. A generic MCP client must support remote Streamable HTTP and the server's authorization flow.
See the MCP guide to connecting to remote servers.
Evaluate a CSV
The sample has three synthetic customer comments. Download it to attach in ChatGPT, or pass its public URL to Claude and other MCP clients that need a direct file link.
ticket_id,comment
fb-101,"The dashboard crashes when I export a monthly report."
fb-102,"Setup was easy, but I cannot invite my team."
fb-103,"The latest update fixed the issue I reported."Download the sample CSVor usehttps://decision-cloud.vercel.app/docs/sample-csv
ChatGPT's file metadata lets it pass an attached CSV to the tool. The sample URL above also works for Claude and other clients. For your own data, use a public HTTPS URL that Decision Cloud can download without a browser login or cookies. A local file path, pasted CSV text, or a private share page is not a download URL.
Copy this prompt
Attach the downloaded sample in ChatGPT. The prompt already includes the sample URL for clients that need a direct file link.
Use the customer-feedback.csv sample with Decision Cloud's evaluate_file tool.
In ChatGPT, attach the downloaded sample. For clients without native file handoff, set the tool's file field to this object:
{
"download_url": "https://decision-cloud.vercel.app/docs/sample-csv",
"file_id": "customer-feedback-sample",
"file_name": "customer-feedback.csv",
"mime_type": "text/csv"
}
Make one evaluate_file call with max_rows set to 1.
Inspect its result before asking for another evaluation.
Evaluate each selected row independently. Do not compare or rank records.
Context: These are customer comments about a software product. Judge only what each comment says.
For each row, return:
- sentiment (Choice): positive, neutral, or negative.
- urgency (Score): five ordered levels, from no follow-up needed, through low priority, routine follow-up, and high priority, to urgent follow-up.
- renewal_risk (Noul): the probability that the comment is evidence the customer may not renew. Treat this as a signal in the comment, not a prediction of actual renewal.
After the tool returns, show the ticket_id, original comment, and all three judgments for each row. Explain which comments may need follow-up.The sample asks for three independent questions per row. The host AI can explain or group the returned judgments after Decision Cloud finishes; Decision Cloud does not compare rows.
File input for clients without native uploads
The tool requires download_url and a non-empty file_id. file_name and mime_type are optional. If supplied, the file name must end in .csv and the media type must identify a CSV file. Use these exact field names. Aliases such as url or id are rejected.
{
"file": {
"download_url": "https://decision-cloud.vercel.app/docs/sample-csv",
"file_id": "customer-feedback-sample",
"file_name": "customer-feedback.csv",
"mime_type": "text/csv"
},
"context": "Customer comments for a software product.",
"questions": {
"sentiment": {
"type": "choice",
"instructions": "Classify the tone of this comment.",
"criteria": {
"positive": "The customer expresses satisfaction.",
"neutral": "The comment is neither positive nor negative.",
"negative": "The customer expresses dissatisfaction."
}
}
}
}This abbreviated request shows the required file shape and one question. Add other questions using the supported types below. The URL serves the same synthetic CSV shown above.
Define per-record judgments
questions is an object keyed by your question IDs. Each question runs independently on every selected CSV row. Put shared background in optional context. Keep questions narrow; ranking, aggregation, arithmetic, and interpretation belong to the host AI.
choice- Choose one named option.
criteriais a map of option IDs to instructions, with 1 to 255 options. score- Rate an ordered degree.
criteriais an ordered array of 2 to 10 level descriptions, from low to high. noul- Estimate the probability that a condition is true. Its answer is a value from 0 to 1. Optional criteria can describe the true and false cases.
Every question needs an instructions value. It can be a string, JSON object, or array. Choice and Score questions also need their criteria; Noul criteria are optional.
Understand the result
A successful call returns schema-validated structuredContent plus readable JSON in content. Each item in rows includes its row_id, the complete source row, and an answers object keyed by your question IDs.
type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue };
type Instruction = string | Record<string, JSONValue> | JSONValue[];
type Answer =
| { type: "choice"; choice: string; probabilities?: Record<string, number>; confidence?: number }
| { type: "score"; score: number; legend?: Record<string, Instruction>; probabilities?: Record<string, number>; confidence?: number }
| { type: "noul"; noul: number };
type Evaluation = {
model: string;
provider: string;
request_id: string;
records_available: number;
records_evaluated: number;
questions_per_record: number;
total_judgments: number;
truncated: boolean;
batches: Array<{
batch_index: number;
records: number;
judgments: number;
estimated_tokens: number;
attempts: number;
usage: { input_tokens: number; output_tokens: number };
request_id?: string;
provider?: string;
cost?: number;
}>;
rows: Array<{
row_id: string;
source: Record<string, string>;
answers: Record<string, Answer>;
}>;
usage: { input_tokens: number; output_tokens: number };
cost?: number;
};This is a field outline, not a sample bill. cost is optional provider metadata. The account credit charge is calculated from actual reported usage at the configured Jev rate.
Credits and usage
Decision Cloud uses prepaid credits. Each top-up is a one-time purchase with a $1 service fee. Decision Cloud does not add a markup to Jev compute. Credits used for evaluation are based on actual reported input-token usage at the configured Jev rate, not a fixed price per row or judgment. Decision Cloud credits are separate from any Jev account balance. The pricing page shows the current server configuration for the per-million input rate.
Only input tokens are billed. Output tokens are recorded but are not billed. Results include input and output token counts. Provider-reported cost may also appear, but it is optional. The amount of credit used varies with the file, context, questions, and provider attempts. There is no static cost estimate in this guide.
Limits and errors
- CSV only. The download URL must use HTTPS and be reachable by Decision Cloud. The current download limit is 10 MiB.
- 200 rows by default. Set
max_rowsto choose another positive limit, up to 500. If that value selects fewer rows than the CSV contains, the result reportsrecords_available,records_evaluated, andtruncated: true. - Insufficient credits. Add balance at /pricing, then retry the evaluation.
- Execution failure. A failed batch fails the whole evaluation. The response contains an error, not partial rows. A failed run may still have provider usage, so check your account at /login before retrying.
MCP reports an error with isError and a structured object containing code, message, and retryable. Fix invalid input or file errors before retrying. Retry provider or timeout failures only when retryable is true. If a retry does not resolve the issue, contact support with the error code and approximate time of the run. Do not include CSV contents or customer data in a support request.