@cyanheads/exchange-rates-mcp-server 0.2.0 → 0.2.1
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/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/Dockerfile +8 -10
- package/README.md +1 -1
- package/changelog/0.2.x/0.2.1.md +15 -0
- package/package.json +1 -1
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** exchange-rates-mcp-server
|
|
4
|
-
**Version:** 0.2.
|
|
4
|
+
**Version:** 0.2.1
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** exchange-rates-mcp-server
|
|
4
|
-
**Version:** 0.2.
|
|
4
|
+
**Version:** 0.2.1
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/Dockerfile
CHANGED
|
@@ -8,11 +8,6 @@ FROM oven/bun:1.3.14 AS build
|
|
|
8
8
|
|
|
9
9
|
WORKDIR /usr/src/app
|
|
10
10
|
|
|
11
|
-
# Install build tools required for native modules (@duckdb/node-api requires python3/make/g++)
|
|
12
|
-
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
13
|
-
python3 make g++ && \
|
|
14
|
-
rm -rf /var/lib/apt/lists/*
|
|
15
|
-
|
|
16
11
|
# Copy dependency manifests for optimized layer caching
|
|
17
12
|
COPY package.json bun.lock ./
|
|
18
13
|
|
|
@@ -54,10 +49,13 @@ LABEL org.opencontainers.image.version="${APP_VERSION}"
|
|
|
54
49
|
# Copy dependency manifests
|
|
55
50
|
COPY package.json bun.lock ./
|
|
56
51
|
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
|
|
52
|
+
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
53
|
+
# that are not needed in the final production image. Peers are omitted too: the
|
|
54
|
+
# framework's optional peers are opt-in tiers this server does not use, and its one
|
|
55
|
+
# required peer (zod) is a direct dependency. The OTEL tier is installed explicitly
|
|
56
|
+
# below; @duckdb/node-api is likewise a direct dependency.
|
|
57
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
58
|
+
bun install --production --frozen-lockfile --ignore-scripts --omit=peer
|
|
61
59
|
|
|
62
60
|
# Conditionally install OpenTelemetry optional peer dependencies (Tier 3).
|
|
63
61
|
# These are not bundled by default to keep the base image lean. Enable at build time
|
|
@@ -65,7 +63,7 @@ COPY --from=build /usr/src/app/node_modules ./node_modules
|
|
|
65
63
|
ARG OTEL_ENABLED=true
|
|
66
64
|
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
67
65
|
if [ "$OTEL_ENABLED" = "true" ]; then \
|
|
68
|
-
bun add --omit=dev --ignore-scripts @hono/otel \
|
|
66
|
+
bun add --omit=dev --omit=peer --ignore-scripts @hono/otel \
|
|
69
67
|
@opentelemetry/instrumentation-http \
|
|
70
68
|
@opentelemetry/exporter-metrics-otlp-http \
|
|
71
69
|
@opentelemetry/exporter-trace-otlp-http \
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/exchange-rates-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/exchange-rates-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Production Docker image installs its own dependencies instead of inheriting the build stage's devDependencies; drops the unused native-build toolchain"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.2.1 — 2026-07-31
|
|
8
|
+
|
|
9
|
+
## Fixed
|
|
10
|
+
|
|
11
|
+
- **Production image no longer ships build-stage devDependencies** — the production stage runs `bun install --production --frozen-lockfile --ignore-scripts --omit=peer` instead of `COPY --from=build … node_modules`, so `typescript`, `vitest`, `depcheck`, `tsc-alias`, `@biomejs/*`, and the `@rolldown`/`@esbuild` platform binaries no longer land in the shipped image. ([#9](https://github.com/cyanheads/exchange-rates-mcp-server/issues/9))
|
|
12
|
+
- **Build stage drops the unused `python3 make g++` apt layer** — `@duckdb/node-api` and `@duckdb/node-bindings` ship prebuilt platform binaries and declare no install scripts, and the build stage already runs with `--ignore-scripts`, so nothing in the tree ever compiled from source. ([#9](https://github.com/cyanheads/exchange-rates-mcp-server/issues/9))
|
|
13
|
+
- **`--omit=peer` added to the production install and the OTel `bun add`** — the framework's 29 optional peer dependencies were otherwise pulled into the image by default, and a `bun add` after a peer-omitting install would have re-resolved them back in. `zod` (the framework's one required peer) and `@duckdb/node-api` remain, as direct dependencies of this server.
|
|
14
|
+
|
|
15
|
+
Runtime image size: 900MB → 558MB.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/exchange-rates-mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"mcpName": "io.github.cyanheads/exchange-rates-mcp-server",
|
|
5
5
|
"description": "Convert currencies, get FX rates, and query historical ECB exchange rate data via MCP. STDIO or Streamable HTTP.",
|
|
6
6
|
"type": "module",
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/exchange-rates-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.1",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/exchange-rates-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.2.
|
|
22
|
+
"version": "0.2.1",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{
|
|
25
25
|
"type": "positional",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
63
63
|
"identifier": "@cyanheads/exchange-rates-mcp-server",
|
|
64
64
|
"runtimeHint": "bun",
|
|
65
|
-
"version": "0.2.
|
|
65
|
+
"version": "0.2.1",
|
|
66
66
|
"packageArguments": [
|
|
67
67
|
{
|
|
68
68
|
"type": "positional",
|