@vantageos/mcp-boilerplate 0.1.1 → 0.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/.claude-plugin/plugin.json +15 -2
- package/CHANGELOG.md +16 -0
- package/dist/mcpServerFactory.js +21 -2
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vantage-mcp-boilerplate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Clonable dual-transport MCP server template (stdio + Streamable HTTP, stateless) on the official @modelcontextprotocol/sdk, with protocol-kit result types, OAuth 2.1 auth + public tier, multi-tenant JWT scoping, MCP Apps UI extension, server-side FR/EN i18n, and a declarative eval harness. Scaffold, extend, publish.",
|
|
5
5
|
"description_fr": "Template de serveur MCP clonable a double transport (stdio + Streamable HTTP, stateless) sur le @modelcontextprotocol/sdk officiel, avec types de resultats protocol-kit, auth OAuth 2.1 + tier public, scoping multi-tenant par JWT, extension UI MCP Apps, i18n FR/EN cote serveur, et un harnais d'evaluations declaratif. Scaffolder, etendre, publier.",
|
|
6
6
|
"author": "ElPi Corp / Laurent Perello",
|
|
@@ -8,5 +8,18 @@
|
|
|
8
8
|
"homepage": "https://github.com/elpiarthera/vantage-mcp-boilerplate",
|
|
9
9
|
"category": "mcp-server",
|
|
10
10
|
"bilingual": true,
|
|
11
|
-
"keywords": [
|
|
11
|
+
"keywords": [
|
|
12
|
+
"mcp",
|
|
13
|
+
"claude-code",
|
|
14
|
+
"boilerplate",
|
|
15
|
+
"starter",
|
|
16
|
+
"template",
|
|
17
|
+
"stdio",
|
|
18
|
+
"streamable-http",
|
|
19
|
+
"oauth",
|
|
20
|
+
"multi-tenant",
|
|
21
|
+
"i18n",
|
|
22
|
+
"vantage",
|
|
23
|
+
"elpi"
|
|
24
|
+
]
|
|
12
25
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.2] - 2026-08-07
|
|
11
|
+
|
|
12
|
+
Two derive-never-type fixes, released together.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- `tools/list` gating bug: the response was a hand-typed 2-entry descriptor
|
|
17
|
+
array (`ping`, `list_items`) while a third tool, `render_items_ui` (MCP
|
|
18
|
+
Apps UI), was registered on the server — callable but undiscoverable via
|
|
19
|
+
`tools/list`. The handler now derives the response from the SDK's own
|
|
20
|
+
registered-tools map, so no tool can be silently missing from discovery
|
|
21
|
+
again.
|
|
22
|
+
- `.claude-plugin/plugin.json`'s `version` field had drifted from
|
|
23
|
+
`package.json` (0.1.0 vs 0.1.1). It is now derived from `package.json` at
|
|
24
|
+
build time (`scripts/sync-plugin-version.mjs`, wired into `npm run build`).
|
|
25
|
+
|
|
10
26
|
## [0.1.1] - 2026-08-07
|
|
11
27
|
|
|
12
28
|
Hardening pass on the published template — packaging and documentation
|
package/dist/mcpServerFactory.js
CHANGED
|
@@ -158,8 +158,27 @@ export function createBoilerplateMcpServer(deps = {}) {
|
|
|
158
158
|
// top of the standard `tools` array every MCP client expects. The kit's
|
|
159
159
|
// `buildToolsListResult` (0.2.0+) emits the `tools` key the official
|
|
160
160
|
// `ListToolsResultSchema` requires directly — no hand alias needed.
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
//
|
|
162
|
+
// DERIVATION (not a hand-typed descriptor list): the SDK's own McpServer
|
|
163
|
+
// already builds the `tools/list` response from its single source of
|
|
164
|
+
// truth — `this._registeredTools`, populated by every `registerTool`/
|
|
165
|
+
// `registerAppTool` call above — and installs that handler on
|
|
166
|
+
// `server.server` (the low-level `Server`) via `setToolRequestHandlers()`
|
|
167
|
+
// BEFORE this function runs. Re-invoking that already-installed handler,
|
|
168
|
+
// then re-shaping its `tools` array through the kit, means a 4th
|
|
169
|
+
// registered tool appears here automatically — nothing here enumerates
|
|
170
|
+
// tool names by hand, so a tool can never again be silently missing from
|
|
171
|
+
// discovery just because this list forgot to mention it.
|
|
172
|
+
const baseListToolsHandler = server.server._requestHandlers.get("tools/list");
|
|
173
|
+
if (!baseListToolsHandler) {
|
|
174
|
+
throw new Error("tools/list handler not found on the SDK's Server — McpServer.registerTool() " +
|
|
175
|
+
"installs it lazily on first registration; this indicates no tool was ever " +
|
|
176
|
+
"registered, which is a boilerplate wiring bug, not a runtime condition to " +
|
|
177
|
+
"silently work around.");
|
|
178
|
+
}
|
|
179
|
+
server.server.setRequestHandler(ListToolsRequestSchema, async (request, extra) => {
|
|
180
|
+
const { tools } = await baseListToolsHandler(request, extra);
|
|
181
|
+
return buildToolsListResult(tools, {
|
|
163
182
|
ttlMs: 60_000,
|
|
164
183
|
cacheScope: "public",
|
|
165
184
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vantageos/mcp-boilerplate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Clonable MCP server skeleton: dual-transport bootstrap (stdio + Streamable HTTP, stateless) on the official @modelcontextprotocol/sdk, ready to extend with protocol-kit, auth, tenant and UI layers.",
|
|
5
5
|
"description_fr": "Squelette de serveur MCP clonable : bootstrap double-transport (stdio + Streamable HTTP, sans état) sur le @modelcontextprotocol/sdk officiel, prêt à étendre avec les couches protocol-kit, authentification, tenant et UI.",
|
|
6
6
|
"type": "module",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"homepage": "https://github.com/elpiarthera/vantage-mcp-boilerplate#readme",
|
|
39
39
|
"author": "ElPi Corp / Laurent Perello",
|
|
40
40
|
"scripts": {
|
|
41
|
-
"build": "tsc && mkdir -p dist/locales && cp src/locales/en.json src/locales/fr.json dist/locales/",
|
|
41
|
+
"build": "tsc && mkdir -p dist/locales && cp src/locales/en.json src/locales/fr.json dist/locales/ && node scripts/sync-plugin-version.mjs",
|
|
42
42
|
"build:ui": "vite build && mv dist/ui-bundle/index.html dist/ui-bundle/widget.html",
|
|
43
43
|
"pretest": "npm run build && npm run build:ui",
|
|
44
44
|
"test": "vitest run",
|