51 lines
1.2 KiB
Nix
51 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
python3Packages,
|
|
fetchFromGitHub,
|
|
fetchurl,
|
|
}:
|
|
|
|
let
|
|
# Upstream 0.7.0 was ported to the MCP SDK 2.x API
|
|
# (`mcp.server.mcpserver.MCPServer`). nixpkgs pins the SDK at 1.x, so use the
|
|
# per-package 2.x stack from packages/lib/mcp2.nix.
|
|
mcp2 = import ../lib/mcp2.nix {
|
|
inherit lib fetchurl;
|
|
pythonPackages = python3Packages;
|
|
};
|
|
in
|
|
python3Packages.buildPythonApplication rec {
|
|
pname = "duckduckgo-mcp-server";
|
|
version = "0.7.0";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "nickclyde";
|
|
repo = "duckduckgo-mcp-server";
|
|
rev = "v${version}";
|
|
hash = "sha256-wI6Q4lBZYzU4VORLwGZowv8D5UfhKaMeqBIQ7u6eRxc=";
|
|
};
|
|
|
|
build-system = [ python3Packages.hatchling ];
|
|
|
|
dependencies = with python3Packages; [
|
|
beautifulsoup4
|
|
httpx
|
|
httpcore
|
|
mcp2.mcp
|
|
];
|
|
|
|
doCheck = false;
|
|
dontCheckRuntimeDeps = true;
|
|
|
|
pythonImportsCheck = [ "duckduckgo_mcp_server" ];
|
|
|
|
meta = with lib; {
|
|
description = "MCP server providing web search via DuckDuckGo";
|
|
homepage = "https://github.com/nickclyde/duckduckgo-mcp-server";
|
|
license = licenses.mit;
|
|
mainProgram = "duckduckgo-mcp-server";
|
|
platforms = platforms.all;
|
|
};
|
|
}
|