trying arxiv server
This commit is contained in:
92
flake.lock
generated
92
flake.lock
generated
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"nodes": {
|
||||
"mcp-servers": {
|
||||
"arxiv-mcp-server": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1741967586,
|
||||
"narHash": "sha256-MLfU7VgGmYid0bgK9RPfRTnTRIA8UHAUbbVg94Nmyv4=",
|
||||
"owner": "modelcontextprotocol",
|
||||
"repo": "servers",
|
||||
"rev": "8963861c75c69f09d2890eedb0ef25b23c6253c6",
|
||||
"lastModified": 1741745018,
|
||||
"narHash": "sha256-3eLEoc10b8zi68Y7er4mPPNHQOghtHqq95YpRnrVIcI=",
|
||||
"owner": "blazickjp",
|
||||
"repo": "arxiv-mcp-server",
|
||||
"rev": "b46928a15a6e12354409703a8f700a75ae6c4c23",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "modelcontextprotocol",
|
||||
"owner": "blazickjp",
|
||||
"ref": "main",
|
||||
"repo": "servers",
|
||||
"repo": "arxiv-mcp-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -33,10 +33,82 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pyproject-build-systems": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pyproject-nix": [
|
||||
"pyproject-nix"
|
||||
],
|
||||
"uv2nix": [
|
||||
"uv2nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741647088,
|
||||
"narHash": "sha256-y/Aj21rMGdE23dcFfD4lRhNMgkhIRucp+uuWLWUXv0M=",
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "build-system-pkgs",
|
||||
"rev": "6d7eced86469cf89ed4d19d91b870163deb0dca2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "build-system-pkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pyproject-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741648141,
|
||||
"narHash": "sha256-jQEZCSCgm60NGmBg3JPu290DDhNVI1GVVEd0P8VCnME=",
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "pyproject.nix",
|
||||
"rev": "7747e5a058245c7abe033a798f818f0572d8e155",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "pyproject.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"mcp-servers": "mcp-servers",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"arxiv-mcp-server": "arxiv-mcp-server",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pyproject-build-systems": "pyproject-build-systems",
|
||||
"pyproject-nix": "pyproject-nix",
|
||||
"uv2nix": "uv2nix"
|
||||
}
|
||||
},
|
||||
"uv2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pyproject-nix": [
|
||||
"pyproject-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741780535,
|
||||
"narHash": "sha256-B4seqoWl9HlKZ7m+nDosVtmDw9i6KbhvfonQlYhRrJg=",
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "uv2nix",
|
||||
"rev": "7de0e836e005f971a252e20b478d12b8b64909d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "uv2nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
159
flake.nix
159
flake.nix
@@ -3,50 +3,147 @@
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
mcp-servers = {
|
||||
url = "github:modelcontextprotocol/servers/main";
|
||||
|
||||
pyproject-nix.url = "github:pyproject-nix/pyproject.nix";
|
||||
pyproject-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
uv2nix = {
|
||||
url = "github:pyproject-nix/uv2nix";
|
||||
inputs.pyproject-nix.follows = "pyproject-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
pyproject-build-systems = {
|
||||
url = "github:pyproject-nix/build-system-pkgs";
|
||||
inputs.pyproject-nix.follows = "pyproject-nix";
|
||||
inputs.uv2nix.follows = "uv2nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
arxiv-mcp-server = {
|
||||
url = "github:blazickjp/arxiv-mcp-server/main";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
# Uncomment and set correct URL when available
|
||||
# mcp-servers = {
|
||||
# url = "github:your-org/mcp-servers";
|
||||
# flake = false;
|
||||
# };
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system}.extend(
|
||||
nixpkgs.lib.composeManyExtensions([
|
||||
] ++ builtins.attrValues self.overlays)
|
||||
supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||
pkgsFor = system: nixpkgs.legacyPackages.${system}.extend(
|
||||
nixpkgs.lib.composeManyExtensions (
|
||||
[] ++ builtins.attrValues self.overlays
|
||||
)
|
||||
);
|
||||
mcp-servers-pkg = pkgs.stdenv.mkDerivation {
|
||||
name = "mcp-servers";
|
||||
src = inputs.mcp-servers;
|
||||
buildInputs = [ pkgs.nodejs pkgs.nodePackages.npm pkgs.makeWrapper ];
|
||||
buildPhase = ''
|
||||
npm ci
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib $out/bin
|
||||
cp -r . $out/lib
|
||||
makeWrapper ${pkgs.nodejs}/bin/node $out/bin/mcp-servers \
|
||||
--add-flags "$out/lib/index.js" \
|
||||
--prefix NODE_PATH : $out/lib/node_modules
|
||||
'';
|
||||
};
|
||||
|
||||
buildUvServer = { src, pkgs }:
|
||||
let
|
||||
workspace = inputs.uv2nix.lib.workspace.loadWorkspace { workspaceRoot = src; };
|
||||
overlay = workspace.mkPyprojectOverlay {
|
||||
sourcePreference = "wheel";
|
||||
};
|
||||
python = pkgs.python312;
|
||||
pyprojectOverrides = final: prev: {
|
||||
jaconv = prev.jaconv.overrideAttrs (old: {
|
||||
nativeBuildInputs =
|
||||
old.nativeBuildInputs or [ ] ++ (
|
||||
final.resolveBuildSystem {
|
||||
setuptools-scm = [ ];
|
||||
setuptools = [ ];
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
pythonSet = (pkgs.callPackage inputs.pyproject-nix.build.packages {
|
||||
inherit python;
|
||||
}).overrideScope (
|
||||
nixpkgs.lib.composeManyExtensions [
|
||||
inputs.pyproject-build-systems.overlays.default
|
||||
overlay
|
||||
pyprojectOverrides
|
||||
]
|
||||
);
|
||||
in
|
||||
pythonSet.mkVirtualEnv "arxiv-mcp-env" workspace.deps.default;
|
||||
|
||||
# Build function for MCP servers
|
||||
buildMcpServer = { pkgs }:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "mcp-servers";
|
||||
version = "0.1.0";
|
||||
src = inputs.mcp-servers;
|
||||
nativeBuildInputs = [ pkgs.nodejs pkgs.makeWrapper ];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
ls -alhR
|
||||
echo "starting to build..."
|
||||
npm ci --no-audit --no-fund --loglevel verbose
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib $out/bin
|
||||
cp -r . $out/lib
|
||||
cp -r node_modules/bin $out/bin
|
||||
'';
|
||||
};
|
||||
in {
|
||||
# Formatting
|
||||
formatter.${system} = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
||||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixpkgs-fmt);
|
||||
|
||||
# Overlays
|
||||
overlays.default = final: prev: {
|
||||
mcp-servers = mcp-servers-pkg;
|
||||
custom-servers = {
|
||||
arxiv-mcp-server = buildUvServer {
|
||||
pkgs = prev;
|
||||
src = inputs.arxiv-mcp-server;
|
||||
};
|
||||
};
|
||||
|
||||
mcp-servers = buildMcpServer {
|
||||
pkgs = prev;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Packages
|
||||
packages = forAllSystems (system:
|
||||
let
|
||||
pkgs = pkgsFor system;
|
||||
custom-servers = {
|
||||
arxiv-mcp-server = buildUvServer {
|
||||
pkgs = pkgs;
|
||||
src = inputs.arxiv-mcp-server;
|
||||
};
|
||||
};
|
||||
in {
|
||||
inherit custom-servers;
|
||||
}
|
||||
);
|
||||
|
||||
# Development shell
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.uv
|
||||
pkgs.nodejs
|
||||
mcp-servers-pkg
|
||||
];
|
||||
};
|
||||
devShells = forAllSystems (system:
|
||||
let pkgs = pkgsFor system;
|
||||
custom-servers = {
|
||||
arxiv-mcp-server = buildUvServer {
|
||||
pkgs = pkgs;
|
||||
src = inputs.arxiv-mcp-server;
|
||||
};
|
||||
};
|
||||
in {
|
||||
default = pkgs.mkShell {
|
||||
packages = [
|
||||
# pkgs.uv
|
||||
# pkgs.nodejs
|
||||
custom-servers
|
||||
];
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user