53 lines
1.5 KiB
Nix
53 lines
1.5 KiB
Nix
{ inputs, ... }:
|
|
{
|
|
perSystem =
|
|
{ system, pkgs, ... }:
|
|
let
|
|
mcpServerPkg = pkgs.python3Packages.buildPythonPackage {
|
|
pname = "nixos-mcp-server";
|
|
version = "0.1.0";
|
|
src = inputs.self + "/scripts/mcp-server";
|
|
pyproject = true;
|
|
build-system = with pkgs.python3Packages; [
|
|
setuptools
|
|
wheel
|
|
];
|
|
propagatedBuildInputs = with pkgs.python3Packages; [
|
|
click
|
|
mcp
|
|
];
|
|
doCheck = false;
|
|
};
|
|
mcpPython = pkgs.python3.withPackages (_: [ mcpServerPkg ]);
|
|
nixosMcp = pkgs.writeShellApplication {
|
|
name = "nixos-mcp";
|
|
runtimeInputs = [ mcpPython ];
|
|
text = ''
|
|
exec ${mcpPython}/bin/python -m mcp_server.server
|
|
'';
|
|
};
|
|
mcpTests = pkgs.writeShellApplication {
|
|
name = "mcp-tests";
|
|
runtimeInputs = with pkgs.python3Packages; [
|
|
black
|
|
click
|
|
mypy
|
|
pytest
|
|
ruff
|
|
];
|
|
text = ''
|
|
exec bash ${inputs.self}/scripts/mcp-server/run-tests.sh "$@"
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
packages = (inputs.jawz-scripts.packages.${system} or { }) // {
|
|
emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm;
|
|
vps-linode = inputs.self.nixosConfigurations.vps.config.system.build.images.linode;
|
|
mcp-tests = mcpTests;
|
|
nixos-mcp = nixosMcp;
|
|
nixos-mcp-server = mcpServerPkg;
|
|
};
|
|
};
|
|
}
|