Glider is a Model Context Protocol (MCP) server that uses Microsoft's Roslyn compiler platform to provide semantic understanding of C# codebases to AI assistants. Unlike grep-based search, Glider understands code structure, types, and relationships.
Any MCP-compatible client: Claude Code, Cursor, GitHub Copilot, Codex CLI, Gemini CLI, and more. If your AI tool supports MCP, it can use Glider.
Yes! Glider works with .NET Framework, .NET Core, .NET 5/6/7/8/9/10+ solutions. Roslyn can analyze any C# code that compiles.
LLM alone: Without tooling, LLMs hallucinate symbol names, miss cross-file relationships, and cannot verify that code compiles. They work from stale training data and lack visibility into your actual codebase.
Grep/ripgrep: Text search cannot distinguish between a class named Foo and a variable named Foo. Glider provides semantic understanding — it knows that IService in one file refers to the same interface as in another, and can find implementations, usages, and perform safe renames.
LSP: Language servers provide editor features (autocomplete, go-to-definition) but were not designed for AI workflows. Glider offers stable symbol keys for precise multi-step operations, batch operations to reduce round-trips, impact analysis and call graphs, safe refactoring with preview diffs, semantic queries (e.g., find async methods without CancellationToken), and external source viewing for NuGet packages.
Each version expires 1 month after release to ensure users stay on recent versions with the latest fixes. Simply run dotnet tool update --global glider to get the latest version.
Yes. Run glider --transport http to start a Streamable HTTP MCP server (default: http://localhost:5001/mcp). This is useful for clients like Codex that connect over HTTP.
When you load a solution or project with the workingDirectory parameter, Glider watches that directory for file changes and automatically syncs them into the in-memory workspace. This is faster than reloading the entire solution.
If you prefer manual control, simply use load without workingDirectory and call sync or reload when needed.
Use the view_external_definition tool. It first tries SourceLink to get original source, then falls back to ILSpy decompilation if SourceLink is unavailable.