synix/pkgs/fetcher-mcp/default.nix
sid 95a533c876
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 3s
initial commit
2026-02-23 20:34:35 +01:00

69 lines
1.5 KiB
Nix

{
lib,
buildNpmPackage,
fetchFromGitHub,
makeWrapper,
playwright-driver,
linkFarm,
jq,
...
}:
let
revision = "1161";
chromium-headless-shell =
playwright-driver.passthru.components."chromium-headless-shell".overrideAttrs
(old: {
inherit revision;
});
browsers-headless-only = linkFarm "playwright-browsers-headless-only" [
{
name = "chromium-${revision}";
path = chromium-headless-shell;
}
];
in
buildNpmPackage rec {
pname = "fetcher-mcp";
version = "0.3.6";
src = fetchFromGitHub {
owner = "jae-jae";
repo = "fetcher-mcp";
rev = "4f4ad0f723367a7b0d3215c01d04282d573e6980";
hash = "sha256-4Hh2H2ANBHOYYl3I1BqrkdCPNF/1hgv649CqAy7aiYw=";
};
env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
nativeBuildInputs = [
makeWrapper
jq
];
npmDepsHash = "sha256-a56gDzZCo95vQUO57uFwMc9g/7jweYdCKqx64W8D1T8=";
postPatch = ''
${jq}/bin/jq 'del(.scripts.postinstall) | del(.scripts."install-browser")' package.json > package.json.tmp && mv package.json.tmp package.json
'';
makeWrapperArgs = [
"--set"
"PLAYWRIGHT_BROWSERS_PATH"
"${browsers-headless-only}"
# "--set"
# "PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS"
# "true"
];
meta = {
description = "MCP server for fetch web page content using Playwright headless browser";
homepage = "https://github.com/jae-jae/fetcher-mcp";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ];
mainProgram = "fetcher-mcp";
platforms = lib.platforms.all;
};
}