mcp-ts-template 3.0.2 → 3.0.4

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 (3) hide show
  1. package/README.md +16 -1
  2. package/dist/index.js +18 -7
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-3.0.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![MCP Spec](https://img.shields.io/badge/MCP%20Spec-2025--11--25-8A2BE2.svg?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-11-25/changelog.mdx) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.27.1-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE)
10
+ [![Version](https://img.shields.io/badge/Version-3.0.4-blue.svg?style=flat-square)](./CHANGELOG.md) [![MCP Spec](https://img.shields.io/badge/MCP%20Spec-2025--11--25-8A2BE2.svg?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-11-25/changelog.mdx) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.27.1-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE)
11
11
 
12
12
  [![Status](https://img.shields.io/badge/Status-Stable-brightgreen.svg?style=flat-square)](https://github.com/cyanheads/mcp-ts-template/issues) [![TypeScript](https://img.shields.io/badge/TypeScript-^5.9.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/) [![Code Coverage](https://img.shields.io/badge/Coverage-86.30%25-brightgreen.svg?style=flat-square)](./coverage/index.html)
13
13
 
@@ -15,6 +15,8 @@
15
15
 
16
16
  ---
17
17
 
18
+ > **Try it live** — A public demo instance is running at `https://mcp-ts-template.caseyjhand.com/mcp`. Connect any MCP client to test the template's tools and resources without installing anything.
19
+
18
20
  ## Features
19
21
 
20
22
  - Define tools and resources in single, self-contained files. The framework handles registration.
@@ -120,6 +122,19 @@ Add the following to your MCP client configuration file.
120
122
  }
121
123
  ```
122
124
 
125
+ Or connect to the public demo server over HTTP — no installation required:
126
+
127
+ ```json
128
+ {
129
+ "mcpServers": {
130
+ "mcp-ts-template": {
131
+ "type": "streamable-http",
132
+ "url": "https://mcp-ts-template.caseyjhand.com/mcp"
133
+ }
134
+ }
135
+ }
136
+ ```
137
+
123
138
  ### Prerequisites
124
139
 
125
140
  - [Bun v1.2.0](https://bun.sh/) or higher.
package/dist/index.js CHANGED
@@ -144586,7 +144586,7 @@ config(en_default());
144586
144586
  // package.json
144587
144587
  var package_default = {
144588
144588
  name: "mcp-ts-template",
144589
- version: "3.0.2",
144589
+ version: "3.0.4",
144590
144590
  mcpName: "io.github.cyanheads/mcp-ts-template",
144591
144591
  description: "TypeScript template for MCP servers with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and Cloudflare Workers support.",
144592
144592
  main: "dist/index.js",
@@ -169300,6 +169300,7 @@ var Pe = g.object({ method: g.literal("ui/notifications/host-context-changed"),
169300
169300
  var M6 = g.object({ method: g.literal("ui/update-model-context"), params: g.object({ content: g.array(ContentBlockSchema).optional().describe("Context content blocks (text, image, etc.)."), structuredContent: g.record(g.string(), g.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.") }) });
169301
169301
  var R6 = g.object({ method: g.literal("ui/initialize"), params: g.object({ appInfo: ImplementationSchema.describe("App identification (name and version)."), appCapabilities: XI.describe("Features and capabilities this app provides."), protocolVersion: g.string().describe("Protocol version this app supports.") }) });
169302
169302
  var je = g.object({ protocolVersion: g.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'), hostInfo: ImplementationSchema.describe("Host application identification and version."), hostCapabilities: VI.describe("Features and capabilities provided by the host."), hostContext: Se.describe("Rich context about the host environment.") }).passthrough();
169303
+ var Je = "ui/resourceUri";
169303
169304
  var AI = "text/html;profile=mcp-app";
169304
169305
 
169305
169306
  class h6 extends Protocol {
@@ -169586,7 +169587,7 @@ var APP_HTML = `<!DOCTYPE html>
169586
169587
  </div>
169587
169588
 
169588
169589
  <script type="module">
169589
- import { App } from "https://esm.sh/@modelcontextprotocol/ext-apps";
169590
+ import { App } from "https://unpkg.com/@modelcontextprotocol/ext-apps@1/app-with-deps";
169590
169591
 
169591
169592
  const app = new App({ name: "Data Explorer", version: "1.0.0" });
169592
169593
 
@@ -169712,7 +169713,7 @@ var APP_HTML = `<!DOCTYPE html>
169712
169713
  const text = "User selected " + selectedRows.length + " row(s):\\n" +
169713
169714
  JSON.stringify(selectedRows, null, 2);
169714
169715
  try {
169715
- await app.sendMessage({ role: "user", content: { type: "text", text } });
169716
+ await app.sendMessage({ role: "user", content: [{ type: "text", text }] });
169716
169717
  } catch (err) {
169717
169718
  console.error("Failed to send selection:", err);
169718
169719
  }
@@ -169772,7 +169773,16 @@ var dataExplorerUiResource = {
169772
169773
  }),
169773
169774
  logic: withResourceAuth(["resource:data-explorer-ui:read"], dataExplorerUiLogic),
169774
169775
  responseFormatter: (result, meta3) => [
169775
- { uri: meta3.uri.href, mimeType: meta3.mimeType, text: result }
169776
+ {
169777
+ uri: meta3.uri.href,
169778
+ mimeType: meta3.mimeType,
169779
+ text: result,
169780
+ _meta: {
169781
+ ui: {
169782
+ csp: { resource_domains: ["https://unpkg.com"] }
169783
+ }
169784
+ }
169785
+ }
169776
169786
  ]
169777
169787
  };
169778
169788
 
@@ -171909,7 +171919,7 @@ class TaskManager {
171909
171919
  // src/mcp-server/tools/definitions/template-async-countdown.task-tool.ts
171910
171920
  var TOOL_NAME = "template_async_countdown";
171911
171921
  var TOOL_TITLE = "Async Countdown (Task Demo)";
171912
- var TOOL_DESCRIPTION = "Demonstrates the MCP Tasks API with a countdown timer. The tool returns immediately with a task handle. Poll the task status to track progress, then retrieve the final result when complete.";
171922
+ var TOOL_DESCRIPTION = "Demonstrates the MCP Tasks API with a countdown timer. When the client supports tasks, returns immediately with a task handle for polling. Otherwise, runs synchronously and returns the result directly.";
171913
171923
  var InputSchema = exports_external.object({
171914
171924
  seconds: exports_external.number().int().min(1).max(60).describe("Number of seconds to count down (1-60)"),
171915
171925
  message: exports_external.string().optional().describe("Optional message to include in the final result"),
@@ -172016,7 +172026,7 @@ var asyncCountdownTaskTool = {
172016
172026
  openWorldHint: false
172017
172027
  },
172018
172028
  execution: {
172019
- taskSupport: "required"
172029
+ taskSupport: "optional"
172020
172030
  },
172021
172031
  taskHandlers: {
172022
172032
  createTask: async (args, extra) => {
@@ -172323,7 +172333,8 @@ var dataExplorerAppTool = {
172323
172333
  logic: withToolAuth(["tool:data-explorer:read"], dataExplorerLogic),
172324
172334
  responseFormatter: responseFormatter3,
172325
172335
  _meta: {
172326
- ui: { resourceUri: UI_RESOURCE_URI }
172336
+ ui: { resourceUri: UI_RESOURCE_URI },
172337
+ [Je]: UI_RESOURCE_URI
172327
172338
  }
172328
172339
  };
172329
172340
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-ts-template",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "mcpName": "io.github.cyanheads/mcp-ts-template",
5
5
  "description": "TypeScript template for MCP servers with declarative tools/resources, pluggable auth, multi-backend storage, OpenTelemetry observability, and Cloudflare Workers support.",
6
6
  "main": "dist/index.js",