# MCP Client

A Dart plugin implementing a Model Context Protocol client, letting Flutter apps connect to MCP servers across Android, iOS, web, Linux, Windows and macOS.

This Dart plugin implements an MCP client for Flutter applications, negotiating one of four protocol revisions per client rather than a version fixed at build time, from the original 2024-11-05 revision through 2025-06-18, which adds elicitation, structured tool output and resource features.

It provides a sealed transport configuration covering stdio, SSE and Streamable HTTP, built-in OAuth 2.1 for secure HTTP transports, and result-typed error handling. It implements the core MCP primitives: resources with URI templates and subscriptions, tools with progress tracking and structured output, prompts with completion, a roots mechanism for filesystem boundaries, sampling so a server can drive a host LLM completion, and elicitation so a server can collect structured user input.

Advanced features include deferred tool loading that the project says cuts token use by 60 to 80 percent, outbound and inbound progress notifications, per-spec cancellation, resource-update subscriptions, and automatic session validation and reconnection. The stdio transport is native-only; web supports SSE and Streamable HTTP.

Website: https://github.com/app-appplayer/mcp_client
