MCP Explorer - A comprehensive Blazor Server app for exploring Model Context Protocol (MCP) servers
7.3K
All notable changes to this project will be documented in this file.
The format is based on Common Changelog, and this project adheres to Semantic Versioning.
Microsoft.Extensions.AI and Microsoft.Extensions.AI.OpenAI from 10.0.0 to 10.4.1 and OpenAI from 2.7.0 to 2.9.1 to resolve a runtime version mismatch with Microsoft.Extensions.AI.Abstractions 10.4.1 (transitively required by ModelContextProtocol 1.2.0). The mismatch caused UseFunctionInvocation to fail at runtime when invoking MCP tools from the Chat feature.ModelContextProtocol package from 0.4.0-preview.3 to 1.2.0 (stable release)ClientOAuthOptions and HttpClientTransportOptions.OAuth for standards-based authorizationAuthorizationRedirectDelegate opens the authorization URL in the system browser and awaits the callback via a local /oauth/callback endpointSecretProtector pattern (AES-256)UserPreferences alongside existing auth modes<img> thumbnail (rounded 4px) shown in dropdown list items and detail panel headersTool.Icons, Prompt.Icons, Resource.Icons (IList<Icon> with Source, MimeType, Sizes, Theme)McpIconHelper.GetBestIconUrl() selects the best icon with optional theme preferenceToolSelect component accepts new IconUrls parameterSDK breaking changes fixed: McpClientExtensions.CreateSamplingHandler → AIContentExtensions.CreateSamplingHandler
SDK API updates: ListToolsAsync, ListPromptsAsync, ListResourcesAsync, ListResourceTemplatesAsync, CallToolAsync, GetPromptAsync, ReadResourceAsync updated for new RequestOptions? parameter signatures in SDK 1.2.0
Elicitation schema types: ElicitRequestParams.EnumSchema replaced with the new split types (UntitledSingleSelectEnumSchema, TitledSingleSelectEnumSchema, UntitledMultiSelectEnumSchema, TitledMultiSelectEnumSchema, LegacyTitledEnumSchema) in ElicitationInputField.razor and Index.Elicitations.cs
ReadOnlyMemory<byte>: Fixed nullable operator misuse on non-nullable Data properties in ImageContentBlock and AudioContentBlock
JsonElement.StructuredContent: Uses JsonSerializer.Serialize(value.Value, ...) / GetRawText() instead of non-existent ToJsonString() extension in SDK 1.2.0
ReadResourceAsync: Updated call sites to pass Uri instead of string
Test dependencies: Bumped Microsoft.Extensions.Logging.Abstractions and Microsoft.Extensions.Logging to 10.0.5 in test project to resolve package downgrade conflict
Connection Groups: Organise connections into named, colour-coded groups
UserPreferences (ConnectionGroups, ShowConnectionGroups flags)Copy Connection: Duplicate any existing connection under a new name via a dedicated copy dialog; copied connection inherits all settings including group assignment
Starred Connections: Star/favourite individual connections
UserPreferences (FavoriteConnections list)Documentation: Enhanced workflow array iteration documentation with comprehensive guide
Documentation: Added comprehensive documentation pages for new features
Workflow Load Testing: Comprehensive load testing capability for workflows with configurable stress testing
load_tests folder with sanitized file namesWorkflow Chaining Feature: Complete multi-step workflow system for chaining MCP tools together
data[0].field)New Workflows page (🔗 icon) in navigation
New WorkflowService with execution engine supporting nested JSON path extraction
New domain models: WorkflowDefinition, WorkflowStep, ParameterMapping, WorkflowExecution, WorkflowStepResult
New WorkflowExecutionViewer component with tabbed interface
Workflow persistence integrated with UserPreferencesStore
Schema analysis methods for extracting required parameters from tool schemas
WordValidatorExtensions.IsSensitive to reduce false positives on common language patterns:
" and ') to TokenConstants.SpecialCharacters for proper paired delimiter handlingwell-known, up-to-date, real-time)e.g., i.e., etc, etc.)v1, v2.0, v2.0.1)24/7, 9-5)A4, B2B, 2D, 3D, 4K, 5G)5km, 10m, 100kg, 500mb, 12px)application's, user's, dogs', children's)delegates/functions, and/or, true/false)IEnumerable<T>, List<string>, Dictionary<TKey,TValue>)"", '', <>, {}, [], \\, //, ::, ;;, $$, %%) now correctly evaluate the inner contentObjectDisposedException errors when connections are disconnected during workflow execution or tool loading
Workflows.razor.cs and WorkflowService.csappsettings.json (Elicitation:TimeoutSeconds). Default is now 0 (no timeout). Set to a positive number of seconds to enable automatic timeout and rejection of pending requests.email: Email input with validationdate: Date pickerdatetime: DateTime pickeruri: URL input with validationWordValidatorExtensions.IsSensitive now trims leading/trailing punctuation and ignores plain-language tokens made only of letters (even when wrapped in punctuation), pure digits, and all-punctuation tokens.21/06/2005, 16:00, I'm, 3rd), so these everyday patterns are not treated as sensitive by default."titles)." or "so. Topic: microsoft aspire" while preserving detection of mixed-character secrets (e.g., API keys, tokens).AiDetectionStrictness setting (Conservative, Balanced, Aggressive) in SensitiveFieldConfiguration, configurable from the Sensitive Fields page.ShowDetectionDebug flag that enables additional structured logging of why tokens/segments were classified as sensitive (source, shape, rule), without logging raw secret values.DetectWithAiAsync now applies strictness-aware post-filtering so AI segments are only accepted when they contain configured sensitive keywords, heuristic-sensitive tokens, or digits (depending on strictness), with the updated heuristics applied to ignore benign date/time/ordinal/contraction-only segments in conservative modes./prompt slash command and prompt picker:
/prompt in the Chat input now opens a modal listing prompts from currently selected and connected MCP servers./prompt <filter> seeds the modal's search box so you can immediately narrow the prompt list./prompt command in the chat input ready to send.set key of 123abc or secret "abc123"ghp_ABC123xyz, sk_live_x7Y8Z9abcDEF123)SecretProtector used for API keys)MessageContentProtectionService for detecting and protecting sensitive content in user messages
SensitiveFieldConfig.AdditionalSensitiveFields)DetectWithAiAsync method for AI-powered detection (user must opt-in)IsAiDetectionEnabled method checks user preferences before invoking AISensitiveMessageContent Razor component for rendering protected message contentAiSensitiveDataDetection model for AI detection resultsChatMessage model with SensitiveSegments property to track encrypted contentSensitiveFieldConfiguration with UseAiDetection setting (defaults to false)MessageContentProtectionService pattern matching improved to handle unquoted values and "of" keywordContent type
Image
Digest
sha256:d5a8243b4…
Size
98.6 MB
Last updated
6 months ago
docker pull garrardkitchen/mcp-explorer