Skip to content

Commit d4ce254

Browse files
jakemac53Commit Queue
authored andcommitted
use createArgParser from package:dart_mcp_server to support all args automatically
Bump ai to 64dfa7f138aa4d9bcc06e807858136b7d4d296d3 Changes: ``` > git log --format="%C(auto) %h %s" 38734ff..64dfa7f https://dart.googlesource.com/ai.git/+/64dfa7f move static argParser variable to a createArgParser function (212) https://dart.googlesource.com/ai.git/+/a5aa053 Bump actions/cache from 4.2.2 to 4.2.3 in the github-actions group (211) ``` Diff: https://dart.googlesource.com/ai.git/+/38734ffec837c55ecb8c657384c5db06d46ebd53..64dfa7f138aa4d9bcc06e807858136b7d4d296d3/ Change-Id: Ibbf884d4eaaaf07664567fa2efb655ed9e90f9c3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/438280 Commit-Queue: Jake Macdonald <[email protected]> Auto-Submit: Jake Macdonald <[email protected]> Reviewed-by: Ivan Inozemtsev <[email protected]> Reviewed-by: Alexander Markov <[email protected]>
1 parent 438a14c commit d4ce254

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

DEPS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ vars = {
131131
### /third_party/pkg dependencies
132132
# 'tools/rev_sdk_deps.dart' will rev pkg dependencies to their latest; put an
133133
# EOL comment after a dependency to instead pin at the current revision.
134-
"ai_rev": "38734ffec837c55ecb8c657384c5db06d46ebd53",
134+
"ai_rev": "64dfa7f138aa4d9bcc06e807858136b7d4d296d3",
135135
"core_rev": "b59ecf4ceebe6153e1c0166b7c9a7fdd9458a89d",
136136
"dartdoc_rev": "f1fe17752b1193ad52d69271ceb686cc3e4712b0",
137137
"ecosystem_rev": "d5233c6dd0767cffa5742e32c4bc7c230c9c4b12",

pkg/dartdev/lib/src/commands/dart_mcp_server.dart

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
import 'dart:async';
66

7+
import 'package:args/args.dart';
8+
import 'package:dart_mcp_server/arg_parser.dart' as dart_mcp_server;
9+
import 'package:dartdev/src/utils.dart';
10+
711
import '../core.dart';
812
import '../sdk.dart';
913
import '../vm_interop_handler.dart';
@@ -14,44 +18,43 @@ class DartMCPServerCommand extends DartdevCommand {
1418
static const String cmdDescription = '''
1519
A stdio based Model Context Protocol (MCP) server to aid in Dart and Flutter development.''';
1620

17-
static const _forceRootsFallbackFlag = 'force-roots-fallback';
1821
static const _experimentFlag = 'experimental-mcp-server';
1922

23+
@override
24+
ArgParser createArgParser() => dart_mcp_server.createArgParser(
25+
usageLineLength: dartdevUsageLineLength, includeHelp: false);
26+
2027
DartMCPServerCommand({bool verbose = false})
2128
: super(cmdName, cmdDescription, verbose, hidden: true) {
22-
argParser
23-
..addFlag(
24-
_forceRootsFallbackFlag,
25-
negatable: true,
29+
argParser.addFlag(_experimentFlag,
30+
// This flag is no longer required but we are leaving it in for
31+
// backwards compatibility.
32+
hide: true,
2633
defaultsTo: false,
27-
help:
28-
'Forces a behavior for project roots which uses MCP tools instead '
29-
'of the native MCP roots. This can be helpful for clients like '
30-
'Cursor which claim to have roots support but do not actually '
31-
'support it.',
32-
)
33-
..addFlag(_experimentFlag,
34-
// This flag is no longer required but we are leaving it in for
35-
// backwards compatibility.
36-
hide: true,
37-
defaultsTo: false,
38-
help: 'A required flag in order to use this command. Passing this '
39-
'flag is an acknowledgement that you understand it is an '
40-
'experimental feature with no stability guarantees.');
34+
help: 'A required flag in order to use this command. Passing this '
35+
'flag is an acknowledgement that you understand it is an '
36+
'experimental feature with no stability guarantees.');
4137
}
4238

4339
@override
4440
CommandCategory get commandCategory => CommandCategory.tools;
4541

4642
@override
4743
Future<int> run() async {
48-
final args = argResults!;
44+
final parsedArgs = argResults!;
45+
46+
// Strip out the experiment flag before forwarding on the args, this flag
47+
// isn't supported by the actual binary.
48+
final forwardedArgs = argResults!.arguments.toList();
49+
if (parsedArgs.wasParsed(_experimentFlag)) {
50+
forwardedArgs.removeWhere((arg) => arg.endsWith(_experimentFlag));
51+
}
4952
try {
5053
VmInteropHandler.run(
5154
sdk.dartAotRuntime,
5255
[
5356
sdk.dartMCPServerAotSnapshot,
54-
if (args.flag(_forceRootsFallbackFlag)) '--$_forceRootsFallbackFlag'
57+
...forwardedArgs,
5558
],
5659
useExecProcess: true,
5760
);

pkg/dartdev/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ dependencies:
1818
code_assets: any
1919
collection: any
2020
dart2native: any
21+
dart_mcp_server: any
2122
dart_style: any
2223
dartdoc: any
2324
data_assets: any

0 commit comments

Comments
 (0)