diff --git a/opencode.json b/opencode.json index bd710a4..94181fc 100644 --- a/opencode.json +++ b/opencode.json @@ -6,6 +6,11 @@ "command": ["mcp-nixos"], "enabled": true }, + "academic-search": { + "type": "local", + "command": ["academic-search-mcp-server"], + "enabled": true + }, "manim": { "type": "local", "command": ["manim-mcp-server"], diff --git a/packages/academic-search-mcp-server/package.nix b/packages/academic-search-mcp-server/package.nix new file mode 100644 index 0000000..11428de --- /dev/null +++ b/packages/academic-search-mcp-server/package.nix @@ -0,0 +1,42 @@ +{ stdenv, lib, fetchFromGitHub, python3, makeWrapper }: + +let + python = python3.withPackages (ps: with ps; [ + mcp + fastmcp + httpx + ]); +in +stdenv.mkDerivation rec { + pname = "academic-search-mcp-server"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "afrise"; + repo = "academic-search-mcp-server"; + rev = "f457e444b2398aad39d1ef7f0ceed06748c177a4"; + hash = "sha256-Uh2QVQ9AJbqWKiBeffHTaAiGzTvN5VmBJdRtAkzDBow="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin $out/lib/${pname} + cp -r $src/* $out/lib/${pname} + makeWrapper ${python}/bin/python $out/bin/${pname} \ + --add-flags "$out/lib/${pname}/server.py" + runHook postInstall + ''; + + meta = with lib; { + description = "Academic Paper Search MCP Server for Claude Desktop integration"; + homepage = "https://github.com/afrise/academic-search-mcp-server"; + license = licenses.gpl3; + maintainers = [ ]; + mainProgram = pname; + platforms = platforms.all; + }; +} diff --git a/packages/default.nix b/packages/default.nix index f88a31a..784a6e1 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -12,5 +12,6 @@ manim-mcp-server = pkgs.callPackage ./manim-mcp-server/package.nix { }; # Add new packages here: + academic-search-mcp-server = pkgs.callPackage ./academic-search-mcp-server/package.nix { }; # example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { }; }