zotero-mcp

This commit is contained in:
MCP Packages
2026-02-04 21:19:24 +01:00
parent 59946eba33
commit 8e0a9cae74
4 changed files with 91 additions and 4 deletions

View File

@@ -8,9 +8,11 @@ This repository provides Nix derivations for MCP (Model Context Protocol) server
* Available Packages * Available Packages
| Package | Description | Language | | Package | Description | Language |
|--------------------+------------------------------------------------------+----------| |----------------------------+----------------------------------------------------------+----------|
| manim-mcp-server | Execute Manim animation code and return videos | Python | | academic-search-mcp-server | Search academic papers via Semantic Scholar and Crossref | Python |
| manim-mcp-server | Execute Manim animation code and return videos | Python |
| zotero-mcp | Connect Zotero research library with AI assistants | Python |
* Usage * Usage

View File

@@ -15,6 +15,11 @@
"type": "local", "type": "local",
"command": ["manim-mcp-server"], "command": ["manim-mcp-server"],
"enabled": true "enabled": true
},
"zotero": {
"type": "local",
"command": ["zotero-mcp"],
"enabled": true
} }
} }
} }

View File

@@ -12,6 +12,7 @@
manim-mcp-server = pkgs.callPackage ./manim-mcp-server/package.nix { }; manim-mcp-server = pkgs.callPackage ./manim-mcp-server/package.nix { };
# Add new packages here: # Add new packages here:
academic-search-mcp-server = pkgs.callPackage ./academic-search-mcp-server/package.nix { }; academic-search-mcp-server = pkgs.callPackage ./academic-search-mcp-server/package.nix { };
zotero-mcp = pkgs.callPackage ./zotero-mcp/package.nix { };
# example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { }; # example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { };
} }

View File

@@ -0,0 +1,79 @@
{
lib,
python3Packages,
fetchFromGitHub,
fetchPypi,
}:
let
# Internal dependency: pyzotero (not in nixpkgs)
pyzotero = python3Packages.buildPythonPackage rec {
pname = "pyzotero";
version = "1.9.0";
format = "wheel";
src = fetchPypi {
inherit pname version;
format = "wheel";
dist = "py3";
python = "py3";
hash = "sha256-vbbqhotDQlsQjho/JaFywriPb3XgnmydcNG38/Qq8xE=";
};
propagatedBuildInputs = with python3Packages; [
feedparser
bibtexparser
httpx
whenever
];
doCheck = false;
pythonImportsCheck = [ "pyzotero" ];
meta = with lib; {
description = "Python wrapper for the Zotero API";
homepage = "https://github.com/urschrei/pyzotero";
license = licenses.blueOak100;
};
};
in
python3Packages.buildPythonApplication rec {
pname = "zotero-mcp";
version = "0.1.2-unstable";
pyproject = true;
src = fetchFromGitHub {
owner = "54yyyu";
repo = "zotero-mcp";
rev = "372da10a3fbf56332eed4547fd40032de45593b8";
hash = "sha256-nYtuADZVFAJjnl0Gejnd0dK/VVL+XHttHC3zc2avG8s=";
};
build-system = with python3Packages; [
hatchling
];
dependencies = with python3Packages; [
pyzotero
mcp
python-dotenv
markitdown
pydantic
requests
fastmcp
chromadb
sentence-transformers
openai
google-genai
];
pythonImportsCheck = [ "zotero_mcp" ];
meta = with lib; {
description = "MCP server connecting Zotero with AI assistants for research library access";
homepage = "https://github.com/54yyyu/zotero-mcp";
license = licenses.mit;
mainProgram = "zotero-mcp";
platforms = platforms.all;
};
}