qyl-mcp-server 7.2.1 → 7.2.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/README.md +19 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.js +2 -2
- package/dist/contract-handshake.d.ts +4 -1
- package/dist/contract-handshake.js +4 -1
- package/dist/contract-handshake.js.map +1 -1
- package/dist/mcp-app.html +1 -1
- package/dist/mcp-dashboard.html +1 -1
- package/dist/mcp-home.html +1 -1
- package/dist/ui-domain.js +13 -9
- package/dist/ui-domain.js.map +1 -1
- package/package.json +2 -2
package/dist/mcp-home.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="color-scheme" content="dark">
|
|
7
7
|
<meta name="description" content="Bring qyl traces, logs, and MCP telemetry into your coding agent.">
|
|
8
8
|
<title>qyl · MCP telemetry for coding agents</title>
|
|
9
|
-
<script type="module" crossorigin>(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=`7.2.
|
|
9
|
+
<script type="module" crossorigin>(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=`7.2.3`,t=`https://mcp.qyl.at/mcp`,n={codex:{title:`terminal`,value:`codex mcp add qyl --url ${t}`},claude:{title:`terminal`,value:`claude mcp add --transport http qyl ${t}`},cursor:{title:`mcp.json`,value:`{
|
|
10
10
|
"mcpServers": {
|
|
11
11
|
"qyl": {
|
|
12
12
|
"url": "${t}"
|
package/dist/ui-domain.js
CHANGED
|
@@ -5,6 +5,14 @@ export function hostedUiDomain(publicMcpUrl) {
|
|
|
5
5
|
const origin = new URL(publicMcpUrl).origin;
|
|
6
6
|
// Hash the exact configured connector URL, including its path and trailing slash.
|
|
7
7
|
const claudeDomain = `${createHash("sha256").update(publicMcpUrl).digest("hex").slice(0, 32)}.claudemcpcontent.com`;
|
|
8
|
+
const domainForHint = (hint) => {
|
|
9
|
+
if (/^(?:claude(?:ai)?(?:[-\s_./]|$)|anthropic\/claude(?:ai)?(?:[-\s_./]|$))/iu.test(hint)) {
|
|
10
|
+
return claudeDomain;
|
|
11
|
+
}
|
|
12
|
+
if (/^(?:chatgpt|openai-mcp)(?:[-\s_./]|$)/iu.test(hint))
|
|
13
|
+
return origin;
|
|
14
|
+
return undefined;
|
|
15
|
+
};
|
|
8
16
|
return (context) => {
|
|
9
17
|
const envelope = context.mcpReq.envelope;
|
|
10
18
|
const clientInfo = envelope && CLIENT_INFO_META_KEY in envelope
|
|
@@ -14,15 +22,11 @@ export function hostedUiDomain(publicMcpUrl) {
|
|
|
14
22
|
&& "name" in clientInfo && typeof clientInfo.name === "string"
|
|
15
23
|
? clientInfo.name
|
|
16
24
|
: undefined;
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
if (/^(?:chatgpt|openai-mcp)(?:[-\s_./]|$)/iu.test(clientHint))
|
|
24
|
-
return origin;
|
|
25
|
-
return undefined;
|
|
25
|
+
// Check both hints, but a recognized SDK name wins if they disagree.
|
|
26
|
+
// Unknown names and stateless legacy HTTP can still use the User-Agent.
|
|
27
|
+
const nameDomain = domainForHint(clientName ?? "");
|
|
28
|
+
const userAgentDomain = domainForHint(context.http?.req?.headers.get("user-agent") ?? "");
|
|
29
|
+
return nameDomain ?? userAgentDomain;
|
|
26
30
|
};
|
|
27
31
|
}
|
|
28
32
|
//# sourceMappingURL=ui-domain.js.map
|
package/dist/ui-domain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-domain.js","sourceRoot":"","sources":["../src/ui-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAsB,MAAM,8BAA8B,CAAC;AAIxF,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,MAAM,YAAY,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC;IAEpH,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,IAAI,oBAAoB,IAAI,QAAQ;YAC7D,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,UAAU,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;eACnE,MAAM,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YAC9D,CAAC,CAAC,UAAU,CAAC,IAAI;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,
|
|
1
|
+
{"version":3,"file":"ui-domain.js","sourceRoot":"","sources":["../src/ui-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAsB,MAAM,8BAA8B,CAAC;AAIxF,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,MAAM,YAAY,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC;IAEpH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAsB,EAAE;QACzD,IAAI,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,IAAI,oBAAoB,IAAI,QAAQ;YAC7D,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,UAAU,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;eACnE,MAAM,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YAC9D,CAAC,CAAC,UAAU,CAAC,IAAI;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,OAAO,UAAU,IAAI,eAAe,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qyl-mcp-server",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "qyl telemetry MCP Apps server: trace explorer and MCP dashboard for a live collector or explicit demo mode",
|
|
6
6
|
"repository": {
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"smoke:projects": "node project-access-smoke.mjs"
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
|
-
"@ancplua/qyl-api-schema": "11.
|
|
81
|
+
"@ancplua/qyl-api-schema": "11.5.0",
|
|
82
82
|
"@modelcontextprotocol/core": "2.3.1",
|
|
83
83
|
"@modelcontextprotocol/server": "2.3.1",
|
|
84
84
|
"@opentelemetry/api": "1.9.1",
|