1. Conduid
  2. Science
  3. RoslynQuery
MCP server · Science

RoslynQuery

An MCP server that exposes IDE-like semantic queries over a C# workspace.

34Low

Scored 5 months ago · breakdown

About RoslynQuery

RoslynQuery is an MCP server in the Science category: an MCP server that exposes IDE-like semantic queries over a C# workspace.

Install

From source
git clone https://github.com/apkd/RoslynQuery

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about RoslynQuery

Powered by Claude · Grounded in docs

I know everything about RoslynQuery. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

              `OooOOo.               o               .oOOOo.                             
               o     `o             O               .O     o.                            
               O      O             o               o       O                            
               o     .O             O               O       o                            
               OOooOO'  .oOo. .oOo  o  O   o 'OoOo. o       O  O   o  .oOo. `OoOo. O   o 
               o    o   O   o `Ooo. O  o   O  o   O O    Oo o  o   O  OooO'  o     o   O 
               O     O  o   O     O o  O   o  O   o `o     O'  O   o  O      O     O   o 
               O      o `OoO' `OoO' Oo `OoOO  o   O  `OoooO Oo `OoO'o `OoO'  o     `OoOO 
                                           o                                           o 
                                        OoO'                                        OoO' 

Version MIT License Test status badge GitHub commit activity GitHub last commit

A local MCP server that exposes IDE-like semantic queries over a C# workspace.

Coding agents these days are remarkably powerful, and often the best way to help them is to stay out of their way. RoslynQuery implements a small set of versatile commands that fill in the gaps in the text-oriented workflow without polluting the context.

Installation

Roslyn compiler/workspace libraries are bundled with the app, but real .sln, .slnx, and .csproj loading depends on the machine's installed MSBuild/.NET SDK through Microsoft.Build.Locator.

You can either:

  • Download the server executable from the releases page, or...
  • Build it locally with dotnet publish.

To update an installed release binary in place:

roslynquery -U

Now point your editor at the MCP executable:

For a basic stdio setup, add this to config.toml:

stdio | Windows (Native)
[mcp_servers.roslyn]
command = "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe"
cwd = "C:\\src\\RoslynQuery"
disabled_tools = []
tool_timeout_sec = 1800
enabled = true
stdio | Windows (WSL)
[mcp_servers.roslyn]
command = "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe"
cwd = "/mnt/c/src/RoslynQuery"
disabled_tools = []
tool_timeout_sec = 1800
enabled = true
stdio | Linux
[mcp_servers.roslyn]
command = "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery"
cwd = "/home/you/src/RoslynQuery"
disabled_tools = []
tool_timeout_sec = 1800
enabled = true

Claude Code adds MCP servers with claude mcp add.

stdio | Windows (Native)
claude mcp add --transport stdio roslyn -- C:\src\RoslynQuery\RoslynQuery.Server\publish\win-x64\roslynquery.exe
stdio | Windows (WSL)
claude mcp add --transport stdio roslyn -- /mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe
stdio | Linux
claude mcp add --transport stdio roslyn -- /home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery

Cursor uses mcp.json with a top-level mcpServers object. You can put it in ~/.cursor/mcp.json for a global setup or .cursor/mcp.json for a project-local setup.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe"
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe"
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery"
    }
  }
}

Windsurf stores MCP servers in ~/.codeium/windsurf/mcp_config.json.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": []
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": []
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": []
    }
  }
}

Cline stores MCP settings in cline_mcp_settings.json.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": [],
      "disabled": false
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": [],
      "disabled": false
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": [],
      "disabled": false
    }
  }
}

Continue uses YAML, typically as standalone files under .continue/mcpServers/

Create .continue/mcpServers/roslyn.yaml:

stdio | Windows (Native)
name: RoslynQuery
version: 0.0.1
schema: v1
mcpServers:
  - name: roslyn
    type: stdio
    command: C:\src\RoslynQuery\RoslynQuery.Server\publish\win-x64\roslynquery.exe
    cwd: C:\src\RoslynQuery
stdio | Windows (WSL)
name: RoslynQuery
version: 0.0.1
schema: v1
mcpServers:
  - name: roslyn
    type: stdio
    command: /mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe
    cwd: /mnt/c/src/RoslynQuery
stdio | Linux
name: RoslynQuery
version: 0.0.1
schema: v1
mcpServers:
  - name: roslyn
    type: stdio
    command: /home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery
    cwd: /home/you/src/RoslynQuery

Gemini CLI stores MCP configuration in ~/.gemini/settings.json for user scope or .gemini/settings.json for project scope.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "cwd": "C:\\src\\RoslynQuery"
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "cwd": "/mnt/c/src/RoslynQuery"
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "cwd": "/home/you/src/RoslynQuery"
    }
  }
}

Equivalent CLI commands:

Local stdio
gemini mcp add roslyn /home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery

GitHub Copilot CLI stores MCP servers in ~/.copilot/mcp-config.json.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "type": "local",
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": [],
      "env": {},
      "tools": ["*"]
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "type": "local",
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": [],
      "env": {},
      "tools": ["*"]
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "type": "local",
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": [],
      "env": {},
      "tools": ["*"]
    }
  }
}

Interactive alternative:

/mcp add

VS Code uses mcp.json with a top-level servers object. For workspace scope, put it in .vscode/mcp.json; for user scope, open the user MCP configuration from the Command Palette.

stdio | Windows (Native)
{
  "servers": {
    "roslyn": {
      "type": "stdio",
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": []
    }
  }
}
stdio | Windows (WSL)
{
  "servers": {
    "roslyn": {
      "type": "stdio",
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": []
    }
  }
}
stdio | Linux
{
  "servers": {
    "roslyn": {
      "type": "stdio",
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": []
    }
  }
}

You can get to the config file from Manage MCP Servers → View raw config.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": [],
      "cwd": "C:\\src\\RoslynQuery"
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": [],
      "cwd": "/mnt/c/src/RoslynQuery"
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": [],
      "cwd": "/home/you/src/RoslynQuery"
    }
  }
}

Zed uses context_servers in its settings. For project scope, put this in .zed/settings.json; for user scope, add it to your user settings.

stdio | Windows (Native)
{
  "context_servers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": []
    }
  }
}
stdio | Windows (WSL)
{
  "context_servers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": []
    }
  }
}
stdio | Linux
{
  "context_servers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": []
    }
  }
}

Roo Code stores global MCP configuration in mcp_settings.json. For project-local setup, create .roo/mcp.json.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": [],
      "cwd": "C:\\src\\RoslynQuery",
      "disabled": false
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": [],
      "cwd": "/mnt/c/src/RoslynQuery",
      "disabled": false
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": [],
      "cwd": "/home/you/src/RoslynQuery",
      "disabled": false
    }
  }
}

Junie in JetBrains IDEs and Junie CLI use the same MCP config file format. Use ~/.junie/mcp/mcp.json for user scope or .junie/mcp/mcp.json in the project root for project scope.

stdio | Windows (Native)
{
  "mcpServers": {
    "roslyn": {
      "command": "C:\\src\\RoslynQuery\\RoslynQuery.Server\\publish\\win-x64\\roslynquery.exe",
      "args": []
    }
  }
}
stdio | Windows (WSL)
{
  "mcpServers": {
    "roslyn": {
      "command": "/mnt/c/src/RoslynQuery/RoslynQuery.Server/publish/win-x64/roslynquery.exe",
      "args": []
    }
  }
}
stdio | Linux
{
  "mcpServers": {
    "roslyn": {
      "command": "/home/you/src/RoslynQuery/RoslynQuery.Server/publish/linux-x64/roslynquery",
      "args": []
    }
  }
}

Implemented Tools

Workspace lifecycle

  • load_workspace: Opens the solution/project for analysis. Accepts a directory path, .sln, .slnx, or .csproj. Calling it again with the same path reloads the workspace from disk.

To exclude projects from analsis, create a .roslynqueryignore file next to the solution file. Add one project pattern per line. Patterns support * and ? globs, and negation with !. This can improve the initial load performance.

Assembly-CSharp-Editor.csproj
Assembly-CSharp-Editor-firstpass.csproj
*Editor.csproj
*Tests.csproj
Unity.Services*.csproj
Unity.Searcher*.csproj
Unity.Recorder*.csproj
Unity.ProBuilder*.csproj
Unity.Polybrush*.csproj
Unity.Multiplayer.Center*.csproj
Unity.MemoryProfiler*.csproj
  • status: Lists loaded projects.

  • show_diagnostics: Lists workspace compilation diagnostics on demand, with an optional verbosity parameter.

Search and analysis

  • describe_symbol: Returns a set of useful details for a symbol.

  • list_type_members: Lists members of a type symbol, optionally including inherited members.

  • find_usages: Finds source references to a resolved symbol across the loaded workspace.

  • find_related_symbols: Finds related symbols such as base types, implemented interfaces, derived types, implementations, overrides, overridden members, and containing symbols.

  • view_il: Displays a compact view of a method's compiled IL representation.

Agent guidance

The tool descriptions themselves should be enough to get you started out-of-the-box. If you want to, you can also include something like this in your agent instructions:

When working with C# solutions, use the Roslyn MCP tools to search and inspect symbols.
Start with `load_workspace`.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About RoslynQuery

How do I install RoslynQuery?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is RoslynQuery safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is RoslynQuery still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.