Release Notes
v0.1.1-preview
Changed
- Rebuilds the MCP integration against
Mythosia.AI8.1.0 and transitivelyMythosia.AI.Abstractions4.1.0, using the updated core execution implementation.
Compatibility
- Existing tool registration, cancellation, failure and connection-lifecycle contracts remain unchanged. No additional source migration is required from 0.1.0-preview. This package remains a preview.
v0.1.0-preview
This prerelease targets Mythosia.AI 8.0.0. Rebuild consumers and review the v8 migration guide for shared contracts and MCP error handling.
Changed
Malformed response bodies no longer remove the matching pending call before successful deserialization; a later valid response, caller cancellation or connection cleanup can still settle it. New operations fail after disposal starts or the reader ends, instead of registering calls behind a stopped reader. Request registration and reader shutdown share the lifecycle gate.
Concurrent asynchronous
DisposeAsynccallers now await the same in-progress cleanup. Disposal closes the transport before waiting for its read loop, allowing reads that require transport closure to finish; subsequent calls after completed cleanup remain no-ops.Connection disposal attempts transport cleanup even when a read-cancellation callback throws. Cancellation and transport cleanup failures are retained together; disposal no longer skips the owned transport on that path.
Registered MCP tools forward the local execution cancellation token to
CallToolAsync; the client can stop waiting cooperatively, while remote cancellation depends on transport/server support.MCP tool failures and transport exceptions propagate to the shared executor as failed results. A direct
McpConnection.CallToolAsyncnow throwsMcpExceptionforisError: trueinstead of returning an error string. Existing direct callers that consumed that string must handle the exception.
Compatibility
- Requires
Mythosia.AI8.0.0 and its updated completion, Run-result and tool contracts. MCP remains a preview package;CallToolAsynccallers that previously consumed tool error text must handleMcpException. The built-in transport is stdio; other transports require anIMcpTransportimplementation.
v0.0.1-preview
MCP Client Integration (Initial Preview)
- McpConnection — MCP server lifecycle management with
IAsyncDisposableInitializeAsync()— protocol handshake (protocol version2024-11-05)RefreshToolsAsync()— re-fetch tool list from serverCallToolAsync()— invoke an MCP tool with arguments
- StdioTransport — launch MCP servers as child processes, communicate via stdin/stdout
- Supports custom working directory and environment variables
- McpToolAdapter — converts MCP tools into
FunctionDefinitioninstances- JSON Schema
inputSchema→FunctionParameters/ParameterPropertymapping - Tool filtering by name
- Name prefixing to avoid collisions across multiple servers
- JSON Schema
- McpServiceExtensions —
AIService.WithMcpServerAsync()extension methods- Stdio overload:
WithMcpServerAsync(command, args, ...) - Custom transport overload:
WithMcpServerAsync(IMcpTransport, ...)
- Stdio overload:
- IMcpTransport — transport abstraction for future SSE / Streamable HTTP support