@langwatch/mcp-server 0.8.0 → 0.9.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.
Files changed (115) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +7 -0
  3. package/dist/archive-project-HZBRPR2S.js +19 -0
  4. package/dist/{archive-scenario-YKGLJ4MZ.js → archive-scenario-P5RRITRM.js} +3 -3
  5. package/dist/{archive-suite-QFNDO3Y3.js → archive-suite-NUUFD2EM.js} +3 -3
  6. package/dist/{assign-prompt-tag-Y2B4CBBT.js → assign-prompt-tag-FKCCZPML.js} +2 -2
  7. package/dist/{chunk-YH2IBTEL.js → chunk-42ZHHHIJ.js} +14 -3
  8. package/dist/chunk-ADSJ2FDA.js +44 -0
  9. package/dist/{chunk-L6QENXYA.js → chunk-BB7EOKHR.js} +2 -2
  10. package/dist/chunk-BBJ5WAJB.js +24 -0
  11. package/dist/{chunk-PZUWCWOS.js → chunk-BYWYM2RP.js} +2 -2
  12. package/dist/{chunk-NACSR6B7.js → chunk-CCM4ZFGF.js} +2 -2
  13. package/dist/{chunk-FBRKHHJV.js → chunk-CHKCEZBP.js} +2 -2
  14. package/dist/{chunk-PO7FM7IX.js → chunk-HKY3GW45.js} +2 -2
  15. package/dist/{chunk-KZNBCKWG.js → chunk-JHOSVOHT.js} +2 -2
  16. package/dist/{chunk-B57MZ4WI.js → chunk-JVLJKQJG.js} +657 -88
  17. package/dist/{chunk-HDJDFKZR.js → chunk-R7C7OUVG.js} +2 -2
  18. package/dist/{chunk-OVQF3D5R.js → chunk-TROIWSEQ.js} +2 -2
  19. package/dist/{chunk-CPUPGDNA.js → chunk-X2SEURT2.js} +2 -2
  20. package/dist/{chunk-YI3OG4PI.js → chunk-XC62KJIT.js} +3 -3
  21. package/dist/{create-agent-YRSDH7P7.js → create-agent-K5Q7BFGZ.js} +3 -3
  22. package/dist/{create-annotation-FYQNKMVJ.js → create-annotation-KN3GE3DK.js} +3 -3
  23. package/dist/create-api-key-OQI5PUNQ.js +26 -0
  24. package/dist/{create-dashboard-CORBR4YQ.js → create-dashboard-G4QA5AXP.js} +3 -3
  25. package/dist/{create-dataset-ZC63T6BB.js → create-dataset-WQSC37N7.js} +3 -3
  26. package/dist/{create-dataset-records-ILVNVKVR.js → create-dataset-records-B4RL3FLC.js} +3 -3
  27. package/dist/{create-evaluator-2AU3PXFB.js → create-evaluator-YFFQIR7E.js} +3 -3
  28. package/dist/create-mcp-server.js +2 -1
  29. package/dist/create-project-CUVQ67VN.js +44 -0
  30. package/dist/{create-prompt-NKRJ47YY.js → create-prompt-NGXKSP4X.js} +2 -2
  31. package/dist/{create-prompt-tag-S4JX3ULL.js → create-prompt-tag-IUKYPVHH.js} +2 -2
  32. package/dist/{create-scenario-BPRF75KF.js → create-scenario-FNBXALH3.js} +3 -3
  33. package/dist/{create-suite-4YN7D6K2.js → create-suite-DJEPD4ZB.js} +3 -3
  34. package/dist/{delete-agent-Y72R2YQA.js → delete-agent-TJI5XBBM.js} +3 -3
  35. package/dist/{delete-annotation-UHWDMHSH.js → delete-annotation-KRP53TUU.js} +3 -3
  36. package/dist/{delete-dashboard-LPWT36KN.js → delete-dashboard-N5SZJIR3.js} +3 -3
  37. package/dist/{delete-dataset-GGPQRHKX.js → delete-dataset-KDUOHL2P.js} +3 -3
  38. package/dist/{delete-dataset-records-LTG5LT26.js → delete-dataset-records-DM4W3PAW.js} +3 -3
  39. package/dist/{delete-evaluator-F7QLXDHU.js → delete-evaluator-7ZATLJOA.js} +3 -3
  40. package/dist/{delete-prompt-tag-B5UKZL45.js → delete-prompt-tag-I6HNMSVJ.js} +2 -2
  41. package/dist/{delete-workflow-4DGUDIDE.js → delete-workflow-QEO74JQR.js} +3 -3
  42. package/dist/{get-agent-YEVICUX4.js → get-agent-3KDWCP5N.js} +3 -3
  43. package/dist/{get-analytics-3W5CMU3F.js → get-analytics-GPVJX7SF.js} +2 -2
  44. package/dist/{get-dashboard-NCQHN6MW.js → get-dashboard-YPTIE5YY.js} +3 -3
  45. package/dist/{get-dataset-KBK6PH36.js → get-dataset-6DQFYITM.js} +3 -3
  46. package/dist/{get-evaluator-QDUL5LXR.js → get-evaluator-PCM6XQAU.js} +3 -3
  47. package/dist/get-project-JCMWXVLU.js +26 -0
  48. package/dist/{get-prompt-XCSSNRKR.js → get-prompt-5XAGWWBG.js} +2 -2
  49. package/dist/{get-scenario-FNRKOY7E.js → get-scenario-7XBCDZWX.js} +3 -3
  50. package/dist/{get-simulation-run-WOEKUF7K.js → get-simulation-run-AV24FJWI.js} +3 -3
  51. package/dist/{get-suite-U5AOD5TC.js → get-suite-4DBVHFEM.js} +3 -3
  52. package/dist/{get-trace-MUWEJM2Z.js → get-trace-MRBDS3HJ.js} +2 -2
  53. package/dist/{get-workflow-SOA7MT7L.js → get-workflow-UR4Y6UFX.js} +3 -3
  54. package/dist/{http-server-7DMOCB75.js → http-server-DEGNV5EP.js} +3 -2
  55. package/dist/index.js +1060 -220
  56. package/dist/{langwatch-api-annotations-Q57NDUVR.js → langwatch-api-annotations-ZJDRB4JH.js} +3 -3
  57. package/dist/{langwatch-api-dashboards-VBWWXV3Y.js → langwatch-api-dashboards-WARLI6NF.js} +3 -3
  58. package/dist/{langwatch-api-monitors-L3IY7FDT.js → langwatch-api-monitors-4XKXHYCG.js} +2 -2
  59. package/dist/{langwatch-api-secrets-S5HHF3XR.js → langwatch-api-secrets-6SHK5G7Q.js} +2 -2
  60. package/dist/{langwatch-api-triggers-ME33QE26.js → langwatch-api-triggers-5SX6R2WU.js} +2 -2
  61. package/dist/{langwatch-api-workflows-4CJQAYP2.js → langwatch-api-workflows-NLJENNXE.js} +3 -3
  62. package/dist/{list-agents-3HGIBJFM.js → list-agents-NECO7MPI.js} +3 -3
  63. package/dist/{list-annotations-KWXYVEPI.js → list-annotations-3OJEO774.js} +3 -3
  64. package/dist/list-api-keys-AWW7ROLB.js +37 -0
  65. package/dist/{list-dashboards-VQ2LH666.js → list-dashboards-DVPVVVKW.js} +3 -3
  66. package/dist/{list-dataset-records-RNRGROJP.js → list-dataset-records-I4BYORF5.js} +3 -3
  67. package/dist/{list-datasets-I4A2LT2S.js → list-datasets-WUAE5HGX.js} +3 -3
  68. package/dist/{list-evaluators-AKKRJ5MX.js → list-evaluators-B6OSVAM2.js} +3 -3
  69. package/dist/{list-model-providers-DVFEHFHZ.js → list-model-providers-NL6IP4UZ.js} +3 -3
  70. package/dist/list-projects-5FHMJ4PQ.js +42 -0
  71. package/dist/{list-prompt-tags-PL5OISUA.js → list-prompt-tags-Z2DD6FLQ.js} +2 -2
  72. package/dist/{list-prompts-7VTFWE2Z.js → list-prompts-VNXKHK7T.js} +2 -2
  73. package/dist/{list-scenarios-5BZWZ6ZN.js → list-scenarios-CFZHXL76.js} +3 -3
  74. package/dist/{list-simulation-runs-WCZ6RLPE.js → list-simulation-runs-AM2BXLBW.js} +3 -3
  75. package/dist/{list-suites-RRQ2JX5Y.js → list-suites-ZDOHAAXF.js} +3 -3
  76. package/dist/{list-workflows-UQB5FCX5.js → list-workflows-WBRBKLIT.js} +3 -3
  77. package/dist/{rename-prompt-tag-TURD6KYU.js → rename-prompt-tag-A4RJUK7Z.js} +2 -2
  78. package/dist/revoke-api-key-ZSPSPF5G.js +15 -0
  79. package/dist/{run-agent-BEJ4K4CM.js → run-agent-JFNDY7MR.js} +3 -3
  80. package/dist/{run-suite-U7V432G2.js → run-suite-TH7LO5TJ.js} +3 -3
  81. package/dist/{run-workflow-5WX7DK5T.js → run-workflow-CK3JP5U2.js} +3 -3
  82. package/dist/{search-traces-ZCHNOMTX.js → search-traces-3BBVYPC3.js} +2 -2
  83. package/dist/{set-model-provider-6CFHMCNE.js → set-model-provider-WOC5FNMV.js} +3 -3
  84. package/dist/{update-agent-UE6UWLZP.js → update-agent-YMEV5MTL.js} +3 -3
  85. package/dist/{update-dataset-4XQZZE4S.js → update-dataset-EYT5POFM.js} +3 -3
  86. package/dist/{update-dataset-record-GNNM5TKM.js → update-dataset-record-VFF5JTX4.js} +3 -3
  87. package/dist/{update-evaluator-LHVDXIZD.js → update-evaluator-6IJHFG2E.js} +3 -3
  88. package/dist/update-project-OIT4WPFI.js +24 -0
  89. package/dist/{update-prompt-3XEHECJ7.js → update-prompt-ZU2DD6KM.js} +2 -2
  90. package/dist/{update-scenario-DFPREYCD.js → update-scenario-3VUTPDRU.js} +3 -3
  91. package/dist/{update-suite-RATU5THO.js → update-suite-C6JFDQHL.js} +3 -3
  92. package/package.json +2 -2
  93. package/pnpm-workspace.yaml +2 -0
  94. package/pyproject.toml +3 -0
  95. package/src/__tests__/experiment-list-tools.unit.test.ts +157 -0
  96. package/src/__tests__/get-experiment-results.unit.test.ts +222 -0
  97. package/src/__tests__/project-api-key-tools.unit.test.ts +451 -0
  98. package/src/create-mcp-server.ts +257 -13
  99. package/src/langwatch-api-api-keys.ts +54 -0
  100. package/src/langwatch-api-projects.ts +82 -0
  101. package/src/langwatch-api.ts +17 -3
  102. package/src/tools/archive-project.ts +14 -0
  103. package/src/tools/create-api-key.ts +29 -0
  104. package/src/tools/create-project.ts +45 -0
  105. package/src/tools/get-experiment-results.ts +273 -0
  106. package/src/tools/get-project.ts +20 -0
  107. package/src/tools/list-api-keys.ts +33 -0
  108. package/src/tools/list-experiment-runs.ts +142 -0
  109. package/src/tools/list-experiments.ts +95 -0
  110. package/src/tools/list-projects.ts +41 -0
  111. package/src/tools/revoke-api-key.ts +9 -0
  112. package/src/tools/{run-evaluation.ts → run-experiment.ts} +5 -5
  113. package/src/tools/update-project.ts +22 -0
  114. package/uv.lock +7 -3
  115. package/dist/run-evaluation-AJ7WZNQD.js +0 -64
package/uv.lock CHANGED
@@ -6,6 +6,10 @@ resolution-markers = [
6
6
  "python_full_version < '3.12'",
7
7
  ]
8
8
 
9
+ [options]
10
+ exclude-newer = "2026-05-10T06:01:42.280437Z"
11
+ exclude-newer-span = "P7D"
12
+
9
13
  [[package]]
10
14
  name = "aiohappyeyeballs"
11
15
  version = "2.6.1"
@@ -985,7 +989,7 @@ examples = [
985
989
  { name = "langchain-openai", specifier = ">=0.3.0,<1.0.0" },
986
990
  { name = "langchain-text-splitters", specifier = ">=0.3.0,<1.0.0" },
987
991
  { name = "langgraph", specifier = ">=1.0.0,<2.0.0" },
988
- { name = "langsmith", specifier = ">=0.6.3" },
992
+ { name = "langsmith", specifier = ">=0.8.0" },
989
993
  { name = "litellm", specifier = ">=1.52.1" },
990
994
  { name = "nltk", specifier = ">=3.9.4" },
991
995
  { name = "openai", specifier = ">=1.68.2,<2.8.0" },
@@ -998,7 +1002,7 @@ examples = [
998
1002
  { name = "pydantic", specifier = ">=2.11.0" },
999
1003
  { name = "pypdf", specifier = ">=6.8.0" },
1000
1004
  { name = "pytest", specifier = ">=7.4.2,<8.0.0" },
1001
- { name = "python-dotenv", specifier = "==1.2.1" },
1005
+ { name = "python-dotenv", specifier = "==1.2.2" },
1002
1006
  { name = "strands-agents", extras = ["otel"], specifier = ">=1.14.0,<2.0.0" },
1003
1007
  { name = "streamlit", specifier = ">=1.37.1,<2.0.0" },
1004
1008
  { name = "unstructured", extras = ["pdf"], specifier = ">=0.18.18" },
@@ -1007,7 +1011,7 @@ examples = [
1007
1011
  tests = [
1008
1012
  { name = "factory-boy", specifier = ">=3.3.3" },
1009
1013
  { name = "pytest-asyncio", specifier = ">=0.21.2" },
1010
- { name = "python-dotenv", specifier = "==1.2.1" },
1014
+ { name = "python-dotenv", specifier = "==1.2.2" },
1011
1015
  ]
1012
1016
 
1013
1017
  [[package]]
@@ -1,64 +0,0 @@
1
- import {
2
- makeRequest
3
- } from "./chunk-YH2IBTEL.js";
4
- import "./chunk-KOO5733S.js";
5
-
6
- // src/tools/run-evaluation.ts
7
- async function handleRunEvaluation(params) {
8
- const result = await makeRequest(
9
- "POST",
10
- `/api/evaluations/v3/${encodeURIComponent(params.slug)}/run`
11
- );
12
- const lines = [];
13
- lines.push(`Evaluation started!
14
- `);
15
- lines.push(`**Run ID**: ${result.runId}`);
16
- lines.push(`**Status**: ${result.status}`);
17
- lines.push(`**Total cells**: ${result.total}`);
18
- if (result.runUrl) lines.push(`**View at**: ${result.runUrl}`);
19
- lines.push("");
20
- lines.push(
21
- `> Use \`platform_evaluation_status\` with run ID "${result.runId}" to check progress.`
22
- );
23
- return lines.join("\n");
24
- }
25
- async function handleEvaluationStatus(params) {
26
- const status = await makeRequest(
27
- "GET",
28
- `/api/evaluations/v3/runs/${encodeURIComponent(params.runId)}`
29
- );
30
- const lines = [];
31
- lines.push(`# Evaluation Run ${status.runId}
32
- `);
33
- lines.push(`**Status**: ${status.status}`);
34
- lines.push(`**Progress**: ${status.progress}/${status.total} cells`);
35
- if (status.startedAt) {
36
- lines.push(`**Started**: ${new Date(status.startedAt).toISOString()}`);
37
- }
38
- if (status.finishedAt) {
39
- lines.push(`**Finished**: ${new Date(status.finishedAt).toISOString()}`);
40
- }
41
- if (status.summary) {
42
- lines.push("\n## Summary\n");
43
- if (status.summary.completedCells !== void 0) {
44
- lines.push(`**Completed**: ${status.summary.completedCells}`);
45
- }
46
- if (status.summary.failedCells) {
47
- lines.push(`**Failed**: ${status.summary.failedCells}`);
48
- }
49
- if (status.summary.duration) {
50
- lines.push(
51
- `**Duration**: ${(status.summary.duration / 1e3).toFixed(1)}s`
52
- );
53
- }
54
- if (status.summary.runUrl) {
55
- lines.push(`**View results**: ${status.summary.runUrl}`);
56
- }
57
- }
58
- return lines.join("\n");
59
- }
60
- export {
61
- handleEvaluationStatus,
62
- handleRunEvaluation
63
- };
64
- //# sourceMappingURL=run-evaluation-AJ7WZNQD.js.map