@langwatch/mcp-server 0.10.1 → 2.0.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/.python-version +1 -0
- package/.release-please-shim +1 -1
- package/CHANGELOG.md +75 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +64 -18
- package/dist/{archive-project-KAZFHR4A.js → archive-project-4EQGLBJJ.js} +5 -4
- package/dist/{archive-scenario-6M2IB7Y2.js → archive-scenario-W6BXYDZ3.js} +5 -4
- package/dist/{archive-suite-NXZ3YDS3.js → archive-suite-4T6BSRS7.js} +5 -4
- package/dist/{assign-prompt-tag-WPUJO55U.js → assign-prompt-tag-VLXUWEKU.js} +4 -3
- package/dist/chunk-37SMPMQS.js +12 -0
- package/dist/{chunk-HRFQAFPR.js → chunk-4QC7SA2L.js} +221 -134
- package/dist/{chunk-XRQNXN2Z.js → chunk-5CCZFUXS.js} +2 -2
- package/dist/{chunk-ITN2QGHF.js → chunk-77BNWQ3U.js} +2 -2
- package/dist/{chunk-B6UV3JVI.js → chunk-7RHG56OH.js} +2 -2
- package/dist/{chunk-CAY57CKF.js → chunk-A2LEVYQ5.js} +78 -5
- package/dist/{chunk-U2QIW2SW.js → chunk-AQJO2EI5.js} +2 -2
- package/dist/{chunk-GWEW5XON.js → chunk-CDYQOY5U.js} +2 -2
- package/dist/{chunk-LTEJDL4V.js → chunk-J42FWRJ2.js} +2 -2
- package/dist/chunk-SAS5OB7F.js +58 -0
- package/dist/{chunk-AGGE6NPR.js → chunk-SFB4MU6H.js} +2 -2
- package/dist/{chunk-COCNCXVJ.js → chunk-TJCXFNDT.js} +2 -2
- package/dist/chunk-TOXJQDIZ.js +432 -0
- package/dist/chunk-UJPXFA26.js +267 -0
- package/dist/{chunk-KOO5733S.js → chunk-WT4PO4A3.js} +8 -2
- package/dist/{chunk-RDUXCCFR.js → chunk-YX3A3CFM.js} +2 -2
- package/dist/{chunk-UKRCZJJC.js → chunk-YZLYHLLI.js} +2 -2
- package/dist/{chunk-ESGZVPPC.js → chunk-ZWIL4EFL.js} +2 -2
- package/dist/config.js +2 -1
- package/dist/{create-agent-BI7UTJ6A.js → create-agent-7XHO6UIS.js} +5 -4
- package/dist/{create-annotation-SNM2J6S4.js → create-annotation-YQXRQC6A.js} +5 -4
- package/dist/{create-api-key-23MXYC2L.js → create-api-key-YUS36KBU.js} +5 -4
- package/dist/{create-dashboard-CPOOOIKK.js → create-dashboard-4Z5JO5LB.js} +5 -4
- package/dist/{create-dataset-BVXPVVY2.js → create-dataset-E6NMSVX7.js} +5 -4
- package/dist/{create-dataset-records-S7VFIIMR.js → create-dataset-records-SKHPRD2K.js} +5 -4
- package/dist/{create-evaluator-WJAAQOUE.js → create-evaluator-JXF5PF33.js} +5 -4
- package/dist/create-mcp-server.js +4 -3
- package/dist/{create-project-BF7LMZH5.js → create-project-CS2CB57Y.js} +5 -4
- package/dist/{create-prompt-LZ3QHSU4.js → create-prompt-F5RMX3L3.js} +4 -3
- package/dist/{create-prompt-tag-IF4J24QM.js → create-prompt-tag-GMRWTEFR.js} +4 -3
- package/dist/{create-scenario-BK4E5DEU.js → create-scenario-JDR2VB2H.js} +5 -4
- package/dist/{create-suite-HEQPNLND.js → create-suite-LZS6QIAF.js} +5 -4
- package/dist/{delete-agent-Y4T2G5PT.js → delete-agent-O3EEH4S5.js} +5 -4
- package/dist/{delete-annotation-KYDMQTZG.js → delete-annotation-XP6FQM7A.js} +5 -4
- package/dist/{delete-dashboard-3RW647WJ.js → delete-dashboard-RFUNYCNP.js} +5 -4
- package/dist/{delete-dataset-SZAHFHHS.js → delete-dataset-3MJFRDLP.js} +5 -4
- package/dist/{delete-dataset-records-ISHKGEBH.js → delete-dataset-records-WPMU5GL5.js} +5 -4
- package/dist/{delete-evaluator-VKIG5I3S.js → delete-evaluator-33SP2JFX.js} +5 -4
- package/dist/{delete-prompt-tag-VYYL4GTF.js → delete-prompt-tag-KNMZVSPB.js} +4 -3
- package/dist/{delete-workflow-SHNPYSWQ.js → delete-workflow-3NUXO46U.js} +5 -4
- package/dist/discover-evaluator-schema-XTAD4X7D.js +2191 -0
- package/dist/{discover-scenario-schema-MEEEVND7.js → discover-scenario-schema-FE64QK2D.js} +3 -1
- package/dist/{discover-schema-3T52ORPB.js → discover-schema-L6QDPON3.js} +3 -1
- package/dist/{get-agent-IZSP7AR5.js → get-agent-Y7MWZ65F.js} +5 -4
- package/dist/{get-analytics-EDFAYYIQ.js → get-analytics-TETCSOK6.js} +4 -3
- package/dist/{get-dashboard-WSAO6IQ4.js → get-dashboard-KHBEGZGL.js} +5 -4
- package/dist/{get-dataset-BEVNXQNF.js → get-dataset-RCMU5VAH.js} +5 -4
- package/dist/{get-evaluator-HCVXNPZR.js → get-evaluator-ADMKVWYZ.js} +5 -4
- package/dist/{get-project-H4V3GYRQ.js → get-project-RAK7URQJ.js} +5 -4
- package/dist/{get-prompt-EWRJVVGB.js → get-prompt-OY5B7TRI.js} +4 -3
- package/dist/{get-scenario-24YUJS5W.js → get-scenario-ZTAJJL5T.js} +5 -4
- package/dist/{get-simulation-run-UX2W6F6I.js → get-simulation-run-T2ZQWYH2.js} +5 -4
- package/dist/{get-suite-B65ZKZJA.js → get-suite-J7JVWO6O.js} +5 -4
- package/dist/{get-trace-ZR7MIITH.js → get-trace-K7U234Q4.js} +8 -10
- package/dist/{get-workflow-YROHUQJW.js → get-workflow-L5L2PSK3.js} +5 -4
- package/dist/http-security-EU3CHTY7.js +26 -0
- package/dist/http-server-YXHFPPGA.js +24706 -0
- package/dist/index.js +23280 -3135
- package/dist/{langwatch-api-annotations-OPEXNTPF.js → langwatch-api-annotations-FDAS6NQ7.js} +5 -4
- package/dist/{langwatch-api-dashboards-NPQM6QJI.js → langwatch-api-dashboards-JTVCS7ZJ.js} +5 -4
- package/dist/{langwatch-api-monitors-3L25OOOS.js → langwatch-api-monitors-3J7UIQME.js} +4 -3
- package/dist/{langwatch-api-secrets-ZFURUA62.js → langwatch-api-secrets-BUBSNCNO.js} +4 -3
- package/dist/{langwatch-api-triggers-XGXXT7DD.js → langwatch-api-triggers-EDFUCJN6.js} +4 -3
- package/dist/langwatch-api-workflows-NBJX5KOG.js +16 -0
- package/dist/{list-agents-6ZNOV7FK.js → list-agents-KFHKGPXV.js} +5 -4
- package/dist/{list-annotations-6P3IWILH.js → list-annotations-ZTVP4EEL.js} +5 -4
- package/dist/{list-api-keys-JJI62KD2.js → list-api-keys-CWD4UQT5.js} +5 -4
- package/dist/{list-dashboards-G2WJOXWB.js → list-dashboards-PWG6P6KR.js} +5 -4
- package/dist/{list-dataset-records-GWWVOCII.js → list-dataset-records-IOE7LQXS.js} +5 -4
- package/dist/{list-datasets-HBTH33X4.js → list-datasets-ZT4JYUDT.js} +5 -4
- package/dist/{list-evaluators-K5OGB6TX.js → list-evaluators-SJHC7VBH.js} +5 -4
- package/dist/{list-model-providers-JMOGZLSO.js → list-model-providers-PPD2WPD2.js} +5 -4
- package/dist/{list-projects-OXJC2NW5.js → list-projects-K7QAIX2I.js} +5 -4
- package/dist/{list-prompt-tags-J2HPHVAZ.js → list-prompt-tags-FOO6TNHB.js} +4 -3
- package/dist/{list-prompts-C7GR72XL.js → list-prompts-SC2HAUFG.js} +4 -3
- package/dist/{list-scenarios-JEPGIIDO.js → list-scenarios-F2WYNRIE.js} +5 -4
- package/dist/{list-simulation-runs-DRSAGPEC.js → list-simulation-runs-KF5THG5H.js} +5 -4
- package/dist/{list-suites-POTZ3ZT6.js → list-suites-CRY4VWW6.js} +5 -4
- package/dist/{list-workflows-QQZQIOHB.js → list-workflows-QSJWURCK.js} +5 -4
- package/dist/{rename-prompt-tag-4AAV2BS4.js → rename-prompt-tag-EKWU5QF3.js} +4 -3
- package/dist/report-issue-XYVAPAYJ.js +412 -0
- package/dist/{revoke-api-key-TONB4ADQ.js → revoke-api-key-FTRTZMOF.js} +5 -4
- package/dist/{run-agent-7QE3YEH7.js → run-agent-6SM4XNA7.js} +5 -4
- package/dist/{run-suite-Q66OSPO4.js → run-suite-NKZCJ2IN.js} +5 -4
- package/dist/{run-workflow-RWX2D752.js → run-workflow-QPXC627O.js} +5 -4
- package/dist/{search-traces-M5E5VB4X.js → search-traces-A6HFKPLJ.js} +10 -3
- package/dist/{set-model-provider-XENT5D2P.js → set-model-provider-3WKT63ZN.js} +5 -4
- package/dist/{update-agent-GML25EE3.js → update-agent-SMAEHLXH.js} +5 -4
- package/dist/{update-dataset-R4MM6NNY.js → update-dataset-BDUK7TUO.js} +5 -4
- package/dist/{update-dataset-record-FN4BL5P4.js → update-dataset-record-4ZSDRBSW.js} +5 -4
- package/dist/{update-evaluator-LH2RDDB5.js → update-evaluator-LS6TIBY7.js} +5 -4
- package/dist/{update-project-H53IHRBB.js → update-project-LKVYXENH.js} +5 -4
- package/dist/{update-prompt-M33OTTAJ.js → update-prompt-ODCRQRN6.js} +4 -3
- package/dist/{update-scenario-FKTQRAFQ.js → update-scenario-NEXCAQI7.js} +5 -4
- package/dist/{update-suite-JJTNOTXN.js → update-suite-SNO3GS7T.js} +5 -4
- package/package.json +20 -18
- package/pyproject.toml +10 -2
- package/src/__tests__/all-tools.integration.test.ts +56 -120
- package/src/__tests__/config.unit.test.ts +33 -0
- package/src/__tests__/docker.integration.test.ts +91 -7
- package/src/__tests__/documentation-fetch-security.integration.test.ts +182 -0
- package/src/__tests__/feature-map-tool-drift.unit.test.ts +93 -0
- package/src/__tests__/http-security-origin.unit.test.ts +97 -0
- package/src/__tests__/http-security-sessions.unit.test.ts +209 -0
- package/src/__tests__/http-security-verifier.unit.test.ts +248 -0
- package/src/__tests__/http-server-allocation.integration.test.ts +279 -0
- package/src/__tests__/http-server-origin.integration.test.ts +169 -0
- package/src/__tests__/http-server-session-auth.integration.test.ts +341 -0
- package/src/__tests__/http-transport.integration.test.ts +85 -87
- package/src/__tests__/langwatch-api.unit.test.ts +206 -0
- package/src/__tests__/public-http-request-security.integration.test.ts +118 -0
- package/src/__tests__/report-issue.integration.test.ts +147 -0
- package/src/__tests__/support/http-server-harness.ts +138 -0
- package/src/__tests__/tools.unit.test.ts +24 -0
- package/src/config.ts +17 -2
- package/src/create-mcp-server.ts +43 -29
- package/src/documentation-fetch.ts +111 -0
- package/src/http-security.ts +492 -0
- package/src/http-server.ts +536 -152
- package/src/index.ts +49 -2
- package/src/langwatch-api-agents.ts +2 -2
- package/src/langwatch-api.ts +138 -8
- package/src/public-http-request.ts +242 -0
- package/src/tools/discover-evaluator-schema.ts +2 -2
- package/src/tools/get-trace.ts +2 -12
- package/src/tools/report-issue.ts +150 -0
- package/src/tools/search-traces.ts +4 -0
- package/src/utils/format-evaluations.ts +20 -0
- package/tsconfig.json +8 -1
- package/uv.lock +261 -207
- package/dist/chunk-IUP5IHBD.js +0 -71
- package/dist/discover-evaluator-schema-H23XCLNE.js +0 -1402
- package/dist/http-server-GXVEDA7G.js +0 -226
- package/dist/langwatch-api-workflows-CXCTTCXT.js +0 -15
- package/pnpm-workspace.yaml +0 -17
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { searchTraces as apiSearchTraces } from "../langwatch-api.js";
|
|
2
2
|
import { parseRelativeDate } from "../utils/date-parsing.js";
|
|
3
|
+
import { formatEvaluationLines } from "../utils/format-evaluations.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Handles the search_traces MCP tool invocation.
|
|
@@ -74,6 +75,9 @@ export async function handleSearchTraces(params: {
|
|
|
74
75
|
if (trace.error) {
|
|
75
76
|
lines.push(`- **Error**: ${JSON.stringify(trace.error)}`);
|
|
76
77
|
}
|
|
78
|
+
if (trace.evaluations && trace.evaluations.length > 0) {
|
|
79
|
+
lines.push(...formatEvaluationLines(trace.evaluations));
|
|
80
|
+
}
|
|
77
81
|
lines.push("");
|
|
78
82
|
}
|
|
79
83
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface EvaluationSummary {
|
|
2
|
+
evaluator_id?: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
score?: number;
|
|
5
|
+
passed?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Formats a trace's evaluation results as markdown bullet lines, one per evaluation. */
|
|
10
|
+
export function formatEvaluationLines(evaluations: EvaluationSummary[]): string[] {
|
|
11
|
+
return evaluations.map((evaluation) => {
|
|
12
|
+
const status =
|
|
13
|
+
evaluation.passed === true
|
|
14
|
+
? "PASSED"
|
|
15
|
+
: evaluation.passed === false
|
|
16
|
+
? "FAILED"
|
|
17
|
+
: "N/A";
|
|
18
|
+
return `- **${evaluation.name || evaluation.evaluator_id}**: ${status}${evaluation.score != null ? ` (score: ${evaluation.score})` : ""}${evaluation.label ? ` [${evaluation.label}]` : ""}`;
|
|
19
|
+
});
|
|
20
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -12,7 +12,14 @@
|
|
|
12
12
|
"checkJs": true,
|
|
13
13
|
"skipLibCheck": true,
|
|
14
14
|
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"moduleResolution": "
|
|
15
|
+
"moduleResolution": "bundler",
|
|
16
|
+
"rootDir": "../..",
|
|
17
|
+
// The evaluator catalog we import (services/langevals/ts-integration/evaluators.generated.ts)
|
|
18
|
+
// is Zod-first and imports `zod`, but lives outside this package's
|
|
19
|
+
// node_modules tree, so plain resolution cannot find it. Point `zod` at this
|
|
20
|
+
// package's own copy (a declared dependency) so the type-checker resolves it.
|
|
21
|
+
// Paths are resolved relative to this tsconfig (no baseUrl — tsgo removed it).
|
|
22
|
+
"paths": { "zod": ["./node_modules/zod"] },
|
|
16
23
|
"isolatedModules": true,
|
|
17
24
|
"jsx": "preserve",
|
|
18
25
|
"incremental": true,
|