Moving fixes
diff --git a/.github/labeler.yml b/.github/labeler.yml
index c3d5de0..bb75ff7 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -32,6 +32,10 @@
   - changed-files:
       - any-glob-to-any-file: 'pkgs/graphs/**'
 
+'package:json_rpc_2':
+  - changed-files:
+      - any-glob-to-any-file: 'pkgs/json_rpc_2/**'
+
 'package:mime':
   - changed-files:
       - any-glob-to-any-file: 'pkgs/mime/**'
diff --git a/pkgs/json_rpc_2/.github/workflows/test-package.yml b/.github/workflows/json_rpc_2.yaml
similarity index 85%
rename from pkgs/json_rpc_2/.github/workflows/test-package.yml
rename to .github/workflows/json_rpc_2.yaml
index 8c95f72..cd1ba68 100644
--- a/pkgs/json_rpc_2/.github/workflows/test-package.yml
+++ b/.github/workflows/json_rpc_2.yaml
@@ -1,17 +1,28 @@
-name: Dart CI
+name: package:json_rpc_2
 
 on:
   # Run on PRs and pushes to the default branch.
   push:
-    branches: [ master ]
+    branches: [ main ]
+    paths:
+      - '.github/workflows/json_rpc_2.yml'
+      - 'pkgs/json_rpc_2/**'
   pull_request:
-    branches: [ master ]
+    branches: [ main ]
+    paths:
+      - '.github/workflows/json_rpc_2.yml'
+      - 'pkgs/json_rpc_2/**'
   schedule:
     - cron: "0 0 * * 0"
 
 env:
   PUB_ENVIRONMENT: bot.github
 
+
+defaults:
+  run:
+    working-directory: pkgs/json_rpc_2/
+
 jobs:
   # Check code formatting and static analysis on a single OS (linux)
   # against Dart dev.
diff --git a/README.md b/README.md
index ac4edf2..a32ee16 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@
 | [file](pkgs/file/) | A pluggable, mockable file system abstraction for Dart. | [![pub package](https://img.shields.io/pub/v/file.svg)](https://pub.dev/packages/file) |
 | [file_testing](pkgs/file_testing/) | Testing utilities for package:file (published but unlisted). | [![pub package](https://img.shields.io/pub/v/file_testing.svg)](https://pub.dev/packages/file_testing) |
 | [graphs](pkgs/graphs/) | Graph algorithms that operate on graphs in any representation | [![pub package](https://img.shields.io/pub/v/graphs.svg)](https://pub.dev/packages/graphs) |
+| [json_rpc_2](pkgs/json_rpc_2/) | Utilities to write a client or server using the JSON-RPC 2.0 spec. | [![pub package](https://img.shields.io/pub/v/json_rpc_2.svg)](https://pub.dev/packages/json_rpc_2) |
 | [mime](pkgs/mime/) | Utilities for handling media (MIME) types. | [![pub package](https://img.shields.io/pub/v/mime.svg)](https://pub.dev/packages/mime) |
 | [oauth2](pkgs/oauth2/) | A client library for authenticatingand making requests via OAuth2. | [![pub package](https://img.shields.io/pub/v/oauth2.svg)](https://pub.dev/packages/oauth2) |
 | [source_map_stack_trace](pkgs/source_map_stack_trace/) | A package for applying source maps to stack traces. | [![pub package](https://img.shields.io/pub/v/source_map_stack_trace.svg)](https://pub.dev/packages/source_map_stack_trace) |
diff --git a/pkgs/json_rpc_2/.github/dependabot.yml b/pkgs/json_rpc_2/.github/dependabot.yml
deleted file mode 100644
index cde02ad..0000000
--- a/pkgs/json_rpc_2/.github/dependabot.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Dependabot configuration file.
-# See https://docs.github.com/en/code-security/dependabot/dependabot-version-updates
-version: 2
-
-updates:
-  - package-ecosystem: github-actions
-    directory: /
-    schedule:
-      interval: monthly
-    labels:
-      - autosubmit
-    groups:
-      github-actions:
-        patterns:
-          - "*"
diff --git a/pkgs/json_rpc_2/.github/workflows/no-response.yml b/pkgs/json_rpc_2/.github/workflows/no-response.yml
deleted file mode 100644
index ab1ac49..0000000
--- a/pkgs/json_rpc_2/.github/workflows/no-response.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# A workflow to close issues where the author hasn't responded to a request for
-# more information; see https://github.com/actions/stale.
-
-name: No Response
-
-# Run as a daily cron.
-on:
-  schedule:
-    # Every day at 8am
-    - cron: '0 8 * * *'
-
-# All permissions not specified are set to 'none'.
-permissions:
-  issues: write
-  pull-requests: write
-
-jobs:
-  no-response:
-    runs-on: ubuntu-latest
-    if: ${{ github.repository_owner == 'dart-lang' }}
-    steps:
-      - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e
-        with:
-          # Don't automatically mark inactive issues+PRs as stale.
-          days-before-stale: -1
-          # Close needs-info issues and PRs after 14 days of inactivity.
-          days-before-close: 14
-          stale-issue-label: "needs-info"
-          close-issue-message: >
-            Without additional information we're not able to resolve this issue.
-            Feel free to add more info or respond to any questions above and we
-            can reopen the case. Thanks for your contribution!
-          stale-pr-label: "needs-info"
-          close-pr-message: >
-            Without additional information we're not able to resolve this PR.
-            Feel free to add more info or respond to any questions above.
-            Thanks for your contribution!
diff --git a/pkgs/json_rpc_2/.github/workflows/publish.yaml b/pkgs/json_rpc_2/.github/workflows/publish.yaml
deleted file mode 100644
index fcb7ccb..0000000
--- a/pkgs/json_rpc_2/.github/workflows/publish.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-# A CI configuration to auto-publish pub packages.
-
-name: Publish
-
-on:
-  pull_request:
-    branches: [ master ]
-  push:
-    tags: [ 'v[0-9]+.[0-9]+.[0-9]+*' ]
-
-jobs:
-  publish:
-    if: ${{ github.repository_owner == 'dart-lang' }}
-    uses: dart-lang/ecosystem/.github/workflows/publish.yaml@main
diff --git a/pkgs/json_rpc_2/CHANGELOG.md b/pkgs/json_rpc_2/CHANGELOG.md
index aec8201..1f2cf8e 100644
--- a/pkgs/json_rpc_2/CHANGELOG.md
+++ b/pkgs/json_rpc_2/CHANGELOG.md
@@ -1,6 +1,7 @@
-## 3.0.3-wip
+## 3.0.3
 
 * Require Dart 3.4
+* Move to `dart-lang/tools` monorepo.
 
 ## 3.0.2
 
diff --git a/pkgs/json_rpc_2/README.md b/pkgs/json_rpc_2/README.md
index 8ccfc57..a7dda4a 100644
--- a/pkgs/json_rpc_2/README.md
+++ b/pkgs/json_rpc_2/README.md
@@ -1,4 +1,4 @@
-[![Dart CI](https://github.com/dart-lang/json_rpc_2/actions/workflows/test-package.yml/badge.svg)](https://github.com/dart-lang/json_rpc_2/actions/workflows/test-package.yml)
+[![Build Status](https://github.com/dart-lang/tools/actions/workflows/json_rpc_2.yaml/badge.svg)](https://github.com/dart-lang/tools/actions/workflows/json_rpc_2.yaml)
 [![pub package](https://img.shields.io/pub/v/json_rpc_2.svg)](https://pub.dev/packages/json_rpc_2)
 [![package publisher](https://img.shields.io/pub/publisher/json_rpc_2.svg)](https://pub.dev/packages/json_rpc_2/publisher)
 
diff --git a/pkgs/json_rpc_2/pubspec.yaml b/pkgs/json_rpc_2/pubspec.yaml
index 4d6ff98..6f53131 100644
--- a/pkgs/json_rpc_2/pubspec.yaml
+++ b/pkgs/json_rpc_2/pubspec.yaml
@@ -1,5 +1,5 @@
 name: json_rpc_2
-version: 3.0.3-wip
+version: 3.0.3
 description: >-
   Utilities to write a client or server using the JSON-RPC 2.0 spec.
 repository: https://github.com/dart-lang/tools/tree/main/pkgs/json_rpc_2