Skip to content

Commit 53ff420

Browse files
authored
Release 0.7.0 (#104)
* 0.7.0 * Release v0.7.0 * chore: bump version to 0.7.0-beta.1 * chore: bump version to 0.7.0-beta1 * chore: bump version to 0.7.0-dev * chore: bump version to 0.7.0
1 parent c3b9808 commit 53ff420

5 files changed

Lines changed: 23 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
## Unreleased
22

3+
## 0.7.0 - 2026-05-05
4+
5+
### Security
6+
7+
- **Prevent path traversal in style and tileset tool URL construction** (#103) — Five tools (`RetrieveStyle`, `DeleteStyle`, `UpdateStyle`, `PreviewStyle`, `TilequeryTool`) concatenated user-supplied path parameters directly into Mapbox API URLs without validation. Because Node.js fetch uses the WHATWG URL parser, `../` sequences were normalized before sending, allowing requests to reach unintended API endpoints.
8+
- Added shared `styleIdSchema` with allowlist regex rejecting path separators, dots, percent-encoded sequences, and null bytes (`src/tools/shared/styleId.schema.ts`)
9+
- Added `owner.name` format validation to `TilequeryTool` tilesetId
10+
- Wrapped username and styleId/tilesetId in `encodeURIComponent` at every URL construction site (defense-in-depth)
11+
- Replaced silent fallback in output schema validation with explicit `isError: true` responses across all API tools — prevents unintended API responses from being forwarded to callers
12+
- Removed unused `BaseTool.validateOutput()` method
13+
- Added `test/security/path-traversal.test.ts` with 52 tests covering schema rejection, valid ID acceptance, URL encoding, and response schema mismatch behavior
14+
- **Reject cross-origin Link headers** (#103) — Pagination `next-page` URLs from `Link` response headers are now validated to share the same origin as the configured API endpoint; cross-origin URLs are rejected to prevent access token exfiltration via crafted API responses
15+
- **Redact tokens from logs** (#103) — Added `redactToken()` utility that strips `access_token` query parameter values from strings before they reach log output or MCP client error responses (network errors include the full request URL which would otherwise expose the token)
16+
317
### Removed
418

519
- **`get_latest_mapbox_docs_tool` and `get_reference_tool` removed** — documentation fetching has moved to [mcp-docs-server](https://github.com/mapbox/mcp-docs-server). Use mcp-docs-server alongside this server for Mapbox documentation access. Static reference data (style layers, Streets v8 fields, token scopes, layer type mapping) remains available as MCP Resources.

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"dxt_version": "0.1",
33
"name": "@mapbox/mcp-devkit-server",
44
"display_name": "Mapbox MCP DevKit Server",
5-
"version": "0.6.0",
5+
"version": "0.7.0",
66
"description": "Mapbox MCP devkit server",
77
"author": {
88
"name": "Mapbox, Inc."

package-lock.json

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mapbox/mcp-devkit-server",
3-
"version": "0.6.0",
3+
"version": "0.7.0",
44
"description": "Mapbox MCP devkit server",
55
"mcpName": "io.github.mapbox/mcp-devkit-server",
66
"main": "./dist/commonjs/index.js",

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
"url": "https://github.com/mapbox/mcp-devkit-server",
77
"source": "github"
88
},
9-
"version": "0.6.0",
9+
"version": "0.7.0",
1010
"packages": [
1111
{
1212
"registryType": "npm",
1313
"registryBaseUrl": "https://registry.npmjs.org",
1414
"runtimeHint": "npx",
15-
"version": "0.6.0",
15+
"version": "0.7.0",
1616
"identifier": "@mapbox/mcp-devkit-server",
1717
"transport": {
1818
"type": "stdio"

0 commit comments

Comments
 (0)