initial commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
{...}: {
|
||||
# opencode MCP servers, installed declaratively instead of via the dotfiles
|
||||
# `install` script (which downloads prebuilt binaries into ~/.local/bin).
|
||||
# - gitea-mcp : packaged in nixpkgs as gitea-mcp-server (binary: gitea-mcp)
|
||||
# - engram : not in nixpkgs, built here from source with buildGoModule
|
||||
# Both are referenced by bare command name in opencode.jsonc, so they resolve
|
||||
# from PATH.
|
||||
flake.nixosModules.opencode-mcp = {pkgs, ...}: let
|
||||
engram = pkgs.buildGoModule rec {
|
||||
pname = "engram";
|
||||
version = "1.20.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Gentleman-Programming";
|
||||
repo = "engram";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qdKAll7N0HtJRbZYilzatVCUz1Tr+pqM217Y8O+Csjs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-O+pC4x4DKNUWr7Sx9iZOjK6a64wrQA4/lnjvkNLBX64=";
|
||||
|
||||
subPackages = ["cmd/engram"];
|
||||
|
||||
# Inject the version (upstream sets main.version via goreleaser ldflags).
|
||||
ldflags = ["-s" "-w" "-X" "main.version=${version}"];
|
||||
|
||||
# Upstream tests bind network ports (autosync), which fails in the Nix
|
||||
# build sandbox. The binary itself builds fine.
|
||||
doCheck = false;
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "Persistent memory MCP server for coding agents";
|
||||
homepage = "https://github.com/Gentleman-Programming/engram";
|
||||
license = licenses.mit;
|
||||
mainProgram = "engram";
|
||||
};
|
||||
};
|
||||
in {
|
||||
environment.systemPackages = [
|
||||
pkgs.gitea-mcp-server # provides the `gitea-mcp` binary
|
||||
engram
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user