Tangled MCP Server
The Tangled MCP Server integrates with the Tangled git collaboration platform (built on AT Protocol), enabling repository and issue management through MCP clients like Claude Code, Cursor, and Codex CLI.
Core Capabilities:
Repository Management: List branches for any repository with cursor-based pagination (1-100 items per request)
Issue Management: Create, update, delete, and list issues with support for titles, descriptions, and labels
Label Management: List available labels for repositories
Connection Status: Monitor authentication and platform accessibility via
tangled://statusresource
Key Features:
Flexible repository identification using
owner/repoformat with handles (with/without@prefix) or DIDsPagination support across all list operations
Authentication via Tangled handle and app password credentials
Cross-platform MCP client compatibility
Provides tools for interacting with git repositories through the Tangled platform, enabling repository and branch management, issue creation and listing capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tangled MCP Serverlist branches for zzstoatzz/tangled-mcp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tangled-mcp
MCP server for Tangled - a git collaboration platform built on AT Protocol.
reads go through bobbin, tangled's public XRPC API (api.tangled.org) — no credentials needed. writes (issues, comments, labels) are atproto records put directly on your PDS and require an app password.
note: this repository is mirrored to GitHub for deployment via FastMCP Cloud.
hosted server
a hosted instance runs at https://nate-tangled-mcp.fastmcp.app/mcp — no install needed:
claude mcp add --transport http tangled https://nate-tangled-mcp.fastmcp.app/mcpfor write access, pass credentials per request via headers:
claude mcp add --transport http tangled https://nate-tangled-mcp.fastmcp.app/mcp \
--header "x-tangled-handle: your.handle" \
--header "x-tangled-password: your-app-password"your PDS is auto-discovered from your handle — self-hosted PDS works with no extra config.
Related MCP server: GitLab MR MCP
installation
git clone https://tangled.org/zzstoatzz/tangled-mcp
cd tangled-mcp
just setupconfiguration
credentials are optional — only write tools need them. hosted/multi-tenant deployments can send them per request via x-tangled-handle / x-tangled-password headers, which take precedence over env. for local use, create .env:
TANGLED_HANDLE=your.handle
TANGLED_PASSWORD=your-app-passwordusage
claude code
# read-only (no credentials)
claude mcp add tangled -- uvx tangled-mcp
# with write access
claude mcp add tangled \
-e TANGLED_HANDLE=your.handle \
-e TANGLED_PASSWORD=your-app-password \
-- uvx tangled-mcpcursor
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-mcpother clients
for clients that support MCP server configuration, use:
command:
uvxargs:
["tangled-mcp"]environment variables (optional, for writes):
TANGLED_HANDLE,TANGLED_PASSWORD
development usage
uv run tangled-mcptools
repositories are owner/repo (e.g. zzstoatzz.io/tangled-mcp); handles (with or without @) and DIDs both work for the owner. issues are identified by at-uri.
discovery (no auth)
search(query, limit)- full-text search across repos, issues, and stringslist_repos(owner, limit)- list a user's repositoriesget_repo(repo)- metadata: knot, default branch, languages, labelsget_record(uri)- fetch the full record behind any at-uri (strings/pastes, comments, ...)
git (no auth)
list_branches(repo, limit)/list_tags(repo, limit)list_files(repo, path, ref)- browse the treeread_file(repo, path, ref)- file contentscommit_log(repo, ref, limit)- recent commitscompare(repo, rev1, rev2)- diff two revisions
issues & pulls (no auth)
list_issues(repo, state, limit)- filterable by open/closedget_issue(issue)list_pulls(repo, status, limit)- filterable by open/closed/mergedget_pull(pull)- single PR with live state (derived from PDS status records, no index lag)list_pipelines(repo, limit)- CI pipeline runs
writes (require credentials)
create_pull(repo, title, patch | edits, target_branch, body)- open a PR fromgit format-patchoutput, or from whole-fileedits(no clone needed — the server synthesizes the patch)create_issue(repo, title, body, labels)update_issue(issue, title, body)set_issue_state(issue, state)- close/reopenset_pull_state(pull, state)- close/reopen a PRcomment_on_issue(issue, body)delete_issue(issue)
development
just test # run tests
just check # run pre-commit checkssee docs/bobbin-api.md for notes on tangled's public API.
mcp-name: io.github.zzstoatzz/tangled-mcp
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zzstoatzz/tangled-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server