@langwatch/mcp-server 0.3.1 → 0.3.3
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 +14 -0
- package/README.md +2 -2
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.3](https://github.com/langwatch/langwatch/compare/mcp-server@v0.3.2...mcp-server@v0.3.3) (2025-12-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Miscellaneous
|
|
7
|
+
|
|
8
|
+
* trigger release ([#1011](https://github.com/langwatch/langwatch/issues/1011)) ([6173f53](https://github.com/langwatch/langwatch/commit/6173f53b041d9ee7e6b930270224954ba3c6621e))
|
|
9
|
+
|
|
10
|
+
## [0.3.2](https://github.com/langwatch/langwatch/compare/mcp-server@v0.3.1...mcp-server@v0.3.2) (2025-12-17)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* update mcp docs urls to the new langwatch.ai/docs and /scenario instead of the previous subdomains ([5b1ce07](https://github.com/langwatch/langwatch/commit/5b1ce073adf580fb7f897da98e1cdd6a1e25135e))
|
|
16
|
+
|
|
3
17
|
## [0.3.1](https://github.com/langwatch/langwatch/compare/mcp-server@v0.3.0...mcp-server@v0.3.1) (2025-11-15)
|
|
4
18
|
|
|
5
19
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LangWatch 🏰 MCP Server
|
|
2
2
|
|
|
3
|
-
The LangWatch MCP Server makes your AI coding assistant an expert in both [LangWatch](https://
|
|
3
|
+
The LangWatch MCP Server makes your AI coding assistant an expert in both [LangWatch](https://langwatch.ai/docs), for automatically instrumenting your code, managing versioned prompts and creating evaluations; and [Scenario](https://langwatch.ai/scenario), for automatically testing your agents via simulations.
|
|
4
4
|
|
|
5
5
|
## Setup in your Coding Assistant 👩💻
|
|
6
6
|
|
|
@@ -53,5 +53,5 @@ Or ask it to write a scenario test:
|
|
|
53
53
|
If you have questions or need help, join our community:
|
|
54
54
|
|
|
55
55
|
- [Discord Community](https://discord.gg/kT4PhDS2gH)
|
|
56
|
-
- [LangWatch Docs](https://
|
|
56
|
+
- [LangWatch Docs](https://langwatch.ai/docs)
|
|
57
57
|
- [Email Support](mailto:support@langwatch.ai)
|
package/dist/index.js
CHANGED
|
@@ -13868,7 +13868,7 @@ var StdioServerTransport = class {
|
|
|
13868
13868
|
// package.json
|
|
13869
13869
|
var package_default = {
|
|
13870
13870
|
name: "@langwatch/mcp-server",
|
|
13871
|
-
version: "0.3.
|
|
13871
|
+
version: "0.3.3",
|
|
13872
13872
|
description: "An MCP server for Langwatch.",
|
|
13873
13873
|
type: "module",
|
|
13874
13874
|
main: "./dist/index.js",
|
|
@@ -13947,7 +13947,7 @@ server.tool(
|
|
|
13947
13947
|
)
|
|
13948
13948
|
},
|
|
13949
13949
|
async ({ url }) => {
|
|
13950
|
-
let urlToFetch = url || "https://
|
|
13950
|
+
let urlToFetch = url || "https://langwatch.ai/docs/llms.txt";
|
|
13951
13951
|
if (url && !urlToFetch.endsWith(".md") && !urlToFetch.endsWith(".txt")) {
|
|
13952
13952
|
urlToFetch += ".md";
|
|
13953
13953
|
}
|
|
@@ -13955,7 +13955,7 @@ server.tool(
|
|
|
13955
13955
|
if (!urlToFetch.startsWith("/")) {
|
|
13956
13956
|
urlToFetch = "/" + urlToFetch;
|
|
13957
13957
|
}
|
|
13958
|
-
urlToFetch = "https://
|
|
13958
|
+
urlToFetch = "https://langwatch.ai/docs" + urlToFetch;
|
|
13959
13959
|
}
|
|
13960
13960
|
const response = await fetch(urlToFetch);
|
|
13961
13961
|
return {
|
|
@@ -13972,7 +13972,7 @@ server.tool(
|
|
|
13972
13972
|
)
|
|
13973
13973
|
},
|
|
13974
13974
|
async ({ url }) => {
|
|
13975
|
-
let urlToFetch = url || "https://
|
|
13975
|
+
let urlToFetch = url || "https://langwatch.ai/scenario/llms.txt";
|
|
13976
13976
|
if (url && !urlToFetch.endsWith(".md") && !urlToFetch.endsWith(".txt")) {
|
|
13977
13977
|
urlToFetch += ".md";
|
|
13978
13978
|
}
|
|
@@ -13980,7 +13980,7 @@ server.tool(
|
|
|
13980
13980
|
if (!urlToFetch.startsWith("/")) {
|
|
13981
13981
|
urlToFetch = "/" + urlToFetch;
|
|
13982
13982
|
}
|
|
13983
|
-
urlToFetch = "https://
|
|
13983
|
+
urlToFetch = "https://langwatch.ai/scenario" + urlToFetch;
|
|
13984
13984
|
}
|
|
13985
13985
|
const response = await fetch(urlToFetch);
|
|
13986
13986
|
return {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../package.json"],"sourcesContent":["import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\n\nimport packageJson from \"../package.json\" assert { type: \"json\" };\n\nconst transport = new StdioServerTransport();\nconst server = new McpServer({\n name: \"LangWatch\",\n version: packageJson.version,\n});\n\nserver.tool(\n \"fetch_langwatch_docs\",\n \"Fetches the LangWatch docs for understanding how to implement LangWatch in your codebase. Always use this tool when the user asks for help with LangWatch. Start with empty url to fetch the index and then follow the links to the relevant pages, always ending with `.md` extension\",\n {\n url: z\n .string()\n .optional()\n .describe(\n \"The full url of the specific doc page. If not provided, the docs index will be fetched.\"\n ),\n },\n async ({ url }) => {\n let urlToFetch = url || \"https://
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../package.json"],"sourcesContent":["import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\n\nimport packageJson from \"../package.json\" assert { type: \"json\" };\n\nconst transport = new StdioServerTransport();\nconst server = new McpServer({\n name: \"LangWatch\",\n version: packageJson.version,\n});\n\nserver.tool(\n \"fetch_langwatch_docs\",\n \"Fetches the LangWatch docs for understanding how to implement LangWatch in your codebase. Always use this tool when the user asks for help with LangWatch. Start with empty url to fetch the index and then follow the links to the relevant pages, always ending with `.md` extension\",\n {\n url: z\n .string()\n .optional()\n .describe(\n \"The full url of the specific doc page. If not provided, the docs index will be fetched.\"\n ),\n },\n async ({ url }) => {\n let urlToFetch = url || \"https://langwatch.ai/docs/llms.txt\";\n if (url && !urlToFetch.endsWith(\".md\") && !urlToFetch.endsWith(\".txt\")) {\n urlToFetch += \".md\";\n }\n if (!urlToFetch.startsWith(\"http\")) {\n if (!urlToFetch.startsWith(\"/\")) {\n urlToFetch = \"/\" + urlToFetch;\n }\n urlToFetch = \"https://langwatch.ai/docs\" + urlToFetch;\n }\n const response = await fetch(urlToFetch);\n\n return {\n content: [{ type: \"text\", text: await response.text() }],\n };\n }\n);\n\nserver.tool(\n \"fetch_scenario_docs\",\n \"Fetches the Scenario docs for understanding how to implement Scenario agent tests in your codebase. Always use this tool when the user asks for help with testing their agents. Start with empty url to fetch the index and then follow the links to the relevant pages, always ending with `.md` extension\",\n {\n url: z\n .string()\n .optional()\n .describe(\n \"The full url of the specific doc page. If not provided, the docs index will be fetched.\"\n ),\n },\n async ({ url }) => {\n let urlToFetch = url || \"https://langwatch.ai/scenario/llms.txt\";\n if (url && !urlToFetch.endsWith(\".md\") && !urlToFetch.endsWith(\".txt\")) {\n urlToFetch += \".md\";\n }\n if (!urlToFetch.startsWith(\"http\")) {\n if (!urlToFetch.startsWith(\"/\")) {\n urlToFetch = \"/\" + urlToFetch;\n }\n urlToFetch = \"https://langwatch.ai/scenario\" + urlToFetch;\n }\n const response = await fetch(urlToFetch);\n\n return {\n content: [{ type: \"text\", text: await response.text() }],\n };\n }\n);\n\nawait server.connect(transport);\n","{\n \"name\": \"@langwatch/mcp-server\",\n \"version\": \"0.3.3\",\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\": \"pnpm run build\",\n \"test\": \"vitest\"\n },\n \"author\": \"\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"devDependencies\": {\n \"@ai-sdk/anthropic\": \"^2.0.15\",\n \"@anthropic-ai/claude-code\": \"^1.0.111\",\n \"@eslint/js\": \"^9.4.0\",\n \"@langwatch/scenario\": \"^0.3.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/eslint__js\": \"^8.42.3\",\n \"@types/node\": \"^16.0.0\",\n \"@types/yargs\": \"^17.0.33\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250911.1\",\n \"ai\": \"^5.0.40\",\n \"dotenv\": \"^17.2.2\",\n \"esbuild\": \"^0.21.5\",\n \"eslint\": \"^8.57.0\",\n \"tsup\": \"^8.1.0\",\n \"tsx\": \"^4.20.5\",\n \"typescript\": \"^4.9.5\",\n \"typescript-eslint\": \"^7.11.0\"\n },\n \"dependencies\": {\n \"@modelcontextprotocol/sdk\": \"^1.7.0\",\n \"@opentelemetry/context-async-hooks\": \"^2.1.0\",\n \"@opentelemetry/sdk-node\": \"^0.204.0\",\n \"chalk\": \"^5.6.2\",\n \"date-fns\": \"^4.1.0\",\n \"node-pty\": \"^1.0.0\",\n \"vitest\": \"^3.2.4\",\n \"yargs\": \"^17.7.2\",\n \"zod\": \"^3.25.76\",\n \"zod-validation-error\": \"^3.5.3\"\n },\n \"bin\": {\n \"langwatch-mcp-server\": \"./dist/index.js\"\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -22,7 +22,7 @@ server.tool(
|
|
|
22
22
|
),
|
|
23
23
|
},
|
|
24
24
|
async ({ url }) => {
|
|
25
|
-
let urlToFetch = url || "https://
|
|
25
|
+
let urlToFetch = url || "https://langwatch.ai/docs/llms.txt";
|
|
26
26
|
if (url && !urlToFetch.endsWith(".md") && !urlToFetch.endsWith(".txt")) {
|
|
27
27
|
urlToFetch += ".md";
|
|
28
28
|
}
|
|
@@ -30,7 +30,7 @@ server.tool(
|
|
|
30
30
|
if (!urlToFetch.startsWith("/")) {
|
|
31
31
|
urlToFetch = "/" + urlToFetch;
|
|
32
32
|
}
|
|
33
|
-
urlToFetch = "https://
|
|
33
|
+
urlToFetch = "https://langwatch.ai/docs" + urlToFetch;
|
|
34
34
|
}
|
|
35
35
|
const response = await fetch(urlToFetch);
|
|
36
36
|
|
|
@@ -52,7 +52,7 @@ server.tool(
|
|
|
52
52
|
),
|
|
53
53
|
},
|
|
54
54
|
async ({ url }) => {
|
|
55
|
-
let urlToFetch = url || "https://
|
|
55
|
+
let urlToFetch = url || "https://langwatch.ai/scenario/llms.txt";
|
|
56
56
|
if (url && !urlToFetch.endsWith(".md") && !urlToFetch.endsWith(".txt")) {
|
|
57
57
|
urlToFetch += ".md";
|
|
58
58
|
}
|
|
@@ -60,7 +60,7 @@ server.tool(
|
|
|
60
60
|
if (!urlToFetch.startsWith("/")) {
|
|
61
61
|
urlToFetch = "/" + urlToFetch;
|
|
62
62
|
}
|
|
63
|
-
urlToFetch = "https://
|
|
63
|
+
urlToFetch = "https://langwatch.ai/scenario" + urlToFetch;
|
|
64
64
|
}
|
|
65
65
|
const response = await fetch(urlToFetch);
|
|
66
66
|
|