Base class to extend when implementing an MCP server.
Actual functionality beyond server initialization is done by mixing in additional support mixins such as ToolsSupport, ResourcesSupport etc.
Constructors
-
MCPServer.fromStreamChannel(StreamChannel<
String> channel, {required Implementation implementation, String? instructions, Sink<String> ? protocolLogSink})
Properties
- clientCapabilities ↔ ClientCapabilities
-
The capabilities of the client.
getter/setter pair
- clientInfo ↔ Implementation
-
The client implementation information provided during initialization.
getter/setter pair
-
done
→ Future<
void> -
Completes after
shutdown
is called.no setterinherited - hashCode → int
-
The hash code for this object.
no setterinherited
- implementation → Implementation
-
The name, current version, and other info to give to the client.
final
-
initialized
→ Future<
void> -
Completes when this server has finished initialization and gotten the
final ack from the client.
no setter
- instructions → String?
-
Instructions for how to use this server, which are given to the client.
final
- isActive → bool
-
Whether the connection with the peer is active.
no setterinherited
- name → String
-
The name of the associated server.
no setter
- protocolVersion ↔ ProtocolVersion
-
The negotiated protocol version.
getter/setter pair
- ready → bool
-
Whether this server is still active and has completed initialization.
no setter
-
rootsListChanged
→ Stream<
RootsListChangedNotification> ? -
Emits an event any time the client notifies us of a change to the list of
roots it supports.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createMessage(
CreateMessageRequest request) → Future< CreateMessageResult> - A request to prompt the LLM owned by the client with a message.
-
handleInitialized(
InitializedNotification notification) → void - Called by the client after accepting our InitializeResult.
-
initialize(
InitializeRequest request) → FutureOr< InitializeResult> - Mixins should register their methods in this method, as well as editing the InitializeResult.capabilities as needed.
-
listRoots(
ListRootsRequest request) → Future< ListRootsResult> - Lists all the root URIs from the client.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyProgress(
ProgressNotification notification) → void -
Notifies the peer of progress towards completing some request.
inherited
-
onProgress(
Request request) → Stream< ProgressNotification> -
A stream of progress notifications for a given
request
.inherited -
ping(
{Duration timeout = const Duration(seconds: 1)}) → Future< bool> -
Pings the peer, and returns whether or not it responded within
timeout
.inherited -
registerNotificationHandler<
T extends Notification?> (String name, void impl(T)) → void -
Registers a notification handler named
name
on this server.inherited -
registerRequestHandler<
T extends Request?, R extends Result?> (String name, FutureOr< R> impl(T)) → void -
Registers a handler for the method
name
on this server.inherited -
sendNotification(
String method, [Notification? notification]) → void -
Sends a notification to the peer.
inherited
-
sendRequest<
T extends Result?> (String methodName, [Request? request]) → Future< T> -
Sends
request
to the peer, and handles coercing the response to the typeT
.inherited -
shutdown(
) → Future< void> - Handles cleanup of all streams and other resources on shutdown.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited