virnavi_ai_agent_mcp_generator 0.0.3 copy "virnavi_ai_agent_mcp_generator: ^0.0.3" to clipboard
virnavi_ai_agent_mcp_generator: ^0.0.3 copied to clipboard

Build-time code generator for virnavi_ai_agent_mcp. Generates MCP schemas and tool extensions from @McpModel and @McpService annotations.

example/lib/main.dart

import 'package:flutter/material.dart';

import 'example_summary.dart';
import 'services.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MCP Generator Example',
      theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo)),
      home: const SummaryPage(),
    );
  }
}

class SummaryPage extends StatefulWidget {
  const SummaryPage({super.key});

  @override
  State<SummaryPage> createState() => _SummaryPageState();
}

class _SummaryPageState extends State<SummaryPage> {
  late final _summary = $ExampleSummaryMcpSummary.bindAll(CatalogService().mcpTools);

  @override
  Widget build(BuildContext context) {
    final tools = _summary.tools.values.toList();
    final models = _summary.models.values.toList();

    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: const Text('MCP Generator Example'),
          bottom: const TabBar(
            tabs: [Tab(text: 'Tools'), Tab(text: 'Models')],
          ),
        ),
        body: TabBarView(
          children: [
            // ── Tools tab ──────────────────────────────────────────────────
            ListView.builder(
              itemCount: tools.length,
              itemBuilder: (context, i) {
                final tool = tools[i];
                return ExpansionTile(
                  title: Text(
                    tool.name.split('/mcp/').last,
                    style: const TextStyle(fontWeight: FontWeight.bold),
                  ),
                  subtitle: Text(tool.description),
                  children: [
                    Padding(
                      padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
                      child: Text(
                        tool.inputSchema.toJson().toString(),
                        style: const TextStyle(fontFamily: 'monospace', fontSize: 12),
                      ),
                    ),
                  ],
                );
              },
            ),
            // ── Models tab ─────────────────────────────────────────────────
            ListView.builder(
              itemCount: models.length,
              itemBuilder: (context, i) {
                final model = models[i];
                return ExpansionTile(
                  title: Text(
                    model.id.split('/').last,
                    style: const TextStyle(fontWeight: FontWeight.bold),
                  ),
                  subtitle: Text(model.id),
                  children: [
                    Padding(
                      padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
                      child: Text(
                        model.schemaFactory().toJson().toString(),
                        style: const TextStyle(fontFamily: 'monospace', fontSize: 12),
                      ),
                    ),
                  ],
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
150
points
175
downloads

Documentation

API reference

Publisher

verified publishervirnavi.com

Weekly Downloads

Build-time code generator for virnavi_ai_agent_mcp. Generates MCP schemas and tool extensions from @McpModel and @McpService annotations.

Repository (GitHub)
View/report issues

Topics

#mcp #ai #agent #code-generation #build-runner

License

MIT (license)

Dependencies

analyzer, build, glob, json_annotation, source_gen, virnavi_ai_agent_mcp

More

Packages that depend on virnavi_ai_agent_mcp_generator