mcp-servers-nix
A Nix-based configuration framework for Model Control Protocol (MCP) servers with ready-to-use packages.
Links
README
From the repo.
mcp-servers-nix
A Nix-based configuration framework for Model Control Protocol (MCP) servers with ready-to-use packages.
Overview
This repository provides both MCP server packages and a Nix framework for configuring and deploying MCP servers. It offers a modular approach to configuring various MCP servers with a consistent interface.
Features
- Modular Configuration: Define and combine multiple MCP server configurations
- Reproducible Builds: Leverage Nix for reproducible and declarative server setups
- Pre-configured Modules: Ready-to-use configurations for popular MCP server types
- Security-focused: Better handling credentials and sensitive information through
envFileandpasswordCommand, with pinned server versions - Framework Support: Integrates with Flakes, flake-parts, devenv, and Home Manager
Quick Start
Run an MCP server directly:
nix run github:natsukium/mcp-servers-nix#mcp-server-fetch
Generate a configuration file with mkConfig:
# config.nix
let
pkgs = import <nixpkgs> { };
mcp-servers-nix = import (fetchTarball
"https://github.com/natsukium/mcp-servers-nix/archive/main.tar.gz") { inherit pkgs; };
in
mcp-servers-nix.lib.mkConfig pkgs {
programs.filesystem = {
enable = true;
args = [ "/path/to/allowed/directory" ];
};
}
nix-build config.nix && cat result
{
"mcpServers": {
"filesystem": {
"command": "/nix/store/7b4ancp3cns9lkkybd090qzr0hah5qq0-mcp-server-filesystem-2025.12.18/bin/mcp-server-filesystem",
"args": [ "/path/to/allowed/directory" ]
}
}
}
The output format adapts to the flavor option — see Supported Flavors below.
Supported Flavors
| Flavor | Key | Typical File | Client |
|---|---|---|---|
claude | mcpServers | claude_desktop_config.json | Claude Desktop |
claude-code | mcpServers | .mcp.json | Claude Code |
vscode | mcp.servers | settings.json | VS Code |
vscode-workspace | servers | .vscode/mcp.json | VS Code (workspace) |
codex | mcp_servers | .mcp.toml | Codex CLI |
opencode | mcp | opencode.json | OpenCode |
zed | context_servers | (varies) | Zed |
Available Modules
- clickup
- codex
- context7
- deepl
- esa
- everything
- fetch
- filesystem
- freee
- git
- github
- grafana
- home-assistant
- mastra
- memory
- netdata
- nixos
- notion
- playwright
- sequential-thinking
- serena
- slite
- tavily
- terraform
- textlint
- time
Examples
Check the examples directory for complete configuration examples:
claude-desktop.nix: Basic configuration for Claude Desktopvscode.nix: VS Code integration setuplibrechat.nix: Configuration for LibreChat integrationcodex.nix: Codex CLI integration with MCP serversopencode.nix: OpenCode CLI integration with MCP serversvscode-workspace: VS Code workspace configuration exampleflake-parts-module: Flake-parts module integration with multi-flavor supportdevenv: devenv integration usingclaude.code.mcpServershome-manager: Home Manager integration withprograms.mcp.servers
Real World Examples
Check out GitHub search results for examples of how others are using mcp-servers-nix in their projects.
Documentation
- Module Usage Guide — How to configure MCP servers with Nix (classic, npins, flakes, flake-parts)
- Configuration Reference — Security, credential handling, and flake-parts options
- Module Options Reference — Auto-generated list of all module options
- Packages Guide — Using standalone MCP server packages
- Contributing Guide — Adding new packages and modules
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Collected info
- ★ 305 stars
- ⎇ 36 forks
- Language: Nix
- Source updated: 9/22/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.