AppModernization.DotNet.McpServer
1.0.0
test only
dotnet add package AppModernization.DotNet.McpServer --version 1.0.0
NuGet\Install-Package AppModernization.DotNet.McpServer -Version 1.0.0
<PackageReference Include="AppModernization.DotNet.McpServer" Version="1.0.0" />
<PackageVersion Include="AppModernization.DotNet.McpServer" Version="1.0.0" />
<PackageReference Include="AppModernization.DotNet.McpServer" />
paket add AppModernization.DotNet.McpServer --version 1.0.0
#r "nuget: AppModernization.DotNet.McpServer, 1.0.0"
#:package AppModernization.DotNet.McpServer@1.0.0
#addin nuget:?package=AppModernization.DotNet.McpServer&version=1.0.0
#tool nuget:?package=AppModernization.DotNet.McpServer&version=1.0.0
MCP Server
Pack to an executable
dotnet publish McpServer/McpServer.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -f net8.0
dotnet publish McpServer/McpServer.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -f net8.0
dotnet publish McpServer/McpServer.csproj -c Release -r linux-arm64 --self-contained true -p:PublishSingleFile=true -f net8.0
dotnet publish McpServer/McpServer.csproj -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true -f net8.0
dotnet publish McpServer/McpServer.csproj -c Release -r osx-arm64 --self-contained true -p:PublishSingleFile=true -f net8.0
Optional: compressed single-file publish (no CLI trimming flag required)
The project file enables trimming only for net8.0. Do NOT pass -p:PublishTrimmed=true on the command line when multi-targeting with net472.
Use these size-optimized commands (similar pattern to your linux-arm64 example) without trimming parameter:
# Windows x64
dotnet publish McpServer/McpServer.csproj -c Release -r win-x64 --self-contained true -f net8.0 -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true -p:InvariantGlobalization=true -p:StripSymbols=true -p:DebugType=None
# Linux x64
dotnet publish McpServer/McpServer.csproj -c Release -r linux-x64 --self-contained true -f net8.0 -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true -p:InvariantGlobalization=true -p:StripSymbols=true -p:DebugType=None
# Linux arm64
dotnet publish McpServer/McpServer.csproj -c Release -r linux-arm64 --self-contained true -f net8.0 -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true -p:InvariantGlobalization=true -p:StripSymbols=true -p:DebugType=None
# macOS x64
dotnet publish McpServer/McpServer.csproj -c Release -r osx-x64 --self-contained true -f net8.0 -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true -p:InvariantGlobalization=true -p:StripSymbols=true -p:DebugType=None
# macOS arm64
dotnet publish McpServer/McpServer.csproj -c Release -r osx-arm64 --self-contained true -f net8.0 -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true -p:InvariantGlobalization=true -p:StripSymbols=true -p:DebugType=None
Notes:
- Trimming is configured in the
.csprojonly fornet8.0; avoid passing the property from CLI to preventNETSDK1124. - Invariant globalization removes culture data; disable if full locale support is needed.
- StripSymbols & DebugType=None omit PDBs; keep them if you need source debugging.
Logging
This application uses serilog to customize log.
By default, the MCP server will log to C:\{USER_PROFILE}\AppData\Local\Microsoft\AppModernization\mcpserver<yyyyMMdd>.log. If you want to change the log file location, you can set the command line argument --log-file to the desired path.
Sample log:
2025-08-2214:26:23.550 +08:00 [INF] Starting server...
2025-08-2214:26:23.990 +08:00 [INF] Server (stream) (McpServer) transport reading messages.
2025-08-2214:26:24.069 +08:00 [INF] Application started. Press Ctrl+C to shut down.
2025-08-2214:26:24.072 +08:00 [INF] Hosting environment: Production
2025-08-2214:26:24.075 +08:00 [INF] Content root path: <path-to-the-mcp-server-executable>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- AppModernizationForDotNet.CommonLib (>= 1.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 8.0.0)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- ModelContextProtocol (>= 0.2.0-preview.1)
-
net8.0
- AppModernizationForDotNet.CommonLib (>= 1.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 8.0.0)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- ModelContextProtocol (>= 0.2.0-preview.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|