@langwatch/mcp-server 0.0.1 → 0.0.2
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/README.md +8 -6
- package/build.js +12 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,13 +10,14 @@ This server facilitates communication with LangWatch's API, allowing you to retr
|
|
|
10
10
|
2. Navigate to the MCP item in the sidebar
|
|
11
11
|
3. Set the "name" as "LangWatch MCP"
|
|
12
12
|
4. Set the "type" to `command`
|
|
13
|
-
5. Set the "command" to `npx @langwatch/mcp-server
|
|
14
|
-
|
|
15
|
-
> [!TIP]
|
|
16
|
-
> By default the environment variable `LANGWATCH_API_KEY` and `LANGWATCH_ENDPOINT` are pulled into the project. If that isn't an option for you, you can also use arguments in the command inside Cursor.
|
|
13
|
+
5. Set the "command" to `npx -y @langwatch/mcp-server --apiKey=sk-lw-...`
|
|
14
|
+
- You **must** use `=` to join the command with the value!
|
|
17
15
|
|
|
18
16
|
- `--apiKey`: Your LangWatch API key. This is mandatory and must be provided.
|
|
19
|
-
- `--endpoint`: The endpoint for the LangWatch API. Defaults to `https://app.langwatch.ai` if not specified.
|
|
17
|
+
- `--endpoint`: *Optional* The endpoint for the LangWatch API. Defaults to `https://app.langwatch.ai` if not specified.
|
|
18
|
+
|
|
19
|
+
> [!TIP]
|
|
20
|
+
> To aid in securing your keys, the MCP will first look at the global system environment variables `LANGWATCH_API_KEY` and `LANGWATCH_ENDPOINT` to check if they have values as well as looking at arguments passed into the server on start.
|
|
20
21
|
|
|
21
22
|
<picture>
|
|
22
23
|
<source media="(prefers-color-scheme: dark)" srcset="../assets/mcp-server/cursor-setup.dark.webp">
|
|
@@ -52,7 +53,8 @@ To use these tools within Cursor, follow these steps:
|
|
|
52
53
|
|
|
53
54
|
3. **Interact with your Agent:**
|
|
54
55
|
- Ask a question like the following to test the tools are accessible: *Note: When the tool is detected, you'll need to run `Run tool` in the chat view for it to be called.
|
|
55
|
-
|
|
56
|
+
|
|
57
|
+
> "I just ran into an issue while debugging, show me the latest traces from the last 30 days"
|
|
56
58
|
|
|
57
59
|
<picture>
|
|
58
60
|
<source media="(prefers-color-scheme: dark)" srcset="../assets/mcp-server/cursor-example.dark.webp">
|
package/build.js
ADDED
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
1
3
|
// node_modules/zod/lib/index.mjs
|
|
2
4
|
var util;
|
|
3
5
|
(function(util2) {
|
|
@@ -7054,7 +7056,7 @@ var listLlmTraces = async (authToken, opts) => {
|
|
|
7054
7056
|
// package.json
|
|
7055
7057
|
var package_default = {
|
|
7056
7058
|
name: "@langwatch/mcp-server",
|
|
7057
|
-
version: "0.0.
|
|
7059
|
+
version: "0.0.2",
|
|
7058
7060
|
description: "An MCP server for Langwatch.",
|
|
7059
7061
|
type: "module",
|
|
7060
7062
|
main: "./dist/index.js",
|
|
@@ -7073,7 +7075,7 @@ var package_default = {
|
|
|
7073
7075
|
},
|
|
7074
7076
|
scripts: {
|
|
7075
7077
|
start: "tsx src/index.ts",
|
|
7076
|
-
build: "tsup &&
|
|
7078
|
+
build: "tsup && node build.js",
|
|
7077
7079
|
prepublish: "npm run build"
|
|
7078
7080
|
},
|
|
7079
7081
|
author: "",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/langwatch-api.ts","../package.json"],"sourcesContent":["import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\nimport { getLlmTraceById, listLlmTraces } from \"./langwatch-api\";\nimport packageJson from \"../package.json\" assert { type: \"json\" };\n\nfunction loadAndValidateArgs() {\n const args = process.argv.slice(2);\n\n let apiKey = process.env.LANGWATCH_API_KEY;\n let endpoint = process.env.LANGWATCH_ENDPOINT;\n\n args.forEach(arg => {\n const [key, value] = arg.split('=');\n if (key === '--apiKey') {\n apiKey = value;\n } else if (key === '--endpoint') {\n endpoint = value;\n }\n });\n\n if (!apiKey) {\n throw new Error(\"API key is required. Please provide it using --apiKey=<your_api_key>\");\n }\n\n return {\n apiKey: String(apiKey),\n endpoint: String(endpoint || 'https://app.langwatch.ai'),\n };\n}\n\n// Use the function to get apiKey and endpoint\nconst { apiKey, endpoint } = loadAndValidateArgs();\n\nconst server = new McpServer({\n name: \"LangWatch\",\n version: packageJson.version,\n});\n\nserver.tool(\n \"get_latest_traces\",\n {\n pageOffset: z.number().optional(),\n daysBackToSearch: z.number().optional(),\n },\n async ({ pageOffset, daysBackToSearch }) => {\n const response = await listLlmTraces(apiKey, {\n pageOffset,\n timeTravelDays: daysBackToSearch ?? 1,\n langWatchEndpoint: endpoint,\n });\n\n return {\n content: [{\n type: \"text\",\n text: JSON.stringify(response, null, 2),\n }],\n };\n },\n);\n\nserver.tool(\n \"get_trace_by_id\",\n {\n id: z.string(),\n },\n async ({ id }) => {\n try {\n const response = await getLlmTraceById(apiKey, id, {\n langWatchEndpoint: endpoint,\n });\n\n return {\n content: [{\n type: \"text\",\n text: JSON.stringify(response, null, 2),\n }]\n };\n } catch (error) {\n if (error instanceof Error && error.message === \"Trace not found\") {\n return {\n content: [{\n type: \"text\",\n text: \"Trace not found 😭😭😭😭. If the trace was created recently, it may not be available yet.\",\n }]\n };\n }\n\n throw error;\n }\n },\n);\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n","import { addDays } from \"date-fns\";\nimport type { LLMModeTrace } from \"langwatch\";\n\ninterface SearchTrace {\n\ttraces: LLMModeTrace[];\n}\n\ninterface GetLlmTraceByIdOptions {\n\tlangWatchEndpoint?: string;\n}\n\ninterface ListLLmTracesOptions {\n\tpageSize?: number;\n\tpageOffset?: number;\n\ttimeTravelDays?: number;\n\tlangWatchEndpoint?: string;\n}\n\nexport const getLlmTraceById = async (authToken: string, id: string, opts?: GetLlmTraceByIdOptions): Promise<LLMModeTrace> => {\n\tconst { langWatchEndpoint } = opts ?? {};\n\n\tconst endpoint = langWatchEndpoint ?? \"https://app.langwatch.ai\";\n\n\tconst url = new URL(`${endpoint}/api/trace/${id}`);\n\turl.searchParams.set(\"llmMode\", \"true\");\n\n\tconst response = await fetch(url.toString(), {\n\t\tmethod: \"GET\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"X-Auth-Token\": authToken,\n\t\t},\n\t});\n\n\tif (!response.ok) {\n\t\tif (response.status === 404) {\n\t\t\tthrow new Error(\"Trace not found\");\n\t\t}\n\n\t\tthrow new Error(`Failed to get trace: ${response.statusText}`);\n\t}\n\n\treturn await response.json() as Promise<LLMModeTrace>;\n};\n\nexport const listLlmTraces = async (authToken: string, opts?: ListLLmTracesOptions): Promise<SearchTrace> => {\n\tconst {\n\t\tpageSize = 10,\n\t\tpageOffset = 0,\n\t\ttimeTravelDays = 1,\n\t\tlangWatchEndpoint,\n\t} = opts ?? {};\n\n\tconst endpoint = langWatchEndpoint ?? \"https://app.langwatch.ai\";\n\n\tconst response = await fetch(`${endpoint}/api/trace/search`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"X-Auth-Token\": authToken,\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tstartDate: addDays(new Date(), -timeTravelDays).toISOString(),\n\t\t\tendDate: addDays(new Date(), 1).toISOString(),\n\t\t\tllmMode: true,\n\t\t\tpageOffset,\n\t\t\tpageSize,\n\t\t}),\n\t});\n\n\treturn await response.json() as Promise<SearchTrace>;\n}\n","{\n \"name\": \"@langwatch/mcp-server\",\n \"version\": \"0.0.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/langwatch-api.ts","../package.json"],"sourcesContent":["import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\nimport { getLlmTraceById, listLlmTraces } from \"./langwatch-api\";\nimport packageJson from \"../package.json\" assert { type: \"json\" };\n\nfunction loadAndValidateArgs() {\n const args = process.argv.slice(2);\n\n let apiKey = process.env.LANGWATCH_API_KEY;\n let endpoint = process.env.LANGWATCH_ENDPOINT;\n\n args.forEach(arg => {\n const [key, value] = arg.split('=');\n if (key === '--apiKey') {\n apiKey = value;\n } else if (key === '--endpoint') {\n endpoint = value;\n }\n });\n\n if (!apiKey) {\n throw new Error(\"API key is required. Please provide it using --apiKey=<your_api_key>\");\n }\n\n return {\n apiKey: String(apiKey),\n endpoint: String(endpoint || 'https://app.langwatch.ai'),\n };\n}\n\n// Use the function to get apiKey and endpoint\nconst { apiKey, endpoint } = loadAndValidateArgs();\n\nconst server = new McpServer({\n name: \"LangWatch\",\n version: packageJson.version,\n});\n\nserver.tool(\n \"get_latest_traces\",\n {\n pageOffset: z.number().optional(),\n daysBackToSearch: z.number().optional(),\n },\n async ({ pageOffset, daysBackToSearch }) => {\n const response = await listLlmTraces(apiKey, {\n pageOffset,\n timeTravelDays: daysBackToSearch ?? 1,\n langWatchEndpoint: endpoint,\n });\n\n return {\n content: [{\n type: \"text\",\n text: JSON.stringify(response, null, 2),\n }],\n };\n },\n);\n\nserver.tool(\n \"get_trace_by_id\",\n {\n id: z.string(),\n },\n async ({ id }) => {\n try {\n const response = await getLlmTraceById(apiKey, id, {\n langWatchEndpoint: endpoint,\n });\n\n return {\n content: [{\n type: \"text\",\n text: JSON.stringify(response, null, 2),\n }]\n };\n } catch (error) {\n if (error instanceof Error && error.message === \"Trace not found\") {\n return {\n content: [{\n type: \"text\",\n text: \"Trace not found 😭😭😭😭. If the trace was created recently, it may not be available yet.\",\n }]\n };\n }\n\n throw error;\n }\n },\n);\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n","import { addDays } from \"date-fns\";\nimport type { LLMModeTrace } from \"langwatch\";\n\ninterface SearchTrace {\n\ttraces: LLMModeTrace[];\n}\n\ninterface GetLlmTraceByIdOptions {\n\tlangWatchEndpoint?: string;\n}\n\ninterface ListLLmTracesOptions {\n\tpageSize?: number;\n\tpageOffset?: number;\n\ttimeTravelDays?: number;\n\tlangWatchEndpoint?: string;\n}\n\nexport const getLlmTraceById = async (authToken: string, id: string, opts?: GetLlmTraceByIdOptions): Promise<LLMModeTrace> => {\n\tconst { langWatchEndpoint } = opts ?? {};\n\n\tconst endpoint = langWatchEndpoint ?? \"https://app.langwatch.ai\";\n\n\tconst url = new URL(`${endpoint}/api/trace/${id}`);\n\turl.searchParams.set(\"llmMode\", \"true\");\n\n\tconst response = await fetch(url.toString(), {\n\t\tmethod: \"GET\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"X-Auth-Token\": authToken,\n\t\t},\n\t});\n\n\tif (!response.ok) {\n\t\tif (response.status === 404) {\n\t\t\tthrow new Error(\"Trace not found\");\n\t\t}\n\n\t\tthrow new Error(`Failed to get trace: ${response.statusText}`);\n\t}\n\n\treturn await response.json() as Promise<LLMModeTrace>;\n};\n\nexport const listLlmTraces = async (authToken: string, opts?: ListLLmTracesOptions): Promise<SearchTrace> => {\n\tconst {\n\t\tpageSize = 10,\n\t\tpageOffset = 0,\n\t\ttimeTravelDays = 1,\n\t\tlangWatchEndpoint,\n\t} = opts ?? {};\n\n\tconst endpoint = langWatchEndpoint ?? \"https://app.langwatch.ai\";\n\n\tconst response = await fetch(`${endpoint}/api/trace/search`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"X-Auth-Token\": authToken,\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tstartDate: addDays(new Date(), -timeTravelDays).toISOString(),\n\t\t\tendDate: addDays(new Date(), 1).toISOString(),\n\t\t\tllmMode: true,\n\t\t\tpageOffset,\n\t\t\tpageSize,\n\t\t}),\n\t});\n\n\treturn await response.json() as Promise<SearchTrace>;\n}\n","{\n \"name\": \"@langwatch/mcp-server\",\n \"version\": \"0.0.2\",\n \"description\": \"An MCP server for Langwatch.\",\n \"type\": \"module\",\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"mcp-server\"\n },\n \"scripts\": {\n \"start\": \"tsx src/index.ts\",\n \"build\": \"tsup && node build.js\",\n \"prepublish\": \"npm run build\"\n },\n \"author\": \"\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.4.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/eslint__js\": \"^8.42.3\",\n \"@types/node\": \"^16.0.0\",\n \"esbuild\": \"^0.21.5\",\n \"eslint\": \"^8.57.0\",\n \"tsup\": \"^8.1.0\",\n \"typescript\": \"^4.9.5\",\n \"typescript-eslint\": \"^7.11.0\"\n },\n \"dependencies\": {\n \"@modelcontextprotocol/sdk\": \"^1.7.0\",\n \"date-fns\": \"^4.1.0\",\n \"langwatch\": \"^0.1.6\",\n \"zod\": \"^3.22.4\",\n \"zod-validation-error\": \"^3.3.0\"\n }\n}\n"],"mappings":"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","names":["endpoint","apiKey","endpoint"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langwatch/mcp-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "An MCP server for Langwatch.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"start": "tsx src/index.ts",
|
|
22
|
-
"build": "tsup &&
|
|
22
|
+
"build": "tsup && node build.js",
|
|
23
23
|
"prepublish": "npm run build"
|
|
24
24
|
},
|
|
25
25
|
"author": "",
|