This is a simple demo of a Model Context Protocol Server (MCP) that exposes tools and prompts for analyzing MSBuild binlogs to any MCP server.
The server provides comprehensive tools for analyzing MSBuild binary logs, including:
- Diagnostic Analysis: Extract warnings and errors from binlogs with filtering by severity, project, target, and task
- Search Analysis: Powerful freetext search with MSBuild Structured Log Viewer query syntax support
- Target Analysis: Identify expensive targets, search for specific targets across projects, and analyze target execution times
- Project Analysis: Calculate project build times, find the most expensive projects, and analyze all targets in a project at once
- Evaluation Analysis: List project evaluations, inspect global properties, and identify potential overbuilding issues
- File Access: List and retrieve source files embedded in binary logs
- Performance: Intelligent caching ensures fast queries even on large binlogs
See PACKAGE_README.md for detailed tool documentation.
> claude mcp add binlog -- dnx baronfel.binlog.mcp -y
Added stdio MCP server binlog with command: dnx baronfel.binlog.mcp -y to local config
If you have Claude configured already, you can tell VSCode to use the same settings by adding the following to your settings.json:
"chat.mcp.discovery.enabled": true,otherwise, you can configure the server directly:
{
"servers": {
"binlog-mcp": {
"type": "stdio",
"command": "dnx",
"args": ["-y", "baronfel.binlog.mcp"]
}
}
}To configure this:
- build the repo with
dotnet buildin the solution root directory - configure Claude or VSCode to use the server
- launch your server app and have fun!
To locally debug, use npx to run the Model Context Protocol inspector::
npx @modelcontextprotocol/inspector ./artifacts/bin/binlog.mcp/debug/binlog.mcp.exe{
"mcpServers": {
"msbuild": {
"command": "<your repo root>\\artifacts\\bin\\binlog.mcp\\debug\\binlog.mcp.exe"
}
}
}If you have Claude configured already, you can tell VSCode to use the same settings by adding the following to your settings.json:
"chat.mcp.discovery.enabled": true,otherwise, you can configure the server directly:
{
"servers": {
"binlog-mcp": {
"type": "stdio",
"command": "<repo root>\\artifacts\\bin\\binlog.mcp\\debug\\binlog.mcp.exe",
"args": []
}
}
}