Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/auto-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,14 @@ jobs:
CURRENT_VERSION=$(cat global.json | grep -o '"version": "[^"]*"' | cut -d'"' -f4)
echo "Current .NET version: $CURRENT_VERSION"

# Get latest .NET 9.0 version
# Get latest .NET 10.0 version
LATEST_VERSION=$(curl -s https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app/index.json | \
grep -o '"9\.[0-9]\+\.[0-9]\+"' | \
grep -o '"10\.[0-9]\+\.[0-9]\+"' | \
sort -V | \
tail -1 | \
tr -d '"')

echo "Latest .NET 9.0 version: $LATEST_VERSION"
echo "Latest .NET 10.0 version: $LATEST_VERSION"

if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then
echo "has-update=true" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -183,4 +183,4 @@ jobs:
labels: |
dependencies
dotnet
automated
automated
10 changes: 5 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

## Project Overview

This is an AvaloniaUI.MCP project - a comprehensive Model Context Protocol (MCP) server that provides extensive AvaloniaUI knowledge and development assistance. The server is built on .NET 9.0 and implements the official Microsoft MCP SDK to deliver tools, resources, and prompts for AvaloniaUI development.
This is an AvaloniaUI.MCP project - a comprehensive Model Context Protocol (MCP) server that provides extensive AvaloniaUI knowledge and development assistance. The server is built on .NET 10.0 and implements the official Microsoft MCP SDK to deliver tools, resources, and prompts for AvaloniaUI development.

## Development Environment

- **Target Framework**: .NET 9.0 (net9.0)
- **Required SDK**: 9.0.300 (specified in global.json)
- **Target Framework**: .NET 10.0 (net10.0)
- **Required SDK**: 10.0.100 (specified in global.json)
- **Language Features**: C# with ImplicitUsings and Nullable reference types enabled
- **Package Management**: Central Package Management is enabled (ManagePackageVersionsCentrally=true)
- **MCP SDK**: ModelContextProtocol 0.3.0-preview.1 for server implementation
Expand Down Expand Up @@ -107,8 +107,8 @@ The server implements STDIO transport and can be used with any MCP-compatible cl

## Important Notes

- The project uses .NET 9.0 with SDK version 9.0.300
- The project uses .NET 10.0 with SDK version 10.0.100
- The solution file uses the newer .slnx format instead of traditional .sln
- The project structure follows modern .NET conventions with Directory.Build.* files for shared configuration
- MCP server provides comprehensive AvaloniaUI development assistance through tools, resources, and prompts
- All knowledge base data is embedded as JSON files for offline access
- All knowledge base data is embedded as JSON files for offline access
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Thank you for your interest in contributing to the AvaloniaUI MCP Server! This d

### Prerequisites

- **.NET 9.0 SDK** (version 9.0.300 or later)
- **.NET 10.0 SDK** (version 10.0.100 or later)
- **Git** for version control
- **IDE** (Visual Studio, VS Code, or JetBrains Rider)

Expand Down Expand Up @@ -281,4 +281,4 @@ By contributing to this project, you agree that your contributions will be licen
- **Code review comments** for implementation questions
- **Documentation** in README.md and CLAUDE.md

Thank you for contributing to make AvaloniaUI development better for everyone! 🎉
Thank you for contributing to make AvaloniaUI development better for everyone! 🎉
14 changes: 7 additions & 7 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project>
<!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build -->
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
<!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build -->
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
46 changes: 23 additions & 23 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!-- Enable central package management, https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management -->
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<ItemGroup>
<!-- MCP SDK -->
<PackageVersion Include="ModelContextProtocol" Version="0.3.0-preview.1" />
<PackageVersion Include="ModelContextProtocol.Core" Version="0.3.0-preview.1" />
Expand All @@ -16,28 +16,28 @@
<PackageVersion Include="Avalonia.Fonts.Inter" Version="11.3.1" />

<!-- JSON handling -->
<PackageVersion Include="System.Text.Json" Version="9.0.6" />
<!-- HTTP client for web requests -->
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.6" />
<!-- Logging -->
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.6" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.6" />
<!-- Telemetry and Observability -->
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.6" />
<PackageVersion Include="OpenTelemetry" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
<!-- Dependency Injection -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.6" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.6" />
<!-- Configuration -->
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.6" />
<PackageVersion Include="System.Text.Json" Version="10.0.0" />

<!-- HTTP client for web requests -->
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.0" />

<!-- Logging -->
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />

<!-- Telemetry and Observability -->
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="10.0.0" />
<PackageVersion Include="OpenTelemetry" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />

<!-- Dependency Injection -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.0" />

<!-- Configuration -->
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.0" />

<!-- XML/XAML processing -->
<PackageVersion Include="System.Xml.XDocument" Version="4.3.0" />
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build stage
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
# Build stage
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src

# Copy project files first for better layer caching
Expand Down Expand Up @@ -29,8 +29,8 @@ RUN dotnet publish src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj \
-p:PublishSingleFile=false \
-p:PublishTrimmed=false

# Runtime stage - Use Ubuntu Chiseled for minimal size (~30MB vs ~180MB)
FROM mcr.microsoft.com/dotnet/runtime:9.0-noble-chiseled AS runtime
# Runtime stage - Use Ubuntu Chiseled for minimal size (~30MB vs ~180MB)
FROM mcr.microsoft.com/dotnet/runtime:10.0-noble-chiseled AS runtime
WORKDIR /app

# Copy published app (chiseled images already have non-root user)
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Build Status](https://github.com/decriptor/AvaloniaUI.MCP/workflows/CI/badge.svg)](https://github.com/decriptor/AvaloniaUI.MCP/actions)
[![Test Coverage](https://img.shields.io/badge/coverage-90%25-brightgreen)](https://github.com/decriptor/AvaloniaUI.MCP)
[![.NET 9.0](https://img.shields.io/badge/.NET-9.0-blue)](https://dotnet.microsoft.com/download/dotnet/9.0)
[![.NET 10.0](https://img.shields.io/badge/.NET-10.0-blue)](https://dotnet.microsoft.com/download/dotnet/10.0)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://decriptor.github.io/AvaloniaUI.MCP)

Expand Down Expand Up @@ -46,7 +46,7 @@ A comprehensive MCP server providing enterprise-grade tools, resources, and guid

### Prerequisites

- **.NET 9.0 SDK** or later
- **.NET 10.0 SDK** or later
- **MCP-compatible client** (Claude Desktop, VS Code with MCP extension)

### Installation
Expand Down Expand Up @@ -140,7 +140,7 @@ Try these commands with your MCP client:

Built with:

- **.NET 9.0** - Latest runtime with performance optimizations
- **.NET 10.0** - Latest runtime with performance optimizations
- **MCP Protocol** - Official Microsoft Model Context Protocol SDK
- **OpenTelemetry** - Enterprise observability and monitoring
- **Reactive Extensions** - Async/reactive programming patterns
Expand Down
4 changes: 2 additions & 2 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ sass:
# Custom variables
custom:
version: "1.0.0"
dotnet_version: "9.0"
dotnet_version: "10.0"
mcp_version: "0.3.0"

# Exclude from processing
Expand Down Expand Up @@ -152,4 +152,4 @@ relative_links:
# Feed configuration
feed:
posts_limit: 10
excerpt_only: true
excerpt_only: true
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Welcome to the AvaloniaUI.MCP server documentation. This comprehensive Model Con

## 🎯 Overview

AvaloniaUI.MCP is a professional-grade MCP server built on .NET 9.0 that provides:
AvaloniaUI.MCP is a professional-grade MCP server built on .NET 10.0 that provides:

- **15+ Development Tools** for project generation, validation, and code assistance
- **Comprehensive Knowledge Base** with 500+ controls, patterns, and examples
Expand All @@ -26,7 +26,7 @@ AvaloniaUI.MCP is a professional-grade MCP server built on .NET 9.0 that provide

### Prerequisites

- .NET 9.0 SDK
- .NET 10.0 SDK
- MCP-compatible client (Claude Desktop, VS Code with MCP extension)

### Installation
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/getting-started/first-project.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ HelloAvaloniaUI/
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
<ApplicationManifest>app.manifest</ApplicationManifest>
Expand Down
2 changes: 1 addition & 1 deletion docs/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Get up and running with AvaloniaUI.MCP in minutes.

Before you begin, ensure you have:

- **.NET 9.0 SDK** or later
- **.NET 10.0 SDK** or later
- **MCP-compatible client** such as:
- Claude Desktop
- VS Code with MCP extension
Expand Down
4 changes: 2 additions & 2 deletions docs/tools/project-generator.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The ProjectGeneratorTool creates production-ready AvaloniaUI projects with vario

This creates a basic project with:
- Standard project structure
- Modern .NET 9.0 targeting
- Modern .NET 10.0 targeting
- Essential AvaloniaUI packages
- Basic window and app setup

Expand Down Expand Up @@ -267,4 +267,4 @@ Works seamlessly with other tools:
- Use **XamlValidationTool** to validate generated XAML
- Apply **SecurityPatternTool** for authentication
- Add **ThemingTool** for custom styling
- Use **DiagnosticTool** for monitoring
- Use **DiagnosticTool** for monitoring
10 changes: 5 additions & 5 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Error: The server failed to start or connection refused
**Check .NET Version**
```bash
dotnet --version
# Should show 9.0.x or later
# Should show 10.0.x or later
```

**Verify Project Build**
Expand Down Expand Up @@ -108,7 +108,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | dotnet run -
**Check Permissions**
```bash
# Ensure executable permissions
chmod +x src/AvaloniaUI.MCP/bin/Debug/net9.0/AvaloniaUI.MCP
chmod +x src/AvaloniaUI.MCP/bin/Debug/net10.0/AvaloniaUI.MCP

# Check file access
ls -la src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj
Expand Down Expand Up @@ -283,7 +283,7 @@ dotnet list package --vulnerable
**Verify SDK Version**
```bash
dotnet --list-sdks
# Should include 9.0.x
# Should include 10.0.x
```

### Test Failures
Expand Down Expand Up @@ -421,7 +421,7 @@ When reporting issues, include:

**Environment:**
- OS: Ubuntu 22.04 / Windows 11 / macOS 13
- .NET Version: 9.0.x
- .NET Version: 10.0.x
- Server Version: 1.0.0

**Issue:**
Expand Down Expand Up @@ -450,4 +450,4 @@ What actually happens

**Additional Context:**
Any other relevant information
```
```
4 changes: 2 additions & 2 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "9.0.300"
"version": "10.0.100"
}
}
}
11 changes: 2 additions & 9 deletions src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,15 @@
<PackageReference Include="ModelContextProtocol" />
<PackageReference Include="ModelContextProtocol.Core" />

<!-- JSON handling -->
<PackageReference Include="System.Text.Json" />

<!-- HTTP client for web requests -->
<PackageReference Include="Microsoft.Extensions.Http" />

<!-- Logging -->
<PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" />

<!-- Telemetry and Observability -->
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
<PackageReference Include="OpenTelemetry" />
<!-- Telemetry and Observability -->
<PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Exporter.Console" />

Expand All @@ -33,9 +29,6 @@
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />

<!-- XML/XAML processing -->
<PackageReference Include="System.Xml.XDocument" />

<!-- Sentry Error Tracking -->
<PackageReference Include="Sentry" />
<PackageReference Include="Sentry.Extensions.Logging" />
Expand Down
5 changes: 4 additions & 1 deletion src/AvaloniaUI.MCP/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ static async Task Main(string[] args)

// Configure logging with structured logging
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Logging.AddConsole(o =>
{
o.LogToStandardErrorThreshold = LogLevel.Trace;
});

// Add Sentry logging with configuration
builder.Logging.AddSentry(o =>
Expand Down
8 changes: 4 additions & 4 deletions src/AvaloniaUI.MCP/Tools/ProjectGeneratorTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,9 @@ static string GenerateProjectFile(string projectName, string platforms, bool inc
{
string targetFramework = platforms switch
{
"mobile" => "net9.0",
"all" => "net9.0",
_ => "net9.0"
"mobile" => "net10.0",
"all" => "net10.0",
_ => "net10.0"
};

var packageReferences = new List<string>
Expand Down Expand Up @@ -429,4 +429,4 @@ public static AppBuilder BuildAvaloniaApp()
.LogToTrace();
}}";
}
}
}