mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-10 20:27:13 +01:00
mcp 2.0.0 removed mcp.server.fastmcp; MCPServer is the same object under a new name, so @mcp.tool() and mcp.run() are untouched and every tool keeps its name, signature and returned shape. Verified against a clean 2.0.0 venv: all four tools list, and the whole suite -- including test_mcp.py, which could not even import while the dependency was broken -- passes at 100% coverage, 901 tests. Two things the port buys, neither of which existed in 1.x: * Tool annotations. The section banner here already said "state-only; never expose secrets, never mutate"; now the protocol says it too, as read-only, idempotent and closed-world hints, which is what lets a client run these without asking first. The day one of them starts writing, the annotation is what has to change with it. * Structured output. 2.x derives an output schema from the return types and sends structured content alongside the text, so a caller no longer re-parses JSON we already had. No code change -- it falls out of the type hints that were already there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BsXnTHyuuCUZsqetTaajcF
18 lines
512 B
Plaintext
18 lines
512 B
Plaintext
# Screen Locker — runtime + development dependencies
|
|
# Runtime: tkinter/subprocess/socket/sqlite3 (stdlib) plus gatelock (below).
|
|
bandit>=1.7.0
|
|
codespell>=2.2.0
|
|
coverage>=7.4.0
|
|
crdt-sync @ git+https://github.com/kuhyx/utils@crdt-sync-v0.1.0#subdirectory=crdt-sync
|
|
gatelock @ git+https://github.com/kuhyx/utils@gatelock-v0.4.0#subdirectory=gatelock
|
|
mcp>=2,<3
|
|
mypy>=1.8.0
|
|
pre-commit>=3.6.0
|
|
pylint>=3.0.0
|
|
pytest>=8.0.0
|
|
pytest-cov>=4.1.0
|
|
pytest-randomly>=3.15.0
|
|
pytest-sugar>=1.0.0
|
|
pytest-xdist>=3.5.0
|
|
ruff>=0.8.0
|