MCP server for tangled
Python 99.6%
Just 0.4%
Other 0.1%
40 3 14

Clone this repository

https://tangled.org/zzstoatzz.io/tangled-mcp
git@tangled.org:zzstoatzz.io/tangled-mcp

For self-hosted knots, clone URLs may differ based on your setup.

README.md

tangled-mcp#

MCP server for Tangled - a git collaboration platform built on AT Protocol.

note: this repository is mirrored to GitHub for deployment via FastMCP Cloud.

installation#

git clone https://tangled.org/zzstoatzz/tangled-mcp
cd tangled-mcp
just setup
IMPORTANT

requires uv and just

configuration#

create .env file:

TANGLED_HANDLE=your.handle
TANGLED_PASSWORD=your-app-password
# optional: only needed if using custom PDS (leave blank for auto-discovery)
TANGLED_PDS_URL=

usage#

MCP client installation instructions

claude code#

# basic setup
claude mcp add tangled -- uvx tangled-mcp

# with credentials
claude mcp add tangled \
  -e TANGLED_HANDLE=your.handle \
  -e TANGLED_PASSWORD=your-app-password \
  -- uvx tangled-mcp

cursor#

add to your cursor settings (~/.cursor/mcp.json or .cursor/mcp.json):

{
  "mcpServers": {
    "tangled": {
      "command": "uvx",
      "args": ["tangled-mcp"],
      "env": {
        "TANGLED_HANDLE": "your.handle",
        "TANGLED_PASSWORD": "your-app-password"
      }
    }
  }
}

codex cli#

codex mcp add tangled \
  --env TANGLED_HANDLE=your.handle \
  --env TANGLED_PASSWORD=your-app-password \
  -- uvx tangled-mcp

other clients#

for clients that support MCP server configuration, use:

  • command: uvx
  • args: ["tangled-mcp"]
  • environment variables: TANGLED_HANDLE, TANGLED_PASSWORD, and optionally TANGLED_PDS_URL

development usage#

uv run tangled-mcp

resources#

  • tangled://status - connection status (PDS auth + tangled accessibility)

tools#

all tools accept repositories in owner/repo format (e.g., zzstoatzz/tangled-mcp). handles (with or without @ prefix) and DIDs are both supported for the owner.

repositories#

  • list_repo_branches(repo, limit, cursor) - list branches for a repository

issues#

  • create_repo_issue(repo, title, body, labels) - create an issue with optional labels
  • update_repo_issue(repo, issue_id, title, body, labels) - update an issue's title, body, and/or labels
  • delete_repo_issue(repo, issue_id) - delete an issue
  • list_repo_issues(repo, limit) - list issues for a repository
  • list_repo_labels(repo) - list available labels for a repository

pull requests#

  • list_repo_pulls(repo, limit) - list PRs targeting a repository (only shows PRs you created)

development#

just test   # run tests
just check  # run pre-commit checks

mcp-name: io.github.zzstoatzz/tangled-mcp