Observability Connectors
If you already trace runs + feedback in your observability platform, Converra can import it directly.
LangSmith
by LangChain
Continuous sync from LangSmith. Capture all LLM runs, discover agent systems, and optimize the weakest link.
Langfuse
Open source LLM observability
Continuous sync from Langfuse Cloud. Region selection (EU/US), project-scoped API keys.
How it works
Connect API key
Select workspace & project
Configure sync (hourly → daily)
Review prompts & agent systems
Multi-agent traces are grouped into agent systems with path visualization and weakest-link scoring.
MCP Server
RecommendedWorks with Cursor, Claude Code, Windsurf, and any MCP-compatible client. Just tell your AI assistant to install Converra.
Copy this to your AI assistant:
“Install the Converra MCP server, then help me upload my prompts and optimize them.”
After signing up, you'll get an API key to include in the prompt.
Example prompts to try:
Easy Data Import
(no code required)
You can also get value from Converra by uploading your existing data directly from the Integrations page in the app.
Great for prompt engineers and PMs who want to diagnose issues and see improvement opportunities without waiting for a release cycle.
Paste Data
On the Integrations page, paste chat transcripts or logs directly into the app.
Converra parses prompts and conversations and prepares them for optimization.
You get immediate visibility into performance issues and opportunities.
Upload File
Upload .txt, .csv, .xlsx, or .zip files (up to 10MB each).
See how many prompts and conversations were processed.
Click straight into the resulting prompt records and insights.
Node.js SDK (server-side integration)
Use the official TypeScript SDK from your backend or worker processes.
npm install converraimport { Converra } from "converra";
const converra = new Converra({
apiKey: process.env.CONVERRA_API_KEY!,
// baseUrl: "https://api.converra.io/v1", // optional override
// timeout: 30000, // ms, optional
});
// Prompts
const { data: prompts } = await converra.prompts.list();
const prompt = await converra.prompts.get("prompt_123");
const newPrompt = await converra.prompts.create({
name: "Customer Support Agent",
content: "You are a helpful customer support agent...",
objective: "Resolve customer issues efficiently while maintaining satisfaction",
tags: ["support", "production"],
});
await converra.prompts.update(newPrompt.id, { status: "active" });
// Optimizations
const optimization = await converra.optimizations.trigger({
promptId: newPrompt.id,
mode: "exploratory",
variantCount: 3,
});
const results = await converra.optimizations.getVariants(optimization.id);
await converra.optimizations.applyVariant(optimization.id);
// Conversations & insights
await converra.conversations.create({
promptId: newPrompt.id,
content: "...",
status: "completed",
});
const promptInsights = await converra.insights.forPrompt(newPrompt.id, { days: 30 });Great for
- AI app developers embedding optimization into existing services.
- Platform teams who prefer typed, versioned integration with their infra.
REST / JSON-RPC for any stack
Use JSON-RPC over HTTPS to call the same tools Converra exposes to MCP clients - from any language, any stack.
curl -X POST https://converra.ai/api/mcp \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "trigger_optimization",
"arguments": {
"promptId": "prompt_123",
"variantCount": 3,
"mode": "exploratory",
"intent": {
"targetImprovements": ["clarity", "task completion"],
"variationDegree": "moderate"
}
}
}
}'Head-to-head testing is also available:
curl -X POST https://converra.ai/api/mcp \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "simulate_ab_test",
"arguments": {
"baselinePrompt": "You are a helpful assistant.",
"variantPrompt": "You are an expert who gives precise, actionable answers.",
"personaCount": 3,
"scenarioCount": 5
}
}
}'Perfect for polyglot environments and custom infra.
Available tools
Prompts
list_prompts, get_prompt_status, create_prompt, update_prompt
Optimization
trigger_optimization, get_optimization_details, apply_variant, stop_optimization
Simulation
analyze_prompt, simulate_prompt, simulate_ab_test, regression_test, list_personas
Account / insights
get_usage, get_insights, create_webhook, get_stream_url
SDK surface area
Converra's SDK is intentionally small and predictable:
Prompts
- prompts.list({ page, perPage, status })
- prompts.get(promptId)
- prompts.create({ name, content, tags, objective, ... })
- prompts.update(promptId, { content, status, ... })
- prompts.delete(promptId)
Optimizations
- optimizations.trigger(input: TriggerOptimizationInput)
- optimizations.get(id)
- optimizations.list({ promptId, status })
- optimizations.stop(id, reason?)
- optimizations.getVariants(id)
- optimizations.applyVariant(id, variantId?)
- optimizations.getStreamUrl(id)
Conversations & insights
- conversations.create({ promptId, content, ... })
- conversations.get(id)
- conversations.list({ promptId, status, ... })
- conversations.getInsights(id)
- insights.forPrompt(promptId, { days })
- insights.overall({ days })
Personas & Webhooks
- personas.list({ tags, search, page, perPage })
- personas.create({ name, description, tags })
- webhooks.list({ isActive, page, perPage })
- webhooks.create({ url, events, description? })
- webhooks.delete(id)
Everything is fully typed with exported TypeScript interfaces.
Error handling
import { Converra, ConverraError } from "converra";
try {
await converra.prompts.get("nonexistent_prompt");
} catch (error) {
if (error instanceof ConverraError) {
console.error(`${error.code} (${error.statusCode}): ${error.message}`);
console.error("Details:", error.details);
// error.code examples: TIMEOUT, NETWORK_ERROR, NOT_FOUND, UNAUTHORIZED, VALIDATION_ERROR
} else {
throw error;
}
}Requirements
- Node.js 18+ for the SDK.
- A Converra API key (generated from the Integrations page in the app).
- For MCP / JSON-RPC: any environment that can make HTTPS requests.