CrissCross.Mcp.Server 0.1.0

{
  "servers": {
    "CrissCross.MCP.Server": {
      "type": "stdio",
      "command": "dnx",
      "args": ["CrissCross.MCP.Server@0.1.0", "--yes"],
      "env": {
        "DOTNET_SKIP_FIRST_TIME_EXPERIENCE": "1",
        "DOTNET_NOLOGO": "1"
      }
    }
  }
}
                    
This package contains an MCP Server. The server can be used in VS Code by copying the generated JSON to your VS Code workspace's .vscode/mcp.json settings file.
dotnet tool install --global CrissCross.Mcp.Server --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local CrissCross.Mcp.Server --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=CrissCross.Mcp.Server&version=0.1.0
                    
nuke :add-package CrissCross.Mcp.Server --version 0.1.0
                    

CrissCross.MCP.Server

C# stdio MCP server for developers and coding agents working with the ReactiveMarbles CrissCross package family.

The server keeps MCP transport thin and exposes deterministic, source-backed knowledge from the CrissCross repository through tools, resources, and prompts. It does not modify the CrissCross source repository.

The server is implemented in C# on net10.0 using ModelContextProtocol 1.3.0.

Quick Install

Click to install in your preferred environment:

VS Code - Install CrissCross MCP VS Code Insiders - Install CrissCross MCP Visual Studio - Install CrissCross MCP

Note:

  • These install links are prepared for the NuGet package identity CrissCross.Mcp.Server.
  • If the latest package has not been published yet, use the manual source-build configuration below.

Manual MCP configuration using NuGet:

{
  "mcpServers": {
    "crisscross-mcp-server": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "CrissCross.Mcp.Server@0.*",
        "--yes"
      ]
    }
  }
}

Requirements

  • .NET 10 SDK
  • An MCP-capable client such as VS Code, Visual Studio, Claude Desktop, or any MCP 1.x host
  • Node/npm only for optional MCP discovery probing with mcporter.

Build and test

Run from the repository root:

DOTNET="/mnt/c/Program Files/dotnet/dotnet.exe"
"$DOTNET" restore CrissCross.MCP.Server.slnx
"$DOTNET" build CrissCross.MCP.Server.slnx -c Release --no-restore -warnaserror
"$DOTNET" test --project tests/CrissCross.McpServer.Tests/CrissCross.McpServer.Tests.csproj -c Release

Run as an MCP stdio server

Stdout is reserved for MCP JSON-RPC. All diagnostics are routed to stderr by Microsoft.Extensions.Logging.Console with LogToStandardErrorThreshold = Trace.

"/mnt/c/Program Files/dotnet/dotnet.exe" "$(wslpath -w "$PWD/src/CrissCross.McpServer/bin/Release/net10.0/CrissCross.McpServer.dll")"

Convenience wrapper:

scripts/run-crisscross-mcp.sh

MCP discovery probe:

npm_config_cache="$PWD/.npm-cache" npx -y mcporter list --stdio "$PWD/scripts/run-crisscross-mcp.sh" --name crisscross

Manual source configuration

{
  "mcpServers": {
    "crisscross-mcp-server": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "/path/to/CrissCross.MCP.Server/src/CrissCross.McpServer/CrissCross.McpServer.csproj"
      ]
    }
  }
}

Tools

  • crisscross_get_package_matrix(platform?, targetFramework?)
  • crisscross_get_startup_recipe(platform, uiMode?)
  • crisscross_get_navigation_recipe(kind, platform?, hostName?, contract?)
  • crisscross_find_control(platform, nameOrFeature)
  • crisscross_generate_viewmodel(feature, className, namespace, navigationMode?)
  • crisscross_generate_navigation_registry(mappingSpec)
  • crisscross_review_code_snippet(code, platform?, projectKind?)
  • crisscross_generate_project_starter(platform, mode, appName, rootNamespace, screensCsv?, controlsCsv?, targetFramework?, hostName?)
  • crisscross_explain_error(message, platform?)

Resources

The core resource router supports these URI families:

  • crisscross://packages/matrix
  • crisscross://startup/{wpf|avalonia|maui|winforms}
  • crisscross://navigation/core
  • crisscross://navigation/{navigation-only|viewmodel-host|page-navigation|navigation-view}
  • crisscross://controls/{platform}
  • crisscross://controls/{platform}/{controlName}
  • crisscross://state-models
  • crisscross://templates/{platform}/{mode}
  • crisscross://quality/anti-patterns
  • crisscross://quality/testing

Prompt guardrails

Prompt helpers instruct agents to call the CrissCross tools before emitting code, avoid RxApp, prefer RxObject, RaiseAndSetIfChanged, ReactiveCommand.CreateFromTask, ObservableAsPropertyHelper, RxSchedulers, and use replacement semantics for state models.

Codex and agent skill

This repository includes a Codex skill at skills/crisscross/SKILL.md. It gives Codex and compatible agents a compact operating guide for using this MCP server well:

  • search CrissCross package and startup guidance before emitting code
  • choose the correct navigation pattern for each platform
  • use source-backed controls and replacement state-model semantics
  • review generated snippets with crisscross_review_code_snippet
  • treat crisscross_generate_project_starter output as preview-only until the caller writes files

To install the skill for Codex on Windows:

$source = ".\skills\crisscross"
$target = Join-Path $env:USERPROFILE ".codex\skills\crisscross"
New-Item -ItemType Directory -Force $target | Out-Null
Copy-Item -Path "$source\*" -Destination $target -Recurse -Force

Agents that support repository-local skills can use the file directly. Agents that do not support skills can still follow the workflow in SKILL.md.

Template Wizard

crisscross_generate_project_starter is a full preview-only Template Wizard for WPF, Avalonia, MAUI, and WinForms. It supports navigation-only and navigation-and-ui, validates unsafe names/TFMs/controls, and returns TemplateGenerationResult JSON with diagnostics, next steps, source-template provenance, and complete generated-file previews. It does not write files.

Example MCP call:

{
  "tool": "crisscross_generate_project_starter",
  "arguments": {
    "platform": "avalonia",
    "mode": "navigation-and-ui",
    "appName": "SampleApp",
    "rootNamespace": "SampleApp",
    "screensCsv": "Home,Settings",
    "controlsCsv": "CommandButton,SearchBox"
  }
}

Example template resource:

crisscross://templates/wpf/navigation-and-ui

Generated previews include project/CPM files, framework startup files, CrissCross navigation hosts/registrations, one view model and view per screen, optional smoke tests/readme, and UI-mode controls gallery files. UI mode uses CrissCross.WPF.UI, CrissCross.Avalonia.UI, CrissCross.Maui.UI, or a WinForms reactive controls form with an informational diagnostic because WinForms has no separate CrissCross UI package.

See docs/template-wizard.md for file-set details, validation diagnostics, and additional MCP examples.

MCP metadata

Server metadata file:

  • .mcp/server.json

Current working identifiers:

  • MCP server name: io.github.chrispulman/crisscross-mcp-server
  • package id: CrissCross.Mcp.Server
  • tool command: crisscross-mcp-server
  • version: 0.1.0

Before publishing a new package version, update:

  • version.json
  • .mcp/server.json
  • install badge package range if the major version changes
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.0 120 5/22/2026