NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #847 most downloaded on pub.dev
Dart and Flutter SDK for building Model Context Protocol (MCP) servers, clients, hosts, and AI tools.
Last release 1 months ago
03 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 46 of 46 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
50 releases · first in 2025
One column per month.
Thanks to Leo Farias (@leoafarias) for responsibly reporting the vulnerability and contributing the fix.
mcp_dart 2.4.2 prevents unbounded buffering of incoming stdio and IO stream
messages and adds configurable per-message byte limits.
maxIncomingMessageBytes limit. In 2.4.1, a faulty or hostile peer couldmaxIncomingMessageBytes on each receiving^2.3.0 SDK constraintThanks to Leo Farias (@leoafarias) for
responsibly reporting the vulnerability and contributing the fix.
mcp_dart 2.4.1 restores Dart 3.13 package-analysis compatibility and hardens Streamable HTTP diagnostics without changing public APIs or protocol beha
mcp_dart 2.4.1 restores Dart 3.13 package-analysis compatibility and hardens
Streamable HTTP diagnostics without changing public APIs or protocol behavior.
LogHandler failures from StreamableMcpServerAdded an opt-in, deprecated SseClientTransport for compatibility with legacy HTTP+SSE servers. It enforces the first endpoint event, same-origin POST…
mcp_dart 2.4 adds an opt-in legacy HTTP+SSE client for connecting to older
servers while keeping Streamable HTTP as the preferred remote transport.
SseClientTransport for compatibility withendpoint event, same-originReturn an empty clientId only to opt into deprecated Dynamic Client Registration.
mcp_dart 2.3 adds the final MCP 2026-07-28 surface while
preserving the public 2.2.2 API. See the
2.2 to 2.3 migration guide
for upgrade steps and the
MCP 2026-07-28 transition guide
for protocol details.
json_schema and quiver dependencies.server/discover, stateless metadata,subscriptions/listen, multi-round tool/resource/prompt callbacks, the2026-07-28.RegisteredStatelessTool handle without widening the existing 2.2.2McpProtocol.stable now prefers MCP 2026-07-28 and falls back to legacyMcpProtocol.legacy retains exact initialization-only behavior.latestProtocolVersion andsupportedProtocolVersions; use defaultProtocolVersion andallSupportedProtocolVersions for the dual-era profile.2026-07-28.CallToolResult(isError: true) under2025-11-25 and 2026-07-28; invalid registered schemas and outputsubscriptions/listen now enforce their independent capabilities,mcp_dart inspect-server now accepts protocol-appropriate array and primitiveserver/discover compatibility probe causes the server process to exit.mcp_dart 2.2.2, minimum-Dart2026-07-28 client and server suites pass with noDiscoverResult.serverInfo is now nullable because MCP 2026-07-28 permitsnull before reading identity fields. MCP2025-11-25 behavior is unchanged.mcp_dart 2.3 requires Dart 3.4 or newer; the CLI requires Dart 3.12.http constraint is now ^1.5.0 because cancellation uses APIs^1.4.0 constraints remain compatible, but pinssubscriptions/listen requests. SetStdioServerParameters.restartOnUnexpectedExit to false to retain theProtocolOptions.taskStore and taskMessageQueue remain available for MCPclientId as pre-registered clientclientId only to opt into deprecated DynamicoauthUriValidator; client redirect URIs must use HTTPS or loopbackfinishAuth(String) override remains available but isfinishAuthRedirect to validate thestate and optional issuer.tools/call now completes at the JSON-RPC level and returnsMcpError(ErrorCode.invalidParams).CallToolResult.isError instead; MCP 2025-06-18 and earlier peersinvalidParams.2025-11-25 and 2026-07-28, an invalid registered input or outputinternalError.invalidParams.structuredContent whenoutputSchema requires it. MCP 2025-11-25 and earlier2026-07-28 accepts any JSON2025-11-25, task-mode negotiation now runs before input-schemamethodNotFound; earlier protocol versions retain invalidParams.CallToolResult.extra entries named content, isError, _meta, orstructuredContent no longer replace protocol-owned fields. Use theirfix(deps): override vulnerable Hono interop dependency by @leehack in #328
Full Changelog: mcp_dart_cli-v0.2.0-dev.2...v2.3.0-dev.3
Update conformance alpha5 and TS RC interop by @leehack in #289
Full Changelog: mcp_dart_cli-v0.2.0-dev.1...v2.3.0-dev.2
This preview makes MCP 2026-07-28 the preferred protocol while preserving
MCP 2025-11-25 and earlier initialization compatibility.
McpProtocol.stable the default dual-era profile: prefer stateless
server/discover, then fall back to legacy initialization. Use
McpProtocol.require2026 to reject legacy peers.latestProtocolVersion as a deprecated stable-version alias.input_required, deprecated
request-scoped logging compatibility, subscriptions, cache metadata,
arbitrary structured tool output, routing headers, and the Tasks extension.McpProtocol.preview2026; McpProtocol.stable now provides its
dual-era fallback behavior. Use McpProtocol.legacy for the former
initialization-only default or McpProtocol.require2026 for strict MCP
2026-07-28. The minimum Dart SDK is now 3.5.draftProtocolVersion2026_07_28 to previewProtocolVersion,
latestDraftProtocolVersion to defaultProtocolVersion, and
stableProtocolVersion2025_11_25 to latestInitializationProtocolVersion
(or stableProtocolVersion). Replace supportedProtocolVersionsWithDraft
with supportedProtocolVersions; use legacyProtocolVersions for the former
legacy-only list.StartSseOptions, and
StreamableHttpClientTransport now implements the new
RequestCancellationAwareTransport interface. Classes that directly
implements either concrete type must add the new members; normal callers,
subclasses, and custom Transport implementations remain source-compatible.CreateMessageRequest now rejects invalid sampling tool-use/result roles,
ordering, and ID matches during parsing and serialization.JsonSchema.fromJson() may return JsonAny; validation remains synchronous
and does not perform network access.notifications/cancelled.StreamableHttpClientTransport now rejects duplicate active stateless request
IDs, ends POST SSE streams at their terminal response, ignores trailing events
on that response, and interrupts pending OAuth/HTTP work when closed.allowedOrigins, except for
DNS-protected loopback development; examples use safe loopback defaults.Use current Intel macOS runner for CLI binary by @leehack in #273
Full Changelog: mcp_dart_cli-v0.2.0-dev.0...v2.3.0-dev.1
This dev preview refreshes MCP 2026-07-28 draft/RC support while keeping MCP
2025-11-25 as the default protocol profile.
HeaderMismatch is now -32020,
MissingRequiredClientCapability is now -32021, and
UnsupportedProtocolVersion is now -32022.server/discover as an MCP 2026-07-28 cacheable result so stateless responses
include default ttlMs and cacheScope hints.DRAFT-2026-v1 draft alias now that official conformance
targets the 2026-07-28 wire version.@modelcontextprotocol/conformance@0.2.0-alpha.4, with full MCP 2026-07-28 RC
server scenario coverage and alpha.4's spec-filtered MCP 2026-07-28 client
scenario list in CI.server/discover cache metadata, tools/list, tools/call,
x-mcp-header mirroring, progress notifications, raw HTTP header validation,
unsupported-version and removed core RPC rejection, subscriptions/listen,
and Streamable HTTP SSE cancellation.server/discover and
stateless resultType responses.This is a dev preview for MCP 2026-07-28 draft/RC support. MCP 2025-11-25 remains the default protocol profile; draft/RC behavior is enabled explicitl
This is a dev preview for MCP 2026-07-28 draft/RC support. MCP
2025-11-25 remains the default protocol profile; draft/RC behavior is enabled
explicitly and may still change before the official spec release.
McpProtocol.preview2026 and McpProtocol.require2026 profiles for
clients and servers, with stable initialize behavior preserved by default.server/discover negotiation, per-request stateless metadata,
protocol/client/capability validation, and version-aware fallback behavior.Mcp-Session-Id, Mcp-Name task routing, Mcp-Param-* argument headers,
CORS preflights, SSE cancellation, and request-scoped logging.subscriptions/listen, MCP Tasks extension
handlers, MRTR input_required results, cacheable list/read results, and
input_required prompt/resource responses.JsonValue, structuredContentJson,
CallToolResult.fromStructuredArray(), and server outputJsonSchema.2025-11-25 responses.Tool.execution metadata, and legacy resource error
codes outside the MCP 2026-07-28 stateless profile._meta key validation, and mixed request/response rejection.not.2025-11-25 and MCP 2026-07-28 draft/RC client/server
conformance gates to core CI.tool/spec_example_audit.dart for parsing upstream machine-readable
spec examples through checked-in SDK types during RC/final release audits.dart pub publish --dry-run, and the draft/RC transition
guide includes a dev release checklist.dev/2026-07-28-rc so
pub.dev users see the draft/RC docs that match the dev package.Fix pub.dev WASM platform score by @leehack in #292
Accepted and preserved JSON Schema 2020-12 boolean subschemas in nested schema positions such as object properties, array items, composition keywords,
not.…those fields still parse into deprecated Dart accessors for one compatibility window.
StreamableMcpServer.dart run targets.Result._meta field across typed result serializers,
including initialization, roots, resources, prompts, completion, elicitation,
tools, tasks, sampling, and empty results.{"completions": {}} and moving the old completion list-changed helper to an
explicit experimental notification namespace.action, while completion still uses
notifications/elicitation/complete. ElicitResult.fromJson() now rejects
actions outside accept, decline, and cancel.JsonEnum output to JSON Schema 2020-12-native oneOf or
array-item anyOf const/title entries while continuing to parse legacy
enumNames payloads.StreamableHttpClientTransport through optional
OAuthAuthorizationCodeProvider support: bearer challenge parsing,
protected-resource metadata discovery, authorization-server/OIDC metadata
discovery, PKCE S256 authorization URLs with resource, and token exchange
with code_verifier and resource.OAuthAuthorizationCodeTokens for token response metadata returned by
the authorization-code exchange path without changing the base OAuthTokens
API shape used by existing providers and subclasses.StreamableMcpAuthenticationResult for high-level Streamable HTTP
servers that need to distinguish allow, unauthorized, and OAuth
insufficient_scope 403 responses while preserving the existing bool
authenticator path.sampling.tools requests fail before handler code
runs.StreamableMcpServer OAuth protected-resource support that
serves OAuth Protected Resource Metadata and returns spec-shaped
WWW-Authenticate: Bearer ... resource_metadata=... challenges for failed
authentication, including an explicit public metadata URL for reverse-proxy
deployments, while preserving legacy generic-auth 403 behavior when the
option is not configured.completion/complete wire support for
context.arguments and PromptReference.title, including context-aware
server completion callbacks for prompt and resource-template completions.tasks.requests.*:
task-based tool calls require tasks.requests.tools.call, server-initiated
task sampling requires tasks.requests.sampling.createMessage, and
server-initiated task elicitation requires tasks.requests.elicitation.create.initialize and before
notifications/initialized, and clients now reject server-initiated operation
requests before sending notifications/initialized.elicitation/create parameters as the MCP 2025-11-25 form/URL
union, including URL-only client handler registration and unsupported
elicitation-mode rejection.Resource.size,
Root._meta, stable icons, resource annotations, and tool annotations.
Legacy singular icon fields and non-stable annotation helper fields remain
parse-compatible but are no longer emitted on stable schema objects.Tool.inputSchema and Tool.outputSchema root-object shapes
at parse and serialization boundaries while preserving the existing
JsonSchema-typed public fields for source compatibility.id, error responses may omit id, and malformed
response IDs fail during parsing.elicitation and tasks.listChanged; legacy payloads still parse for
compatibility.requestedSchema values with primitive property schemas, restricted
ElicitResult.content to spec-supported primitive values, and validated
URL-required error data._meta only where MCP permits result or notification metadata:
bare nested Task values in task lists and task creation results no longer
serialize _meta.code_challenge_methods_supported or does not advertise
S256.EventStore begin with an event id and empty data frame,
matching the MCP Last-Event-ID reconnection guidance.icon fields,
ResourceAnnotations.title, ToolAnnotations.priority, or
ToolAnnotations.audience; those fields still parse into deprecated Dart
accessors for one compatibility window.resources, resourceTemplates,
contents, prompts, tools, roots, and tasks now fail during
parsing. Empty arrays remain valid when the required key is present.Tool.inputSchema, Tool.outputSchema, and form elicitation
requestedSchema values must serialize as root JSON objects. Primitive
root schemas are rejected at the MCP wire boundary.id: null are rejected. Error responses
may omit id; legacy id: null error payloads still parse, but serialize
by omitting the field.S256
support; clients refuse servers that omit
code_challenge_methods_supported.ServerCapabilitiesCompletions(listChanged: true) remains source-compatible
and still parses legacy payloads, but serializes as the stable MCP
completions: {} capability.sendCompletionListChanged() is deprecated and emits
notifications/experimental/completions/list_changed instead of the
non-spec stable method.ElicitResult.url and ElicitResult.elicitationId fields remain
parse-compatible for legacy payloads, but toJson() omits them.ElicitResult.action values now fail during parsing.invalidRequest errors instead of reaching request handlers.elicitation/create parameter combinations now fail during
parsing or serialization.tasks/cancel responses now serialize the cancelled Task required by MCP
2025-11-25 instead of an empty result object.onCancelTaskWithResult, CancelTaskCallback,
CancelTaskResultHandler.cancelTaskWithResult, and
TaskClient.cancelTaskWithResult return the cancelled Task.onCancelTask, ToolTaskHandler.cancelTask, and TaskClient.cancelTask
are deprecated shims. The server-side legacy shims still return a full
cancelled Task on the wire by resolving the post-cancel task through
onGetTask/getTask.TaskClient.cancelTaskWithResult expects a task-shaped result and will
reject older non-compliant servers that still return {}. Deprecated
TaskClient.cancelTask remains available when callers intentionally need
the legacy empty-result behavior.Task.fromJson() requires MCP-required task fields (createdAt,
lastUpdatedAt, and ttl), and the Task constructor now requires
ttl, createdAt, and lastUpdatedAt so serialization is non-throwing
for valid task instances.TaskStatusNotification.fromJson() likewise requires the full MCP
NotificationParams & Task shape (taskId, status, ttl, createdAt,
and lastUpdatedAt), and task status notifications always serialize the
required ttl key even when it is null.Task.toJson() continues to serialize required ttl even when it is
null, and now omits optional pollInterval when it is not set.completed, failed, cancelled) as
immutable, preventing later status or result overwrites.sessionIdGenerator output must now be non-empty visible ASCII
without spaces or control characters; invalid generated IDs fail
initialization before an MCP-Session-Id header is written.EventStore implementations must return non-empty visible-ASCII SSE
event IDs without spaces or control characters, scope Last-Event-ID
replay to the owning live transport/session stream, and reject unknown or
foreign event IDs instead of replaying unrelated stream history.Transport.send(... relatedRequestId: ...) keeps the existing int?
signature for third-party custom transports and middleware.RequestIdAwareTransport.sendWithRequestId(... relatedRequestId: ...) to
receive the full MCP/JSON-RPC request ID shape (String or int).RequestIdAwareTransport should forward
through sendPreservingRequestId(...) so string IDs are not dropped.Last-Event-ID, allowing multiple concurrent GET SSE streams per session
without replaying events from unrelated streams.404 Session not found for stale, unknown, or terminated Streamable
HTTP session IDs across high-level and bare transports, retried client
initialization once without a stale preconfigured session ID, refreshed stale
sessions with single-flight reinitialization before retrying post-initialize
requests, and stopped old SSE reconnect loops after a session reset.RequestOptions.resetTimeoutOnProgress and maxTotalTimeout together
so progress notifications can reset inactivity timers without bypassing the
absolute total timeout cap.progressToken, while preserving generated integer tokens for the
default RequestOptions.onprogress path.const, enum-only schemas,
titled enum const entries, and simple type array unions such as nullable
schemas.mcp_dart conformance with built-in JSON-RPC and protocol-version fixture checks, deterministic JSON-RPC fuzz cases, exact-case filtering, and JSON output for CI/scripts.mcp_dart conformance --suite spec gate for MCP 2025-11-25
lifecycle, capability, elicitation, task-metadata, and progress-token
raw-wire checks.mcp_dart conformance --suite all --json so JSON-RPC and
protocol-version fixtures are checked with the spec suite.dart run targets.`JsonEnum` wire format is now standard JSON Schema:
JsonEnum wire format is now standard JSON Schema:
JsonEnum.toJson() emits standard JSON Schema enum forms instead of the legacy
type: 'enum' / values shape.values is still accepted when parsing.JsonEnum tool/input schema serialization to use standard JSON Schema enum output,
improving compatibility with downstream consumers that reject the legacy
type: 'enum' / values shape.IOSink write/flush errors.Streamable HTTP defaults are stricter:
MCP-Protocol-Version request headers are rejected by default.strictProtocolVersionHeaderValidation: falserejectBatchJsonRpcPayloads: falseenableDnsRebindingProtection: falseSamplingMessage.content and CreateMessageResult.content may be either a single block or a list.contentBlocks.StopReason now includes toolUse; exhaustive switch statements may need an additional branch.setMcpLogHandler, resetMcpLogHandler, and silenceMcpLogs.Logger.resetHandler() to restore the default internal log output.CreateMessageRequest.toolChoice supports legacy map and typed ToolChoiceSamplingMessage.content and CreateMessageResult.content accept single or array content forms with normalized contentBlocks accessResourceLink.annotations supports map form with typed parsedAnnotations accessorstrictProtocolVersionHeaderValidationrejectBatchJsonRpcPayloadsio.modelcontextprotocol/related-task and legacy relatedTask keys.package:logging integration examples using import aliases.debug/info/warn/error).doc/migration_2025_11_25_compat.md with compatibility-mode and API migration guidance.Accept header parsing to handle repeated/multi-value headers without throwing HttpException, improving compatibility with clients that send duplicated or split Accept values.sampling.tools capability and tool-choice propagation).JsonObject.additionalProperties and JsonSchema.object(additionalProperties: ...) now use Object? instead of bool?.
JsonObject.additionalProperties and JsonSchema.object(additionalProperties: ...) now use Object? instead of bool?.additionalProperties may now be either bool or JsonSchema, matching the JSON Schema specification.McpUiToolMeta, McpUiResourceMeta, McpUiCsp, McpUiPermissions) with extension capability helpers for io.modelcontextprotocol/ui.registerAppTool, registerAppResource, getUiCapability) and metadata normalization for _meta.ui.resourceUri and legacy _meta['ui/resourceUri'].weather_get_current), include explicit resource_link tool output, and demonstrate host-rendered UI updates from tool input/result notifications.JsonObject.fromJson to accept untyped map values for additionalProperties (for example {} decoded as Map<dynamic, dynamic>), so schema objects are not silently dropped.Added ResourceLink (resource_link) content type support.
ResourceLink (resource_link) content type support.McpIcon, IconTheme, and optional icons fields across tools/prompts/resources/templates.ResourceAnnotations.lastModified (ISO 8601).extensions capability support for client/server initialization capability negotiation.{?status,assignee}) so resources/read resolves templated URIs correctly.meta (including nested _meta values) is preserved in tools/list responses.- Fix pana analysis issues
Updated examples to remove deprecated API usage.
Features:
RequestHandlerExtra.sendProgress() helper for servers to report progress.RequestOptions.onprogress callback for clients to receive progress updates.Progress and ProgressNotification types to include optional message field (compliant with the MCP 2025-11-25 specification).JsonRpcMessage.fromJson now supports custom/unknown methods instead of throwing.JsonRpcRequest metadata extraction to correctly handle nested _meta in params.ToolAnnotations to make title optional, preventing deserialization errors when the field is missing.Fixes:
Examples:
example/jaspr-client) built with Jaspr, featuring:
simple_task_interactive_server.dart.Documentation:
doc/) to match current API (v1.1.2+).AGENTS.md with comprehensive developer guidelines.Testing:
test/types_test.dart and test/types_edge_cases_test.dart to correct expectations for unknown methods. JsonRpcMessage.fromJson returns a generic JsonRpcRequest (or JsonRpcNotification) for unknown methods instead of throwing, aligning tests with existing library behavior.> All breaking changes below are auto-fixable. Run dart fix --apply to automatically update your code.
[!TIP] All breaking changes below are auto-fixable. Run
dart fix --applyto automatically update your code.
Client is now McpClient to avoid conflicts with other libraries (like http).ClientOptions is now McpClientOptions.ServerOptions is now McpServerOptions.ReadResourceRequestParams -> ReadResourceRequestGetPromptRequestParams -> GetPromptRequestElicitRequestParams -> ElicitRequestCreateMessageRequestParams -> CreateMessageRequestLoggingMessageNotificationParams -> LoggingMessageNotificationCancelledNotificationParams -> CancelledNotificationProgressNotificationParams -> ProgressNotificationTaskCreationParams -> TaskCreationFixed StdioClientTransport stderr handling: Corrected process mode to always use ProcessStartMode.normal to ensure stdin/stdout piping works correctly
ProcessStartMode.normal to ensure stdin/stdout piping works correctly. Fixed inverted stderr mode logic where stderrMode: normal now properly exposes stderr via getter (without internal listening), and stderrMode: inheritStdio now manually pipes stderr to parent process.Structured Content Support: Added explicit structuredContent field to CallToolResult with automatic backward compatibility support.
structuredContent field to CallToolResult with automatic backward compatibility support.
CallToolResult.fromStructuredContent now automatically populates both structuredContent (for modern clients) and content (as JSON string for legacy clients).structuredContent payload against tool schema.McpServer.tool, resource, and prompt are deprecated. Use registerTool, registerResource, and registerPrompt instead.
2025-11-25.ServerCapabilities and ClientCapabilities fields (tasks, sampling, elicitation, etc.) are now strictly typed objects instead of Map<String, dynamic> or bool.
ServerCapabilities to use ServerCapabilitiesTasks, ServerCapabilitiesTools, etc.ClientCapabilities to use ClientCapabilitiesTasks, ClientCapabilitiesElicitation, ClientCapabilitiesSampling, etc.ServerCapabilities(tasks: ServerCapabilitiesTasks(listChanged: true))).lib/src/server/mcp.dart has been removed. Use lib/src/server/mcp_server.dart (exported via lib/src/server/module.dart) instead.Transport.send now accepts an optional named parameter relatedRequestId. Custom transports must update their method signature.Client.callTool now strictly validates tool outputs against their defined JSON schema (if present). Mismatches will throw an McpError(ErrorCode.invalidParams).McpServer.tool, resource, and prompt are deprecated. Use registerTool, registerResource, and registerPrompt instead.McpServer.registerTool uses a new callback signature: FutureOr<CallToolResult> Function(Map<String, dynamic> args, RequestHandlerExtra extra).McpServer.tool retains the old named-parameter signature for backward compatibility.ToolInputSchema (aka JsonObject) now requires properties to be defined using JsonSchema objects (e.g., JsonSchema.string()) instead of raw Maps.ListToolsRequestParams has been replaced by ListToolsRequest (update any code passing params: to Client.listTools or constructing JsonRpcListToolsRequest).CallToolResult no longer uses a dedicated structuredContent field in its API; structured results are represented as additional top-level fields (CallToolResult.extra). CallToolResult.fromStructuredContent now takes a single Map<String, dynamic> argument.RequestHandlerExtra.sendNotification and RequestHandlerExtra.sendRequest have updated signatures (added task-related metadata/options). Update any server callbacks that call these helpers directly.lib/src/server/tasks/.TaskStore abstract interface with InMemoryTaskStore as the default implementation.TaskResultHandler and TaskSession.TaskMessageQueue for handling task messages.McpServer high-level support for tasks via tasks(...) method.notifyTaskStatus into McpServer.McpServer support for sampling/createMessage.onError handler setter/getter on McpServer.StreamableMcpServer class for simplified Streamable HTTP server creation (handles serverFactory, event store, and connection management).onTaskStatus callback to Client.Task serialization.McpServer.Fix Web support for StreamableHTTP client
Fix Documentation links in README.md
Update the supported protocol version to MCP 2025-06-18.
McpServer.elicitUserInput() (server) | Client.onElicitRequest (client handler)message, requestedSchema), ElicitResult (action, content), ClientCapabilitiesElicitationelicitation/create method (Inspector-compatible).accepted, .declined, .cancelled getters on ElicitResultAdd the Completions capability from the MCP 2025-06-18 specification.
Fix issue with StreamableHTTP server not setting correct content-type for SSE
Replace print statements with lightweight logging implementation
Remove trailing CR before processing the lines
Fix issue with CallToolResult not including metadata
Deprecate inputSchemaProperties and outputSchemaProperties in server.tool()
Support Web Client for StreamableHTTP
Preserve required fields in ToolInputSchema
Add support for OutputScheme ( )
Add support for the MCP 2025-03-26 specification.
Fix SSE behavior on StreamableHTTP
Remove additionalProperties from all models
Add IOStreamTransport to connect a client and server via dart streams in a single application
Add support for StreamableHTTP client
- Improve pub.dev points
- Lower min dart sdk to 3.0.0
Fix Sampling result parsing error
Add Anthropic MCP Client Example
Add SSE Server Manager for easier SSE server implementation
Add resource and prompts example to stdio server and client
Full refactor of the codebase to match it with the Typescript SDK implementation.
Fixed inspect-server support for MCP 2026-07-28 elicitation, roots, and resource subscriptions.
Fixed inspect-server support for MCP 2026-07-28 elicitation, roots, and
resource subscriptions.
Development now targets Dart 3.12; the SDK and SDK-only generated projects
support Dart 3.4.
Inspection recognizes stateless clients that skip optional discovery, accepts
omitted client/server identity, and emits server identity in result _meta.
The built-in conformance gate now verifies that a legacy task store can
coexist with the independent MCP Tasks extension without being treated as
its persistence adapter.
Standalone release binaries now compile against the declared minimum hosted
SDK instead of the monorepo dependency override and attach only to an
authorized, pre-existing GitHub release with matching prerelease status.
Add examples visible in pub.dev
- Add SSE support
- Expose more types
- Initial version.
Your coding agent can read these notes before it upgrades. Set up the MCP server →