About NixSearch.NET
NixSearch.NET is an MCP server in the Search category: .NET library, CLI tool, and MCP server for searching NixOS packages, options, and flakes. Search from code, command line, or AI assistants like Claude.
Install
git clone https://github.com/playday3008/NixSearch.NETThis 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 NixSearch.NET
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
NixSearch.NET
A comprehensive .NET solution for searching and exploring NixOS packages, options, and flakes using the search.nixos.org Elasticsearch backend.
Overview
NixSearch.NET provides multiple ways to interact with the NixOS package and option search ecosystem:
- Library: A robust .NET client library for programmatic access
- CLI Tool: A command-line interface for quick searches
- MCP Server: A Model Context Protocol server for AI assistant integration
Projects
NixSearch.Core
The core library providing search functionality for NixOS packages, options, and flakes.
- NuGet Package:
NixSearch.Core - Target Framework: .NET 10
- Features: Full Elasticsearch query support, strongly-typed models, async/await patterns
NixSearch.CLI
A command-line tool for searching NixOS packages and options from your terminal.
- NuGet Package:
NixSearch.CLI - Tool Command:
nixsearch - Installation:
dotnet tool install -g NixSearch.CLI
NixSearch.MCP
A Model Context Protocol (MCP) server enabling AI assistants to search NixOS packages and options.
- NuGet Package:
NixSearch.MCP - Deployment: AWS Lambda (ARM64)
- Protocol: Model Context Protocol
Quick Start
Using the Library
dotnet add package NixSearch.Core
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using NixSearch.Core.Extensions;
using NixSearch.Core.Models;
using NixSearch.Core.Search;
IConfiguration configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build()
.GetSection("NixSearch");
ServiceCollection services = new ServiceCollection();
services.AddNixSearch(configuration);
ServiceProvider provider = services.BuildServiceProvider();
INixSearchClient client = provider.GetRequiredService<INixSearchClient>();
IReadOnlyList<NixChannel> channels = await client.GetChannelsAsync();
Nest.ISearchResponse<NixPackage> results = await client.Packages()
.WithQuery("git")
.ForChannel(NixChannel.Parse("unstable", channels))
.Page(0, 10)
.ExecuteAsync();
foreach (NixPackage package in results.Documents)
{
Console.WriteLine($"{package.Name}: {package.Version}");
}
Using the CLI
# Install globally
dotnet tool install -g NixSearch.CLI
# Search for packages
nixsearch packages git --size 10
# Search for options
nixsearch options services.nginx --size 5
Using the MCP Server
The MCP server can be deployed to AWS Lambda or run locally. See the MCP documentation for details on integration with AI assistants like Claude.
Building
# Build all projects
dotnet build
# Run tests
dotnet test
# Pack NuGet packages
dotnet pack
Requirements
- .NET 10 SDK or later
- For AWS Lambda deployment: AWS CLI configured
Repository Structure
NixSearch.NET/
├── src/
│ ├── NixSearch.Core/ # Core library
│ ├── NixSearch.CLI/ # CLI tool
│ └── NixSearch.MCP/ # MCP server
├── tests/
│ ├── NixSearch.Core.Tests/
│ ├── NixSearch.CLI.Tests/
│ └── NixSearch.MCP.Tests/
├── .github/
│ └── workflows/ # CI/CD workflows
└── NixSearch.sln # Solution file
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built on top of the search.nixos.org infrastructure
- Uses NEST for Elasticsearch integration
- MCP protocol implementation from ModelContextProtocol
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.