Skip to content

v2.2.0 - Dynamic Client Side Tools

Choose a tag to compare

@Arenukvern Arenukvern released this 08 Jun 22:46
· 82 commits to main since this release
4cd1db2

🎉 Dart Server + Dynamic Tools Registration

🔄 BREAKING CHANGES.

  • Server Migration: The main server is now mcp_server_dart (Dart-based), replacing the previous TypeScript server (mcp_server)
  • Configuration Changes: Updated command-line arguments and removed environment variables
  • Package Version: Updated mcp_toolkit to ^0.2.0

✨ New Features

  1. 🆕 Dynamic Tools Registration
    Flutter apps can now register custom tools at runtime.
    See video of how it works and how to use it.

  2. MCP Tools for Dynamic Registry (part of Dynamic Tools Registration)

  • listClientToolsAndResources - Discover all dynamically registered tools and resources if they are not listed in the AI Assistant (Cursor, Cline, Copilot, Roo Code etc..)
  • runClientTool - Execute custom tools registered by Flutter applications
  • runClientResource - Read custom resources registered by Flutter applications
  • getRegistryStats - Get statistics about the dynamic registry (debug mode only)

📦 Migration Guide

  1. Update AI Assistant Configuration:

If supports resources (Cline, Claude Code etc..)

{
  "mcpServers": {
    "flutter-inspector": {
      "command": "/path/to/mcp_flutter/mcp_server_dart/build/flutter_inspector_mcp",
      "args": [
        "--dart-vm-host=localhost",
        "--dart-vm-port=8181",
        "--resources",
        "--images",
        "--dynamics"
      ],
      "env": {}
    }
  }
}

If doesn’t support resources:

{
  "mcpServers": {
    "flutter-inspector": {
      "command": "/path/to/mcp_flutter/mcp_server_dart/build/flutter_inspector_mcp",
      "args": [
        "--dart-vm-host=localhost",
        "--dart-vm-port=8181",
        "--no-resources",
        "--images",
        "--dynamics"
      ],
      "env": {}
    }
  }
}
  1. Update Flutter App Dependencies:
    dependencies:
      mcp_toolkit: ^0.2.0

For New Users

Follow the updated Quick Start Guide for complete setup instructions.

🔧 Technical Changes

  1. Command Line Interface
  • Instead of environment variables, now you can use command-line flags: --resources, --no-resources, --images, --dumps, --dynamics
  • Improved logging with --log-level option
  1. MCPToolkit API Updates
  • New addEntries() method to register tools and resources from Flutter app.
  • New MCPCallEntry.tool() and MCPCallEntry.resource() constructors
  • Improved error handling with MCPCallResult

🐛 Bug Fixes

  • Fixed connection stability issues
  • Improved error handling for VM service disconnections
  • Enhanced port scanning reliability
  • Better resource cleanup on app restart

🙏 Acknowledgments

Special thanks to the community for feedback and testing, and to the Flutter team for the new Dart MCP Server which made Dart MCP Server possible.


Code Rabbit Poem :)

In the warren of code, new features appear,
Dynamic tools hop in—now discovery is clear!
Registries and managers with event-driven flair,
Flutter and MCP, a seamless new pair.
With docs and examples, the future looks bright—
This bunny approves: the registry's just right!
🐇✨