diff --git a/pkgs/dart_mcp/CHANGELOG.md b/pkgs/dart_mcp/CHANGELOG.md index 69a03d6..e0e6f97 100644 --- a/pkgs/dart_mcp/CHANGELOG.md +++ b/pkgs/dart_mcp/CHANGELOG.md @@ -2,6 +2,7 @@ - Update workflow example to show thinking spinner and input and output token usage. +- Update file system example to support relative paths. ## 0.2.0 diff --git a/pkgs/dart_mcp/example/file_system_server.dart b/pkgs/dart_mcp/example/file_system_server.dart index 6f994b6..40b3121 100644 --- a/pkgs/dart_mcp/example/file_system_server.dart +++ b/pkgs/dart_mcp/example/file_system_server.dart @@ -54,7 +54,8 @@ final class SimpleFileSystemServer extends MCPServer /// Returns `null` if [path] is valid. Future _checkAllowedPath(String path) async { for (var root in await roots) { - if (root.uri == path || p.isWithin(root.uri, path)) { + final resolvedPath = Uri.parse(root.uri).resolve(path).toString(); + if (root.uri == resolvedPath || p.isWithin(root.uri, resolvedPath)) { return null; } }