[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "linkwarden-mcp" version = "0.1.6" description = "MCP server for Linkwarden bookmarks: read-first search and preserved content, with opt-in write, delete, and collection-delete tools." readme = "README.md" license = "MIT" authors = [{ name = "Dru Connold", email = "dru@connold.co.za" }] requires-python = ">=3.10" keywords = [ "mcp", "model-context-protocol", "linkwarden", "bookmarks", "fastmcp", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP :: Indexing/Search", ] dependencies = [ "fastmcp>=3.4.5,<4.0", "httpx>=0.28.1", ] [project.urls] Homepage = "https://github.com/flumpiey/linkwarden-mcp" Repository = "https://github.com/flumpiey/linkwarden-mcp" Issues = "https://github.com/flumpiey/linkwarden-mcp/issues" [dependency-groups] dev = [ "build>=1.2.0", "hatch>=1.17.1", "hatchling>=1.31.0", "pytest>=8.0.0", "pytest-asyncio>=0.24.0", "respx>=0.22.0", "ruff>=0.8.0", "twine>=6.0.0", ] [project.optional-dependencies] dev = [ "build>=1.2.0", "hatch>=1.17.1", "hatchling>=1.31.0", "pytest>=8.0.0", "pytest-asyncio>=0.24.0", "respx>=0.22.0", "ruff>=0.8.0", "twine>=6.0.0", ] [project.scripts] linkwarden-mcp = "linkwarden_mcp.server:main" [tool.hatch.build.targets.wheel] packages = ["src/linkwarden_mcp"] [tool.hatch.build.targets.sdist] # only-include is exclusive (unlike include, which can still traverse VCS roots). only-include = [ "src", "tests", "README.md", "LICENSE", "pyproject.toml", ] exclude = [ "mcpb/", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] markers = [ "integration: live Linkwarden sandbox, requires TEST_LINKWARDEN_API_URL env var", ] addopts = "-m 'not integration'" [tool.ruff] line-length = 100 target-version = "py310"