From 774bd023cf4563b36b3d0738489dc68113f31fdc Mon Sep 17 00:00:00 2001 From: Nelson Campos Date: Sat, 10 May 2025 14:06:45 -0300 Subject: [PATCH 01/10] Add MCP annotations and code generation packages - Introduced `mcp_annotations` for declaring MCP tools and servers with annotations. - Added `mcp_codegen` for generating boilerplate code from annotations. - Updated README to include new packages and their descriptions. - Created a demo server example showcasing the use of MCP annotations and code generation. - Added build configuration for the code generation process. --- README.md | 4 + examples/demo_server/bin/main.dart | 41 ++ examples/demo_server/bin/main.mcp.g.dart | 116 ++++++ examples/demo_server/build.yaml | 7 + examples/demo_server/pubspec.yaml | 20 + pkgs/mcp_annotations/README.md | 60 +++ pkgs/mcp_annotations/lib/mcp_annotations.dart | 79 ++++ pkgs/mcp_annotations/pubspec.yaml | 10 + pkgs/mcp_codegen/README.md | 63 +++ pkgs/mcp_codegen/build.yaml | 8 + pkgs/mcp_codegen/lib/mcp_codegen.dart | 10 + pkgs/mcp_codegen/lib/src/mcp_generator.dart | 378 ++++++++++++++++++ pkgs/mcp_codegen/pubspec.yaml | 23 ++ 13 files changed, 819 insertions(+) create mode 100644 examples/demo_server/bin/main.dart create mode 100644 examples/demo_server/bin/main.mcp.g.dart create mode 100644 examples/demo_server/build.yaml create mode 100644 examples/demo_server/pubspec.yaml create mode 100644 pkgs/mcp_annotations/README.md create mode 100644 pkgs/mcp_annotations/lib/mcp_annotations.dart create mode 100644 pkgs/mcp_annotations/pubspec.yaml create mode 100644 pkgs/mcp_codegen/README.md create mode 100644 pkgs/mcp_codegen/build.yaml create mode 100644 pkgs/mcp_codegen/lib/mcp_codegen.dart create mode 100644 pkgs/mcp_codegen/lib/src/mcp_generator.dart create mode 100644 pkgs/mcp_codegen/pubspec.yaml diff --git a/README.md b/README.md index fabb6426..3eb66e25 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,14 @@ A general repository for AI / GenAI packages and explorations. | --- | --- | --- | --- | | [dart_mcp](pkgs/dart_mcp/) | A package for making MCP servers and clients. | ![issues][dart_mcp_issues] | [![pub package](https://img.shields.io/pub/v/dart_mcp.svg)](https://pub.dev/packages/dart_mcp) | | [dart_tooling_mcp_server](pkgs/dart_tooling_mcp_server/) | An MCP server for Dart projects, exposing various developer tools to AI models. | ![issues][dart_tooling_mcp_server_issues] | n/a | +| [mcp_annotations](pkgs/mcp_annotations/) | A package containing annotations for declaring MCP tools and servers. | ![issues][mcp_annotations_issues] | n/a | +| [mcp_codegen](pkgs/mcp_codegen/) | A Builder/code generator that produces MCP tool and server implementations from annotated Dart code. | ![issues][mcp_codegen_issues] | n/a | [dart_mcp_issues]: https://img.shields.io/github/issues-search?label=issues&query=is%3Aissue+is%3Aopen+label%3Apackage%3Adart_mcp+repo%3Adart-lang/ai [dart_tooling_mcp_server_issues]: https://img.shields.io/github/issues-search?label=issues&query=is%3Aissue+is%3Aopen+label%3Apackage%3Adart_tooling_mcp_server+repo%3Adart-lang/ai +[mcp_annotations_issues]: https://img.shields.io/github/issues-search?label=issues&query=is%3Aissue+is%3Aopen+label%3Apackage%3Amcp_annotations+repo%3Adart-lang/ai +[mcp_codegen_issues]: https://img.shields.io/github/issues-search?label=issues&query=is%3Aissue+is%3Aopen+label%3Apackage%3Amcp_codegen+repo%3Adart-lang/ai