@langwatch/mcp-server 0.3.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +97 -25
- package/dist/archive-scenario-GAE4XVFM.js +19 -0
- package/dist/archive-scenario-GAE4XVFM.js.map +1 -0
- package/dist/chunk-AAQNA53E.js +28 -0
- package/dist/chunk-AAQNA53E.js.map +1 -0
- package/dist/chunk-JVWDWL3J.js +91 -0
- package/dist/chunk-JVWDWL3J.js.map +1 -0
- package/dist/chunk-K2YFPOSD.js +40 -0
- package/dist/chunk-K2YFPOSD.js.map +1 -0
- package/dist/chunk-ZXKLPC2E.js +27 -0
- package/dist/chunk-ZXKLPC2E.js.map +1 -0
- package/dist/config-FIQWQRUB.js +11 -0
- package/dist/config-FIQWQRUB.js.map +1 -0
- package/dist/create-prompt-P35POKBW.js +22 -0
- package/dist/create-prompt-P35POKBW.js.map +1 -0
- package/dist/create-scenario-3YRZVDYF.js +26 -0
- package/dist/create-scenario-3YRZVDYF.js.map +1 -0
- package/dist/discover-scenario-schema-MEEEVND7.js +65 -0
- package/dist/discover-scenario-schema-MEEEVND7.js.map +1 -0
- package/dist/discover-schema-3T52ORPB.js +446 -0
- package/dist/discover-schema-3T52ORPB.js.map +1 -0
- package/dist/get-analytics-BAVXTAPB.js +55 -0
- package/dist/get-analytics-BAVXTAPB.js.map +1 -0
- package/dist/get-prompt-LKCPT26O.js +48 -0
- package/dist/get-prompt-LKCPT26O.js.map +1 -0
- package/dist/get-scenario-3SCDW4Z6.js +33 -0
- package/dist/get-scenario-3SCDW4Z6.js.map +1 -0
- package/dist/get-trace-QFDWJ5D4.js +50 -0
- package/dist/get-trace-QFDWJ5D4.js.map +1 -0
- package/dist/index.js +22114 -8786
- package/dist/index.js.map +1 -1
- package/dist/list-prompts-UQPBCUYA.js +33 -0
- package/dist/list-prompts-UQPBCUYA.js.map +1 -0
- package/dist/list-scenarios-573YOUKC.js +40 -0
- package/dist/list-scenarios-573YOUKC.js.map +1 -0
- package/dist/search-traces-RSMYCAN7.js +72 -0
- package/dist/search-traces-RSMYCAN7.js.map +1 -0
- package/dist/update-prompt-G2Y5EBQY.js +31 -0
- package/dist/update-prompt-G2Y5EBQY.js.map +1 -0
- package/dist/update-scenario-SSGVOBJO.js +27 -0
- package/dist/update-scenario-SSGVOBJO.js.map +1 -0
- package/package.json +3 -3
- package/src/__tests__/config.unit.test.ts +89 -0
- package/src/__tests__/date-parsing.unit.test.ts +78 -0
- package/src/__tests__/discover-schema.unit.test.ts +118 -0
- package/src/__tests__/integration.integration.test.ts +313 -0
- package/src/__tests__/langwatch-api.unit.test.ts +309 -0
- package/src/__tests__/scenario-tools.integration.test.ts +286 -0
- package/src/__tests__/scenario-tools.unit.test.ts +185 -0
- package/src/__tests__/schemas.unit.test.ts +85 -0
- package/src/__tests__/tools.unit.test.ts +729 -0
- package/src/config.ts +31 -0
- package/src/index.ts +383 -0
- package/src/langwatch-api-scenarios.ts +67 -0
- package/src/langwatch-api.ts +266 -0
- package/src/schemas/analytics-groups.ts +78 -0
- package/src/schemas/analytics-metrics.ts +179 -0
- package/src/schemas/filter-fields.ts +119 -0
- package/src/schemas/index.ts +3 -0
- package/src/tools/archive-scenario.ts +19 -0
- package/src/tools/create-prompt.ts +29 -0
- package/src/tools/create-scenario.ts +30 -0
- package/src/tools/discover-scenario-schema.ts +71 -0
- package/src/tools/discover-schema.ts +106 -0
- package/src/tools/get-analytics.ts +71 -0
- package/src/tools/get-prompt.ts +56 -0
- package/src/tools/get-scenario.ts +36 -0
- package/src/tools/get-trace.ts +61 -0
- package/src/tools/list-prompts.ts +35 -0
- package/src/tools/list-scenarios.ts +47 -0
- package/src/tools/search-traces.ts +91 -0
- package/src/tools/update-prompt.ts +44 -0
- package/src/tools/update-scenario.ts +32 -0
- package/src/utils/date-parsing.ts +31 -0
- package/tests/evaluations.ipynb +634 -634
- package/tests/scenario-openai.test.ts +3 -1
- package/uv.lock +1788 -1322
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getTraceById
|
|
3
|
+
} from "./chunk-JVWDWL3J.js";
|
|
4
|
+
import "./chunk-AAQNA53E.js";
|
|
5
|
+
|
|
6
|
+
// src/tools/get-trace.ts
|
|
7
|
+
async function handleGetTrace(params) {
|
|
8
|
+
const format = params.format ?? "digest";
|
|
9
|
+
const result = await getTraceById(params.traceId, format);
|
|
10
|
+
if (format === "json") {
|
|
11
|
+
return JSON.stringify(result, null, 2);
|
|
12
|
+
}
|
|
13
|
+
const lines = [];
|
|
14
|
+
lines.push(`# Trace: ${params.traceId}
|
|
15
|
+
`);
|
|
16
|
+
if (result.timestamps) {
|
|
17
|
+
lines.push(`**Started**: ${result.timestamps.started_at}`);
|
|
18
|
+
if (result.timestamps.updated_at)
|
|
19
|
+
lines.push(`**Updated**: ${result.timestamps.updated_at}`);
|
|
20
|
+
}
|
|
21
|
+
if (result.metadata) {
|
|
22
|
+
const meta = result.metadata;
|
|
23
|
+
if (meta.user_id) lines.push(`**User**: ${meta.user_id}`);
|
|
24
|
+
if (meta.thread_id) lines.push(`**Thread**: ${meta.thread_id}`);
|
|
25
|
+
if (meta.customer_id) lines.push(`**Customer**: ${meta.customer_id}`);
|
|
26
|
+
if (meta.labels?.length) lines.push(`**Labels**: ${meta.labels.join(", ")}`);
|
|
27
|
+
}
|
|
28
|
+
if (result.evaluations && result.evaluations.length > 0) {
|
|
29
|
+
lines.push("\n## Evaluations");
|
|
30
|
+
for (const evaluation of result.evaluations) {
|
|
31
|
+
const status = evaluation.passed === true ? "PASSED" : evaluation.passed === false ? "FAILED" : "N/A";
|
|
32
|
+
lines.push(
|
|
33
|
+
`- **${evaluation.name || evaluation.evaluator_id}**: ${status}${evaluation.score != null ? ` (score: ${evaluation.score})` : ""}${evaluation.label ? ` [${evaluation.label}]` : ""}`
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (result.formatted_trace) {
|
|
38
|
+
lines.push(`
|
|
39
|
+
## Trace Details
|
|
40
|
+
${result.formatted_trace}`);
|
|
41
|
+
}
|
|
42
|
+
lines.push(
|
|
43
|
+
'\n> Tip: Use `get_trace` with `format: "json"` to get the full raw trace data.'
|
|
44
|
+
);
|
|
45
|
+
return lines.join("\n");
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
handleGetTrace
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=get-trace-QFDWJ5D4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tools/get-trace.ts"],"sourcesContent":["import { getTraceById as apiGetTraceById } from \"../langwatch-api.js\";\n\n/**\n * Handles the get_trace MCP tool invocation.\n *\n * Retrieves a single trace by ID. In digest mode (default), returns the\n * AI-readable formatted digest. In json mode, returns the full raw JSON.\n */\nexport async function handleGetTrace(params: {\n traceId: string;\n format?: \"digest\" | \"json\";\n}): Promise<string> {\n const format = params.format ?? \"digest\";\n const result = await apiGetTraceById(params.traceId, format);\n\n if (format === \"json\") {\n return JSON.stringify(result, null, 2);\n }\n\n const lines: string[] = [];\n lines.push(`# Trace: ${params.traceId}\\n`);\n\n if (result.timestamps) {\n lines.push(`**Started**: ${result.timestamps.started_at}`);\n if (result.timestamps.updated_at)\n lines.push(`**Updated**: ${result.timestamps.updated_at}`);\n }\n\n if (result.metadata) {\n const meta = result.metadata;\n if (meta.user_id) lines.push(`**User**: ${meta.user_id}`);\n if (meta.thread_id) lines.push(`**Thread**: ${meta.thread_id}`);\n if (meta.customer_id) lines.push(`**Customer**: ${meta.customer_id}`);\n if (meta.labels?.length) lines.push(`**Labels**: ${meta.labels.join(\", \")}`);\n }\n\n if (result.evaluations && result.evaluations.length > 0) {\n lines.push(\"\\n## Evaluations\");\n for (const evaluation of result.evaluations) {\n const status =\n evaluation.passed === true\n ? \"PASSED\"\n : evaluation.passed === false\n ? \"FAILED\"\n : \"N/A\";\n lines.push(\n `- **${evaluation.name || evaluation.evaluator_id}**: ${status}${evaluation.score != null ? ` (score: ${evaluation.score})` : \"\"}${evaluation.label ? ` [${evaluation.label}]` : \"\"}`\n );\n }\n }\n\n if (result.formatted_trace) {\n lines.push(`\\n## Trace Details\\n${result.formatted_trace}`);\n }\n\n lines.push(\n '\\n> Tip: Use `get_trace` with `format: \"json\"` to get the full raw trace data.'\n );\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;;;;;AAQA,eAAsB,eAAe,QAGjB;AAClB,QAAM,SAAS,OAAO,UAAU;AAChC,QAAM,SAAS,MAAM,aAAgB,OAAO,SAAS,MAAM;AAE3D,MAAI,WAAW,QAAQ;AACrB,WAAO,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,EACvC;AAEA,QAAM,QAAkB,CAAC;AACzB,QAAM,KAAK,YAAY,OAAO,OAAO;AAAA,CAAI;AAEzC,MAAI,OAAO,YAAY;AACrB,UAAM,KAAK,gBAAgB,OAAO,WAAW,UAAU,EAAE;AACzD,QAAI,OAAO,WAAW;AACpB,YAAM,KAAK,gBAAgB,OAAO,WAAW,UAAU,EAAE;AAAA,EAC7D;AAEA,MAAI,OAAO,UAAU;AACnB,UAAM,OAAO,OAAO;AACpB,QAAI,KAAK,QAAS,OAAM,KAAK,aAAa,KAAK,OAAO,EAAE;AACxD,QAAI,KAAK,UAAW,OAAM,KAAK,eAAe,KAAK,SAAS,EAAE;AAC9D,QAAI,KAAK,YAAa,OAAM,KAAK,iBAAiB,KAAK,WAAW,EAAE;AACpE,QAAI,KAAK,QAAQ,OAAQ,OAAM,KAAK,eAAe,KAAK,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,EAC7E;AAEA,MAAI,OAAO,eAAe,OAAO,YAAY,SAAS,GAAG;AACvD,UAAM,KAAK,kBAAkB;AAC7B,eAAW,cAAc,OAAO,aAAa;AAC3C,YAAM,SACJ,WAAW,WAAW,OAClB,WACA,WAAW,WAAW,QACpB,WACA;AACR,YAAM;AAAA,QACJ,OAAO,WAAW,QAAQ,WAAW,YAAY,OAAO,MAAM,GAAG,WAAW,SAAS,OAAO,YAAY,WAAW,KAAK,MAAM,EAAE,GAAG,WAAW,QAAQ,KAAK,WAAW,KAAK,MAAM,EAAE;AAAA,MACrL;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,iBAAiB;AAC1B,UAAM,KAAK;AAAA;AAAA,EAAuB,OAAO,eAAe,EAAE;AAAA,EAC5D;AAEA,QAAM;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;","names":[]}
|