-
-
Notifications
You must be signed in to change notification settings - Fork 24
Add Model Context Protocol for AI Agent support #333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (3)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the WalkthroughA development container configuration for .NET 10 Preview is introduced, along with package lock files for the main and test projects to ensure consistent dependency management. The Azure pipeline is updated to build and publish a third library, with corresponding comments and steps adjusted for clarity and completeness. Changes
Sequence Diagram(s)sequenceDiagram
participant Developer
participant DevContainer
participant VSCode
participant Docker
Developer->>VSCode: Open project in container
VSCode->>DevContainer: Initialize using .devcontainer/devcontainer.json
DevContainer->>Docker: Start container with .NET 10 Preview image
DevContainer->>VSCode: Install extensions (C#, EditorConfig, Copilot Chat)
DevContainer->>DevContainer: Run post-create command (dotnet --version)
VSCode->>Developer: Ready-to-use .NET 10 Preview environment
sequenceDiagram
participant Pipeline
participant BuildStep1
participant BuildStep2
participant BuildStep3
participant PublishStep
Pipeline->>BuildStep1: Build Library 1
Pipeline->>BuildStep2: Build Library 2
Pipeline->>BuildStep3: Build Library 3 (nanoFramework.WebServer.Mcp)
Pipeline->>PublishStep: Publish all three libraries
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
azure-pipelines.yml (1)
90-93
: Release notes omit the new MCP package
releaseNotesInline
only advertisesnanoFramework.WebServer
andnanoFramework.WebServer.FileSystem
. Add the MCP line or generate notes dynamically to avoid confusing consumers.-:package: [nanoFramework.WebServer](...) -:package: [nanoFramework.WebServer.FileSystem ...](...) +:package: [nanoFramework.WebServer](...) +:package: [nanoFramework.WebServer.FileSystem ...](...) +:package: [nanoFramework.WebServer.Mcp](https://www.nuget.org/packages/nanoFramework.WebServer.Mcp/$(MY_NUGET_VERSION)) v$(MY_NUGET_VERSION)
🧹 Nitpick comments (5)
nanoFramework.WebServer.Mcp/packages.lock.json (1)
4-70
: Lock-file committed – consider enforcing restore consistencyGreat to see deterministic versions being locked. To guarantee CI fails whenever the lock file drifts, enable NuGet’s
restoreLockedMode
( orRestoreLockedMode
MSBuild property).
This prevents accidental dependency upgrades slipping through local restores..devcontainer/devcontainer.json (2)
3-6
: Pin the Docker base image digest to avoid silent preview updates
mcr.microsoft.com/devcontainers/dotnet:dev-10.0-preview-noble
is a moving tag; the underlying image may change and break reproducibility.
Recommend switching to a digest-pinned reference:-"image": "mcr.microsoft.com/devcontainers/dotnet:dev-10.0-preview-noble", +"image": "mcr.microsoft.com/devcontainers/dotnet@sha256:<exact-digest>",
9-13
: Optional: freeze VS Code extension versionsFor long-lived dev-containers it’s safer to pin specific extension versions (e.g.
"ms-dotnettools.csharp@2.0.327"
) to avoid sudden breaking upgrades.
Purely optional, but helps CI / Codespaces reproducibility.azure-pipelines.yml (2)
67-70
: Trailing whitespace flagged by YAML-lintLine 67 contains stray spaces – fails
yamllint
in strict setups.
Quick fix:- - template: azure-pipelines-templates/class-lib-package.yml@templates·· + - template: azure-pipelines-templates/class-lib-package.yml@templates
46-49
: VariablenugetPackageName
is now misleadingSince three distinct packages are produced, keeping a single global
nugetPackageName
pointing at the base package can be error-prone (e.g., GitHub release title).
Consider removing the variable and inlining, or converting to a list.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (29)
.gitignore
is excluded by none and included by noneREADME.md
is excluded by!**/*.md
and included by nonenanoFramework.WebServer.Mcp.nuspec
is excluded by none and included by nonenanoFramework.WebServer.Mcp/DescriptionAttribute.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/HashtableExtension.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerBasicAuthenticationController.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerController.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerKeyAuthenticationController.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerToolAttribute.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpToolRegistry.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/McpToolsJsonHelper.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/Properties/AssemblyInfo.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/ToolMetadata.cs
is excluded by none and included by nonenanoFramework.WebServer.Mcp/nanoFramework.WebServer.Mcp.nfproj
is excluded by none and included by nonenanoFramework.WebServer.Mcp/packages.config
is excluded by none and included by nonenanoFramework.WebServer.sln
is excluded by none and included by nonetests/McpClientTest/McpClientTest.cs
is excluded by none and included by nonetests/McpEndToEndTest/McpEndToEndTest.nfproj
is excluded by none and included by nonetests/McpEndToEndTest/McpToolsClasses.cs
is excluded by none and included by nonetests/McpEndToEndTest/Program.cs
is excluded by none and included by nonetests/McpEndToEndTest/Properties/AssemblyInfo.cs
is excluded by none and included by nonetests/McpEndToEndTest/packages.config
is excluded by none and included by nonetests/McpEndToEndTest/requests.http
is excluded by none and included by nonetests/McpServerTests/McpServerTests.nfproj
is excluded by none and included by nonetests/McpServerTests/McpToolRegistryTests.cs
is excluded by none and included by nonetests/McpServerTests/McpToolsAttributeTests.cs
is excluded by none and included by nonetests/McpServerTests/Properties/AssemblyInfo.cs
is excluded by none and included by nonetests/McpServerTests/nano.runsettings
is excluded by none and included by nonetests/McpServerTests/packages.config
is excluded by none and included by none
📒 Files selected for processing (5)
.devcontainer/devcontainer.json
(1 hunks)azure-pipelines.yml
(2 hunks)nanoFramework.WebServer.Mcp/packages.lock.json
(1 hunks)tests/McpEndToEndTest/packages.lock.json
(1 hunks)tests/McpServerTests/packages.lock.json
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
azure-pipelines.yml
[error] 67-67: trailing spaces
(trailing-spaces)
🔇 Additional comments (2)
tests/McpServerTests/packages.lock.json (1)
53-58
: 👍 Including nanoFramework.TestFramework is spot-onLocking the test framework version alongside runtime libs will prevent mismatched runner issues. No further action required.
tests/McpEndToEndTest/packages.lock.json (1)
29-34
: Wi-Fi package pulled into end-to-end testsJust double-check that test devices truly require
nanoFramework.System.Device.Wifi
; if not, you can trim cold-start time by removing the extra native dependency. Otherwise, looks fine.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LVGTM! 😉
This is a very nice addition. Well done.
Can't wait what the community will do with this.
Something for a future PR (same applies to a couple of other repos) the README is growing beyond a reasonable size. Despite the content being valuable, it makes it hard to find/read, completely "hides" the last sections, and doesn't provide a nice "pitch" which is the intended usage of the README here.
I suggest we split the various topics in a docs folder. Tidy and organized. Then replace the contents in the README with the links to those.
A good example on how something with similar complexity is well structured: https://github.com/microsoft/vstest
Yes, good feedback, let's then do it in another PR to rearrange the docs. Indeed, we can break it down. |
Description
Add Model Context Protocol for AI Agent support
Motivation and Context
How Has This Been Tested?
Screenshots
Types of changes
Checklist:
Summary by CodeRabbit