diff --git a/CHANGELOG.md b/CHANGELOG.md index 53f90d3..5628809 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.2.5](https://github.com/discourse/discourse-mcp/compare/v0.2.4...v0.2.5) (2026-01-29) + +### Bug Fixes + +* Expand `~` in `--profile` paths before reading file + ## [0.2.4](https://github.com/discourse/discourse-mcp/compare/v0.2.3...v0.2.4) (2026-01-20) ### Features diff --git a/package.json b/package.json index 3ae9ac4..30aa6f5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@discourse/mcp", "mcpName": "io.github.discourse/mcp", - "version": "0.2.4", + "version": "0.2.5", "description": "Discourse MCP CLI server (stdio) exposing Discourse tools via MCP", "author": "Discourse", "license": "MIT", diff --git a/src/index.ts b/src/index.ts index 99a1ef0..4b66b07 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import { readFile } from "node:fs/promises"; import { createServer } from "node:http"; +import { homedir } from "node:os"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; @@ -82,7 +83,8 @@ type Profile = z.infer; async function loadProfile(path?: string): Promise> { if (!path) return {}; - const txt = await readFile(path, "utf8"); + const resolved = path.replace(/^~(?=$|\/)/, homedir()); + const txt = await readFile(resolved, "utf8"); const raw = JSON.parse(txt); const parsed = ProfileSchema.partial().safeParse(raw); if (!parsed.success) throw new Error(`Invalid profile JSON: ${parsed.error.message}`);