@uphealth/mcp-server 1.1.0 → 1.1.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/dist/config.js +1 -1
- package/dist/output-schemas.js +1 -1
- package/dist/output-schemas.js.map +1 -1
- package/dist/stdio-context.js +19 -0
- package/dist/stdio-context.js.map +1 -0
- package/dist/stdio.js +23 -14
- package/dist/stdio.js.map +1 -1
- package/dist/tools/lookup-health-fact.js +5 -5
- package/dist/tools/lookup-health-fact.js.map +1 -1
- package/package.json +1 -1
package/dist/config.js
CHANGED
package/dist/output-schemas.js
CHANGED
|
@@ -131,7 +131,7 @@ export const lookupHealthFactOutputSchema = {
|
|
|
131
131
|
properties: {
|
|
132
132
|
fact: {
|
|
133
133
|
type: "object",
|
|
134
|
-
description: "The single already-public federal fact.",
|
|
134
|
+
description: "The single already-public federal message — a fact, list, or tip (see kind).",
|
|
135
135
|
properties: {
|
|
136
136
|
kind: { type: "string", description: "fact | list | tip" },
|
|
137
137
|
body: { type: "string" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../src/output-schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../src/output-schemas.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,uEAAuE;AACvE,2EAA2E;AAC3E,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAE9E,6EAA6E;AAC7E,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,gFAAgF;IAC7F,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC1D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;QAC9G,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACxG,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;KAChE;IACD,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,kFAAkF;AAClF,uEAAuE;AACvE,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,6EAA6E;IAC/E,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;QACrE,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qDAAqD;SACnE;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EACT,6GAA6G;SAChH;KACF;IACD,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,uFAAuF;AACvF,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,yDAAyD;IACtE,UAAU,EAAE;QACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7B,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzC;IACD,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oDAAoD,EAAE;QACjG,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,SAAS,EAAE,UAAU;QACrB,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QAClD,UAAU,EAAE,iBAAiB;QAC7B,KAAK,EAAE,WAAW;KACnB;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,oBAAoB;QACpB,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oEAAoE,EAAE;QAClH,QAAQ,EAAE,UAAU;QACpB,iDAAiD;QACjD,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wEAAwE,EAAE;QAC7H,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,UAAU,EAAE,iBAAiB;QAC7B,KAAK,EAAE,WAAW;KACnB;IACD,8EAA8E;IAC9E,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE;QACrE,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,UAAU,EAAE,iBAAiB;QAC7B,KAAK,EAAE,WAAW;KACnB;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC1D,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3C,KAAK,EAAE,WAAW;KACnB;IACD,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,kFAAkF;AAClF,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,IAAI,EAAE,QAAiB;IACvB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8EAA8E;YAC3F,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBAC1D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;gBACvG,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAChF,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;aACpF;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;QACpE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAClF,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yEAAyE;YACtF,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC;CAC3D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Pure resolver for the stdio entrypoint's process-level fallback context.
|
|
2
|
+
//
|
|
3
|
+
// Split into its own side-effect-free module (only a type-only import) so it can
|
|
4
|
+
// be unit-tested WITHOUT importing stdio.ts — whose bottom-of-file main() boots a
|
|
5
|
+
// transport on import. (An `import.meta.url === argv[1]` entrypoint guard was
|
|
6
|
+
// considered and rejected: npm runs the published bin via a `.bin/…` symlink, so
|
|
7
|
+
// argv[1] is the symlink path while import.meta.url is the real dist/stdio.js —
|
|
8
|
+
// they don't match, and main() would never run. Keeping the helper separate lets
|
|
9
|
+
// stdio.ts call main() unconditionally, as the entrypoint must.)
|
|
10
|
+
//
|
|
11
|
+
// Contract: a missing / whitespace-only key yields an EMPTY bearer (keyless
|
|
12
|
+
// mode) — NOT a process exit. With an empty bearer, lookup_health_fact still
|
|
13
|
+
// works (it calls the public endpoint with no bearer) and every keyed tool
|
|
14
|
+
// forwards the empty bearer so Rails 401s it at call-time. Rails is the auth
|
|
15
|
+
// authority. A present key is returned trimmed.
|
|
16
|
+
export function stdioFallbackContext(rawKey) {
|
|
17
|
+
return { bearer: (rawKey ?? "").trim() };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=stdio-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio-context.js","sourceRoot":"","sources":["../src/stdio-context.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,iFAAiF;AACjF,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,gDAAgD;AAIhD,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC7D,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC3C,CAAC"}
|
package/dist/stdio.js
CHANGED
|
@@ -4,30 +4,39 @@
|
|
|
4
4
|
//
|
|
5
5
|
// npx -y @uphealth/mcp-server
|
|
6
6
|
//
|
|
7
|
-
//
|
|
7
|
+
// KEYLESS by default. The one keyless tool (lookup_health_fact) works with NO
|
|
8
|
+
// key, matching the hosted Streamable HTTP deployment at mcp.uphealth.us
|
|
9
|
+
// (src/index.ts) — so "zero setup" is true on BOTH the npx and the remote path,
|
|
10
|
+
// not just the remote. Supply a free sandbox key in the environment to unlock the
|
|
11
|
+
// keyed tools (create_patient_stream, get_next_cued_message, …):
|
|
8
12
|
//
|
|
9
13
|
// UPHEALTH_API_KEY=up_sandbox_…
|
|
10
14
|
//
|
|
11
|
-
//
|
|
12
|
-
// hosted Streamable HTTP deployment at mcp.uphealth.us (src/index.ts). The two
|
|
13
|
-
// share the same tools and the same Server factory (server.ts).
|
|
15
|
+
// The two transports share the same tools and the same Server factory (server.ts).
|
|
14
16
|
//
|
|
15
|
-
// A stdio process is single-tenant: one user, one
|
|
16
|
-
// that
|
|
17
|
-
// that read the per-request bearer over HTTP work unchanged here.
|
|
17
|
+
// A stdio process is single-tenant: one user, one bearer for its lifetime. We set
|
|
18
|
+
// that bearer as the process-level fallback context, so the same tool handlers
|
|
19
|
+
// that read the per-request bearer over HTTP work unchanged here. With NO key we
|
|
20
|
+
// set an EMPTY bearer: lookup_health_fact hits the public endpoint (no bearer
|
|
21
|
+
// needed) and works; every keyed tool forwards the empty bearer and Rails 401s it
|
|
22
|
+
// at call-time. Rails stays the single auth authority (defense in depth) — we do
|
|
23
|
+
// not pre-reject keyless here; we let the keyless tool through and let Rails gate
|
|
24
|
+
// the keyed ones, exactly as the HTTP per-tool policy does (tool-auth-policy.ts).
|
|
18
25
|
import "./bootstrap-env.js"; // must run before anything imports config.ts
|
|
19
26
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
20
27
|
import { setFallbackContext } from "./context.js";
|
|
28
|
+
import { stdioFallbackContext } from "./stdio-context.js";
|
|
21
29
|
import { buildServer } from "./server.js";
|
|
22
30
|
async function main() {
|
|
23
|
-
const
|
|
24
|
-
if (!
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
const ctx = stdioFallbackContext(process.env.UPHEALTH_API_KEY);
|
|
32
|
+
if (!ctx.bearer) {
|
|
33
|
+
// Informational, NOT fatal. stdout is the MCP JSON-RPC channel, so guidance
|
|
34
|
+
// goes to stderr. Keyless mode is fully functional for lookup_health_fact.
|
|
35
|
+
console.error("Uphealth MCP: running keyless — lookup_health_fact works with no key. " +
|
|
36
|
+
"For the keyed tools (patient streams + cues), get a free sandbox key at " +
|
|
37
|
+
"https://uphealth.us/signup and set UPHEALTH_API_KEY in your MCP client config.");
|
|
29
38
|
}
|
|
30
|
-
setFallbackContext(
|
|
39
|
+
setFallbackContext(ctx);
|
|
31
40
|
const server = buildServer();
|
|
32
41
|
const transport = new StdioServerTransport();
|
|
33
42
|
await server.connect(transport);
|
package/dist/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,uEAAuE;AACvE,4EAA4E;AAC5E,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,uEAAuE;AACvE,4EAA4E;AAC5E,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,gFAAgF;AAChF,kFAAkF;AAClF,iEAAiE;AACjE,EAAE;AACF,kCAAkC;AAClC,EAAE;AACF,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,kFAAkF;AAElF,OAAO,oBAAoB,CAAC,CAAC,6CAA6C;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,4EAA4E;QAC5E,2EAA2E;QAC3E,OAAO,CAAC,KAAK,CACX,wEAAwE;YACtE,0EAA0E;YAC1E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,2EAA2E;IAC3E,kEAAkE;AACpE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -17,13 +17,13 @@ import { successResult, errorResult } from "../tool-result.js";
|
|
|
17
17
|
import { lookupHealthFactOutputSchema } from "../output-schemas.js";
|
|
18
18
|
export const lookupHealthFactTool = {
|
|
19
19
|
name: "lookup_health_fact",
|
|
20
|
-
description: "Zero setup — NO key required. Returns ONE already-public federal health fact for a question
|
|
21
|
-
'(e.g. "high blood pressure", "sleep", "type 2 diabetes"), with its federal source (CDC / MedlinePlus / ' +
|
|
20
|
+
description: "Zero setup — NO key required. Returns ONE already-public federal health fact, list, or tip for a question " +
|
|
21
|
+
'or topic (e.g. "high blood pressure", "sleep", "type 2 diabetes"), with its federal source (CDC / MedlinePlus / ' +
|
|
22
22
|
"NIH) and a link to the public uphealth.me page. Free + rate-limited. For adaptive, patient-specific " +
|
|
23
|
-
"message sequencing — receptivity-
|
|
24
|
-
"free Discovery key at https://uphealth.us/signup.",
|
|
23
|
+
"message sequencing — receptivity-scored cues + audience-safety verdicts over the full library of " +
|
|
24
|
+
"federally-sourced facts, lists & tips — get a free Discovery key at https://uphealth.us/signup.",
|
|
25
25
|
annotations: {
|
|
26
|
-
title: "Look up a public health fact (no key)",
|
|
26
|
+
title: "Look up a public health fact, list, or tip (no key)",
|
|
27
27
|
readOnlyHint: true,
|
|
28
28
|
openWorldHint: false,
|
|
29
29
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-health-fact.js","sourceRoot":"","sources":["../../src/tools/lookup-health-fact.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,mCAAmC;AACnC,4DAA4D;AAC5D,gFAAgF;AAChF,+EAA+E;AAC/E,kFAAkF;AAClF,gEAAgE;AAChE,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,gEAAgE;AAEhE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"lookup-health-fact.js","sourceRoot":"","sources":["../../src/tools/lookup-health-fact.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,mCAAmC;AACnC,4DAA4D;AAC5D,gFAAgF;AAChF,+EAA+E;AAC/E,kFAAkF;AAClF,gEAAgE;AAChE,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,gEAAgE;AAEhE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,4GAA4G;QAC5G,kHAAkH;QAClH,sGAAsG;QACtG,mGAAmG;QACnG,iGAAiG;IACnG,WAAW,EAAE;QACX,KAAK,EAAE,qDAAqD;QAC5D,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,CAAC,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wFAAwF;aACtG;SACF;QACD,QAAQ,EAAE,CAAC,GAAG,CAAC;QACf,oBAAoB,EAAE,KAAK;KAC5B;IACD,YAAY,EAAE,4BAA4B;IAC1C,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,4BAA4B,kBAAkB,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA6B,CAAC;YACpD,yDAAyD;YACzD,0EAA0E;YAC1E,6FAA6F;YAC7F,kEAAkE;YAClE,MAAM,OAAO,GACX,CAAC,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC;gBACnD,CAAC,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC;gBAC/C,+BAA+B,QAAQ,CAAC,MAAM,IAAI,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,IAAI,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,OAAO,WAAW,CAAC,uBAAuB,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uphealth/mcp-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"mcpName": "us.uphealth/mcp",
|
|
5
5
|
"description": "Uphealth MCP server — drive cued health-message streams (Uphealth Signal) from any MCP client. Local stdio via npx, or hosted at mcp.uphealth.us.",
|
|
6
6
|
"license": "MIT",
|