File-backed MCP server for hierarchical project management (Projects → Epics → Features → Tasks)
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Trellis MCP
File-backed MCP server for hierarchical project management (Projects → Epics → Features → Tasks).
Overview
Trellis MCP implements the "Trellis MCP v 1.0" specification, providing a structured approach to project planning and task management. The server stores all state as Markdown files with YAML front-matter in a nested tree structure:
planning/projects/P-…/epics/E-…/features/F-…/tasks-open/T-….md
Installation
Install the package in development mode:
uv pip install -e .
Quick Start
1 · Zero‑install (run directly from PyPI)
# 1) install uv once
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2) run the server (STDIO transport)
uvx task-trellis-mcp serve
# 3) optional – HTTP transport on port 8545
uvx task-trellis-mcp serve --http 0.0.0.0:8545
2 · Zero‑install from GitHub
uvx --from git+https://github.com/langadventurellc/trellis-mcp.git task-trellis-mcp serve
Add --http to expose HTTP.
3 · Local development workflow (editable clone)
-
Initialize a new planning structure:
uv run task-trellis-mcp init
-
Start the MCP server:
# STDIO transport (default) uv run task-trellis-mcp serve # HTTP transport uv run task-trellis-mcp serve --http localhost:8000
-
Create objects with priority fields:
# Task with high priority kind: task id: T-setup-auth title: Set up authentication system priority: high status: open # Feature with normal priority (default) kind: feature id: F-user-management title: User management system priority: normal status: open
-
Test RPC methods with mcp-inspector:
# Start mcp-inspector to test your server npx @modelcontextprotocol/inspector node -e "require('child_process').spawn('task-trellis-mcp', ['serve'], {stdio: 'inherit'})" # Or test with CLI mode to call getNextReviewableTask npx @modelcontextprotocol/inspector --cli task-trellis-mcp serve --method tools/call --tool-name getNextReviewableTask --tool-arg projectRoot=.
Example output when reviewable task found:
{ "task": { "id": "implement-auth", "title": "Implement authentication system", "status": "review", "priority": "high", "parent": "F-user-management", "file_path": "./planning/projects/P-app/epics/E-auth/features/F-user-management/tasks-open/T-implement-auth.md", "created": "2025-01-15T10:00:00Z", "updated": "2025-01-15T14:30:00Z" } }
Example output when no reviewable tasks exist:
{ "task": null }
-
Delete objects with cascade deletion:
# Delete a task (no children to cascade) task-trellis-mcp delete task T-001 # Delete a feature with confirmation prompt task-trellis-mcp delete feature F-user-management # Output: ⚠️ Delete Feature F-user-management and 5 descendants? [y/N] # Delete an epic and all its children task-trellis-mcp delete epic E-auth # Output: ⚠️ Delete Epic E-auth and 12 descendants? [y/N] # Force delete even if children have protected status (in-progress/review) task-trellis-mcp delete project P-001 --force
Example output after successful deletion:
✓ Deleted epic E-auth Cascade deleted 12 items: - planning/projects/P-001/epics/E-auth/epic.md - planning/projects/P-001/epics/E-auth/features/F-login/feature.md - planning/projects/P-001/epics/E-auth/features/F-login/tasks-open/T-login-form.md - planning/projects/P-001/epics/E-auth/features/F-login/tasks-done/2025-01-15T10:30:00-T-setup-db.md - ... (and 8 more files) -
Run from test.pypi.org:
uvx \
--prerelease allow \
--index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ \
task-trellis-mcp==1.0.0rc1 serve
claude mcp add task-trellis-test \
-- uvx --prerelease allow \
--index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ \
task-trellis-mcp==1.0.0rc1 serve
{
"mcpServers": {
"trellis-test": {
"type": "stdio",
"command": "uvx",
"args": [
"--prerelease", "allow",
"--index-url", "https://test.pypi.org/simple/",
"--extra-index-url", "https://pypi.org/simple/",
"task-trellis-mcp==1.0.0rc1",
"serve"
]
}
}
}
Requirements
- Python 3.12+
- Click >= 8.1
- FastMCP >= 0.7
Development
Install development dependencies:
uv pip install -r requirements.dev.txt
pre-commit install
Run quality checks:
pre-commit run --all-files
pytest -q
License
MIT License - See LICENSE file for details.
Repository
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file task_trellis_mcp-1.0.2rc2.tar.gz.
File metadata
- Download URL: task_trellis_mcp-1.0.2rc2.tar.gz
- Upload date:
- Size: 271.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4fafc10a3feb2f13827d0108f2cd25a5ceeefba8d2b34732c526e0a876daef0
|
|
| MD5 |
1e8462883d02d3c70e44b072229ac965
|
|
| BLAKE2b-256 |
a257e219d66696d83634b9a12cd02079e42fb0ee728b0a8489aaf2ab61a89b5f
|
Provenance
The following attestation bundles were made for task_trellis_mcp-1.0.2rc2.tar.gz:
Publisher:
pypi.yml on langadventurellc/trellis-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
task_trellis_mcp-1.0.2rc2.tar.gz -
Subject digest:
c4fafc10a3feb2f13827d0108f2cd25a5ceeefba8d2b34732c526e0a876daef0 - Sigstore transparency entry: 284361066
- Sigstore integration time:
-
Permalink:
langadventurellc/trellis-mcp@3bcdac8810f10df63e49a61eb995fad4a30a1d2b -
Branch / Tag:
refs/tags/v1.0.2-rc.2 - Owner: https://github.com/langadventurellc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@3bcdac8810f10df63e49a61eb995fad4a30a1d2b -
Trigger Event:
push
-
Statement type:
File details
Details for the file task_trellis_mcp-1.0.2rc2-py3-none-any.whl.
File metadata
- Download URL: task_trellis_mcp-1.0.2rc2-py3-none-any.whl
- Upload date:
- Size: 89.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
593ee0e02f562db5889441237639ee87d264cfac5c942977e7625eca2568a8ab
|
|
| MD5 |
0908009da62ce8665b11d0cf80456547
|
|
| BLAKE2b-256 |
9a489ec7c16a8f241e4dbd2e87668f018bd2534517269a7cfc75e23f3365f1f0
|
Provenance
The following attestation bundles were made for task_trellis_mcp-1.0.2rc2-py3-none-any.whl:
Publisher:
pypi.yml on langadventurellc/trellis-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
task_trellis_mcp-1.0.2rc2-py3-none-any.whl -
Subject digest:
593ee0e02f562db5889441237639ee87d264cfac5c942977e7625eca2568a8ab - Sigstore transparency entry: 284361096
- Sigstore integration time:
-
Permalink:
langadventurellc/trellis-mcp@3bcdac8810f10df63e49a61eb995fad4a30a1d2b -
Branch / Tag:
refs/tags/v1.0.2-rc.2 - Owner: https://github.com/langadventurellc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@3bcdac8810f10df63e49a61eb995fad4a30a1d2b -
Trigger Event:
push
-
Statement type: