1MCP镍片
一种用于运行的镍片 1MCP代理 通过Home Manager提供systemd用户服务。
特性
- Nix原生:直接在服务器配置中引用Nix包,避免
npx或uvx. - 可复制包装:使用从源代码构建1MCP代理
pnpm以及固定依赖关系。 - HTTP和Stdio支持:完全支持两种传输类型和所有MCP选项。
- 自动配置:生成
mcp.json文件自动从您的Nix配置。 - Home Manager集成:轻松地将代理作为systemd用户服务进行管理。
- 先进过程控制:支持自动重启、环境过滤和超时。
安装
将此薄片添加到您的 flake.nix 输入:
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
onemcp.url = "github:danimalquackers/1mcp-flake";
};使用(家庭管理器)
导入模块并在Home Manager配置中配置服务:
{ inputs, pkgs, ... }: {
imports = [
inputs.onemcp.homeModules.default
];
services.onemcp-agent = {
enable = true;
port = 3000; # Default port
# Declarative MCP Server Configuration
servers = {
# Use Nix packages directly (Stdio transport)
# This handles absolute paths automatically
"nixos-mcp" = {
transport = "stdio";
command = "${pkgs.mcp-nixos}/bin/mcp-nixos";
tags = [ "nixos" "system" ];
};
# Remote server (HTTP transport)
"remote-api" = {
transport = "http";
url = "https://api.example.com/mcp";
headers = {
Authorization = "Bearer ${secrets.apiToken}";
};
tags = [ "remote" ];
};
# Python server with dependencies
"weather" = let
pythonEnv = pkgs.python3.withPackages (ps: with ps; [
mcp
requests
pandas
]);
in {
transport = "stdio";
command = "${pythonEnv}/bin/python3";
args = [ "/path/to/weather_server.py" ];
env = {
API_KEY = "your-secret-key";
};
};
};
# (Optional) Low-level settings for mcp.json
settings = {
# Additional raw configuration
};
};
}发展
要在本地构建包,请执行以下操作:
nix build .#default要运行检查,请执行以下操作:
nix flake check