Pin the SDK git ref and add caching on github actions (#205)

diff --git a/.github/workflows/dart_mcp_server.yaml b/.github/workflows/dart_mcp_server.yaml
index 2761e64..d7af221 100644
--- a/.github/workflows/dart_mcp_server.yaml
+++ b/.github/workflows/dart_mcp_server.yaml
@@ -35,6 +35,16 @@
           - windows-latest
     steps:
       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+      - name: Cache Pub hosted dependencies
+        uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf
+        with:
+          path: "~/.pub-cache/hosted"
+          key: "pub-cache-hosted;${{ matrix.flutterSdk }};${{ matrix.os }}"
+      - name: Cache Pub sdk git dependency
+        uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf
+        with:
+          path: "~/.pub-cache/git/sdk-b0838eac58308fc4e6654ca99eda75b30649c08f/"
+          key: "pub-cache-git;${{ matrix.flutterSdk }};${{ matrix.os }}"
       # We need the flutter SDK in order to run the counter app for integration
       # testing.
       - uses: subosito/flutter-action@v2
diff --git a/pkgs/dart_mcp_server/pubspec.yaml b/pkgs/dart_mcp_server/pubspec.yaml
index 0f37a2b..a4905ce 100644
--- a/pkgs/dart_mcp_server/pubspec.yaml
+++ b/pkgs/dart_mcp_server/pubspec.yaml
@@ -25,6 +25,9 @@
     git:
       url: https://github.com/dart-lang/sdk.git
       path: third_party/pkg/language_server_protocol
+      # When changing this, also update .github/workflows/dart_mcp_server.yaml
+      # to cache the correct directory.
+      ref: b0838eac58308fc4e6654ca99eda75b30649c08f
   meta: ^1.16.0
   path: ^1.9.1
   pool: ^1.5.1