Skip to content

Latest commit

 

History

History
171 lines (130 loc) · 6.97 KB

File metadata and controls

171 lines (130 loc) · 6.97 KB

mcps.nix

A curated library of MCP (Model Context Protocol) server presets for Claude Code that integrates with native Claude modules in devenv and Home Manager.

Overview

Both devenv and home-manager now have native support for Claude Code configuration:

  • home-manager: programs.claude-code
  • devenv: claude.code

This project provides reusable MCP server configurations (presets) that work with these native modules, allowing you to easily enable and configure popular MCP servers without manual JSON configuration.

Features

  • Pre-configured MCP Servers: Built-in presets for popular MCP servers including Asana, GitHub, Buildkite, Git, Filesystem, LSP integrations, and more

  • Secure Credential Management: Support for reading API tokens from files instead of environment variables

  • Native Integration: Works with upstream Claude modules in both devenv and home-manager

  • Two Home Manager Options: Choose between native integration or custom script-based installation

  • Extensible: Add custom MCP servers alongside presets

Quick Start

Add this flake's overlay to your nixpkgs import.

let
  pkgs = import nixpkgs {
    overlays = [ inputs.mcps.overlays.default ];
  };
in
# ...

Using with devenv

Add to your devenv module configuration:

{
  imports = [ inputs.mcps.devenvModules.claude ];

  claude.code = {
    enable = true;
    mcps = {
      git.enable = true;
      filesystem = {
        enable = true;
        allowedPaths = [ "/path/to/your/project" ];
      };
      github = {
        enable = true;
        tokenFilepath = "/path/to/github-token";
      };
    };
  };
}

Using with Home Manager

This project provides two Home Manager modules:

Option 1: Native Integration (Recommended)

Integrates with home-manager's native Claude Code support. MCP servers are managed through Nix and stored in the Nix store:

{
  imports = [ inputs.mcps.homeManagerModules.claude ];

  programs.claude-code = {
    enable = true;
    mcps = {
      git.enable = true;
      filesystem = {
        enable = true;
        allowedPaths = [ "${config.home.homeDirectory}/Projects" ];
      };
      asana = {
        enable = true;
        tokenFilepath = "/var/run/agenix/asana.token";
      };
    };
  };
}

Option 2: Script-based Installation

Uses the Claude CLI to manage MCP servers in ~/.claude.json. This approach is useful if you:

  • Want your MCP server configurations to persist in ~/.claude.json
  • Need to manually manage or edit MCP servers outside of Nix
  • Prefer keeping custom MCP configurations in your home directory
{
  imports = [ inputs.mcps.homeManagerModules.claude-install ];

  programs.claude-code = {
    enable = true;
    mcps = {
      git.enable = true;
      buildkite = {
        enable = true;
        apiKeyFilepath = "/path/to/buildkite-token";
      };
    };
  };
}

Available MCP Servers

Built-in Presets

Preset Description Source
asana Asana task management integration with API token support roychri/mcp-server-asana
ast-grep Structural code search and transformation using ast-grep patterns ast-grep/ast-grep-mcp
buildkite Buildkite CI/CD pipeline integration and monitoring buildkite/buildkite-mcp-server
fetch Web content fetching with proxy support and custom user agents modelcontextprotocol/servers
filesystem Local filesystem access with configurable path restrictions modelcontextprotocol/servers
git Git repository operations and version control modelcontextprotocol/servers
github GitHub API integration with configurable toolsets (repos, issues, users, pull_requests, code_security) github/github-mcp-server
grafana Grafana monitoring, alerting, and dashboard management with multiple toolsets grafana/mcp-grafana
lsp-golang Language Server Protocol integration for Go development with configurable workspace isaacphi/mcp-language-server
lsp-nix Language Server Protocol integration for Nix development with configurable workspace isaacphi/mcp-language-server
lsp-python Language Server Protocol integration for Python development with configurable workspace isaacphi/mcp-language-server
lsp-rust Language Server Protocol integration for Rust development with configurable workspace isaacphi/mcp-language-server
lsp-typescript Language Server Protocol integration for TypeScript development with configurable workspace isaacphi/mcp-language-server
nixos NixOS and Home Manager configuration search, options lookup, and package discovery utensils/mcp-nixos
obsidian Obsidian vault integration for notes and knowledge management MarkusPfundstein/mcp-obsidian
sequential-thinking Enhanced reasoning and knowledge graph capabilities modelcontextprotocol/servers
time Time and timezone utilities with configurable local timezone modelcontextprotocol/servers

Module Structure

The project now provides focused modules that integrate with native Claude Code support:

  • devenvModules.claude: Adds claude.code.mcps configuration to devenv's native claude.code module
  • homeManagerModules.claude: Adds programs.claude-code.mcps configuration to home-manager's native Claude module
  • homeManagerModules.claude-install: Alternative home-manager module that uses Claude CLI to manage ~/.claude.json

All modules provide access to the same preset MCP server configurations, allowing you to easily enable popular MCP servers with simple boolean flags.

Security Features

  • Credential File Support: All MCP servers support reading credentials from files instead of environment variables
  • Path Restrictions: Filesystem access is restricted to explicitly allowed paths
  • No Credential Exposure: API tokens and keys are never exposed in the Nix store

Contributing

See CONTRIBUTE.md for development setup, testing, and contribution guidelines.

License

This project is licensed under the MIT License.