···9- `TANGLED_APPVIEW_URL` + `TANGLED_DID` are constants (not user-configurable)
10- `TANGLED_PDS_URL` optional (auto-discovery from handle unless custom PDS)
11000000012## code quality
13- ruff: import sorting (I), pyupgrade (UP)
14- ty: type checking configured
15- pre-commit: ruff only
16-- justfile: setup, test, check
1718## testing
19- use in-memory transport (pass FastMCP directly to Client)
···9- `TANGLED_APPVIEW_URL` + `TANGLED_DID` are constants (not user-configurable)
10- `TANGLED_PDS_URL` optional (auto-discovery from handle unless custom PDS)
1112+## deployment
13+- repo mirrored to both tangled and github
14+- single `git push origin main` pushes to both remotes
15+- use `just push "message"` for convenience
16+- github: https://github.com/zzstoatzz/tangled-mcp
17+- tangled: git@tangled.sh:zzstoatzz.io/tangled-mcp
18+19## code quality
20- ruff: import sorting (I), pyupgrade (UP)
21- ty: type checking configured
22- pre-commit: ruff only
23+- justfile: setup, test, check, push
2425## testing
26- use in-memory transport (pass FastMCP directly to Client)
+2
README.md
···23MCP server for [Tangled](https://tangled.org) - a git collaboration platform built on AT Protocol.
4005## installation
67```bash
···23MCP server for [Tangled](https://tangled.org) - a git collaboration platform built on AT Protocol.
45+> **note**: this repository is mirrored to [GitHub](https://github.com/zzstoatzz/tangled-mcp) for deployment via [FastMCP Cloud](https://fastmcp.cloud).
6+7## installation
89```bash
+6
justfile
···10# run pre-commit checks
11check:
12 uv run pre-commit run --all-files
000000
···10# run pre-commit checks
11check:
12 uv run pre-commit run --all-files
13+14+# push to both tangled and github
15+push message:
16+ git add .
17+ git commit -m "{{message}}"
18+ git push origin main