trellio-mcp 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. trellio_mcp-0.1.1/PKG-INFO +276 -0
  2. trellio_mcp-0.1.1/README.md +250 -0
  3. trellio_mcp-0.1.1/pyproject.toml +46 -0
  4. trellio_mcp-0.1.1/setup.cfg +4 -0
  5. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/PKG-INFO +276 -0
  6. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/SOURCES.txt +26 -0
  7. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/dependency_links.txt +1 -0
  8. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/entry_points.txt +2 -0
  9. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/requires.txt +5 -0
  10. trellio_mcp-0.1.1/src/trellio_mcp.egg-info/top_level.txt +1 -0
  11. trellio_mcp-0.1.1/src/trello_mcp/__init__.py +14 -0
  12. trellio_mcp-0.1.1/src/trello_mcp/__main__.py +14 -0
  13. trellio_mcp-0.1.1/src/trello_mcp/auth.py +154 -0
  14. trellio_mcp-0.1.1/src/trello_mcp/errors.py +18 -0
  15. trellio_mcp-0.1.1/src/trello_mcp/prompts.py +44 -0
  16. trellio_mcp-0.1.1/src/trello_mcp/resources.py +48 -0
  17. trellio_mcp-0.1.1/src/trello_mcp/server.py +26 -0
  18. trellio_mcp-0.1.1/src/trello_mcp/tools/__init__.py +0 -0
  19. trellio_mcp-0.1.1/src/trello_mcp/tools/attachments.py +38 -0
  20. trellio_mcp-0.1.1/src/trello_mcp/tools/boards.py +87 -0
  21. trellio_mcp-0.1.1/src/trello_mcp/tools/cards.py +101 -0
  22. trellio_mcp-0.1.1/src/trello_mcp/tools/checklists.py +67 -0
  23. trellio_mcp-0.1.1/src/trello_mcp/tools/comments.py +45 -0
  24. trellio_mcp-0.1.1/src/trello_mcp/tools/labels.py +50 -0
  25. trellio_mcp-0.1.1/src/trello_mcp/tools/lists.py +48 -0
  26. trellio_mcp-0.1.1/src/trello_mcp/tools/members.py +42 -0
  27. trellio_mcp-0.1.1/src/trello_mcp/tools/search.py +22 -0
  28. trellio_mcp-0.1.1/src/trello_mcp/tools/webhooks.py +77 -0
@@ -0,0 +1,276 @@
1
+ Metadata-Version: 2.4
2
+ Name: trellio-mcp
3
+ Version: 0.1.1
4
+ Summary: MCP server for Trello — manage boards, lists, cards, labels, checklists and more
5
+ Author: scaratec
6
+ License: GPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/scaratec/trellio-mcp
8
+ Project-URL: Repository, https://github.com/scaratec/trellio-mcp
9
+ Project-URL: Issues, https://github.com/scaratec/trellio-mcp/issues
10
+ Keywords: trello,mcp,model-context-protocol,claude,gemini,ai
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: mcp>=1.12.0
23
+ Requires-Dist: trellio-client>=1.0.0
24
+ Provides-Extra: dev
25
+ Requires-Dist: behave>=1.2.6; extra == "dev"
26
+
27
+ # trellio-mcp — MCP Server for Trello
28
+
29
+ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
30
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
31
+ [![MCP](https://img.shields.io/badge/MCP-stdio-green.svg)](https://modelcontextprotocol.io)
32
+
33
+ An MCP server that gives Claude Desktop, Claude Code, and
34
+ Gemini CLI full access to the Trello API. Built on the
35
+ [trellio](https://github.com/scaratec/trellio) async client
36
+ library and the official Python MCP SDK. Developed following
37
+ the [BDD Guidelines v1.8.0](https://github.com/scaratec/burn-your-code).
38
+
39
+ ## Features
40
+
41
+ - **40 MCP tools** — 1:1 mapping to trellio methods, plus
42
+ one composite `get_board_overview` tool
43
+ - **2 resource templates** — `trello://board/{id}` and
44
+ `trello://card/{id}` for rich context loading
45
+ - **3 prompts** — `summarize_board`, `create_sprint`,
46
+ `daily_standup` as workflow shortcuts
47
+ - **Built-in auth flow** — `python -m trello_mcp auth` opens
48
+ the browser, user clicks "Allow", token stored securely
49
+ - **Structured error handling** — Trello API errors are
50
+ translated into clear, actionable MCP error messages
51
+ - **stdio transport** — runs as a local subprocess, no
52
+ network surface
53
+
54
+ ## Tools
55
+
56
+ | Category | Tools | Count |
57
+ |-------------|-------|-------|
58
+ | Discovery | `list_boards`, `search` | 2 |
59
+ | Boards | `get_board_overview`, `create_board`, `get_board`, `update_board`, `delete_board` | 5 |
60
+ | Lists | `list_lists`, `create_list` | 2 |
61
+ | Cards | `list_cards`, `create_card`, `get_card`, `update_card`, `delete_card`, `add_label_to_card`, `remove_label_from_card` | 7 |
62
+ | Labels | `list_board_labels`, `create_label`, `update_label`, `delete_label` | 4 |
63
+ | Checklists | `list_card_checklists`, `create_checklist`, `delete_checklist`, `create_check_item`, `update_check_item`, `delete_check_item` | 6 |
64
+ | Comments | `list_comments`, `add_comment`, `update_comment`, `delete_comment` | 4 |
65
+ | Members | `get_me`, `list_board_members`, `get_member` | 3 |
66
+ | Attachments | `list_attachments`, `create_attachment`, `delete_attachment` | 3 |
67
+ | Webhooks | `list_webhooks`, `create_webhook`, `get_webhook`, `update_webhook`, `delete_webhook` | 5 |
68
+
69
+ Card tools support `pos` (top/bottom), `idLabels`
70
+ (comma-separated), `due` (ISO 8601), and `dueComplete`
71
+ (true/false) on create and update.
72
+
73
+ ## Prerequisites
74
+
75
+ - Python 3.10+
76
+ - A [Trello API Key](https://trello.com/power-ups/admin)
77
+ (add `http://localhost:8095` to Allowed Origins)
78
+
79
+ ## Installation
80
+
81
+ ### From PyPI (recommended)
82
+
83
+ ```bash
84
+ pip install trellio-mcp
85
+ ```
86
+
87
+ Or run without installing via `pipx` or `uvx`:
88
+
89
+ ```bash
90
+ pipx run trellio-mcp
91
+ uvx trellio-mcp
92
+ ```
93
+
94
+ ### From source
95
+
96
+ ```bash
97
+ git clone https://github.com/scaratec/trellio-mcp.git
98
+ cd trellio-mcp
99
+ python3 -m venv .venv
100
+ .venv/bin/pip install -e ".[dev]"
101
+ ```
102
+
103
+ ## Authentication
104
+
105
+ ### Interactive (recommended)
106
+
107
+ Run the auth command on each machine:
108
+
109
+ ```bash
110
+ TRELLO_API_KEY=your_api_key trellio-mcp auth
111
+ ```
112
+
113
+ If using `pipx run`:
114
+
115
+ ```bash
116
+ TRELLO_API_KEY=your_api_key pipx run trellio-mcp auth
117
+ ```
118
+
119
+ This opens a browser where you authorize the app. The token
120
+ is captured automatically and stored in
121
+ `~/.config/trellio-mcp/credentials.json` (permissions 0600).
122
+
123
+ After auth, no environment variables are needed — the server
124
+ reads stored credentials on startup.
125
+
126
+ ### Environment Variables (fallback)
127
+
128
+ If no stored credentials are found, the server falls back to
129
+ environment variables:
130
+
131
+ ```bash
132
+ export TRELLO_API_KEY=your_api_key
133
+ export TRELLO_TOKEN=your_token
134
+ ```
135
+
136
+ ## MCP Client Configuration
137
+
138
+ ### Claude Desktop
139
+
140
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`
141
+ (macOS) or `%APPDATA%\Claude\claude_desktop_config.json`
142
+ (Windows):
143
+
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "trello": {
148
+ "command": "pipx",
149
+ "args": ["run", "trellio-mcp"]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ If using env var auth instead of stored credentials, add:
156
+
157
+ ```json
158
+ "env": {
159
+ "TRELLO_API_KEY": "your_api_key",
160
+ "TRELLO_TOKEN": "your_token"
161
+ }
162
+ ```
163
+
164
+ ### Claude Code
165
+
166
+ Add to `~/.claude/settings.json` or project
167
+ `.claude/settings.json`:
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "trello": {
173
+ "command": "pipx",
174
+ "args": ["run", "trellio-mcp"]
175
+ }
176
+ }
177
+ }
178
+ ```
179
+
180
+ ### Gemini CLI
181
+
182
+ Add to `~/.gemini/settings.json`:
183
+
184
+ ```json
185
+ {
186
+ "mcpServers": {
187
+ "trello": {
188
+ "command": "pipx",
189
+ "args": ["run", "trellio-mcp"]
190
+ }
191
+ }
192
+ }
193
+ ```
194
+
195
+ ## Architecture
196
+
197
+ ```
198
+ MCP Client (Claude / Gemini)
199
+ │ stdio (JSON-RPC)
200
+
201
+ trellio-mcp (FastMCP)
202
+ │ async/await
203
+
204
+ trellio (httpx)
205
+ │ HTTPS
206
+
207
+ Trello API
208
+ ```
209
+
210
+ **Key decisions** (documented in `docs/adr/`):
211
+
212
+ | ADR | Decision |
213
+ |-----|----------|
214
+ | 001 | Python MCP SDK for language alignment with trellio |
215
+ | 002 | stdio transport — no network attack surface |
216
+ | 003 | Stored credentials with env var fallback |
217
+ | 004 | 1:1 tool mapping — one tool per trellio method |
218
+ | 005 | trellio as Git dependency pinned to v1.0.0 |
219
+ | 006 | Tools + Resources + Prompts as MCP capabilities |
220
+ | 007 | `isError=true` + structured error content |
221
+
222
+ ## Testing
223
+
224
+ The project uses BDD with
225
+ [behave](https://behave.readthedocs.io/), following the
226
+ [BDD Guidelines v1.8.0](https://github.com/scaratec/burn-your-code).
227
+
228
+ ```bash
229
+ PYTHONPATH=src .venv/bin/python -m behave
230
+ ```
231
+
232
+ ```
233
+ 15 features passed, 0 failed, 0 skipped
234
+ 122 scenarios passed, 0 failed, 0 skipped
235
+ 732 steps passed, 0 failed, 0 skipped
236
+ ```
237
+
238
+ Test architecture:
239
+ - `AsyncMock(spec=TrellioClient)` — mock at the client
240
+ boundary, not HTTP
241
+ - Persistence validation via mock call records (§4.3)
242
+ - Anti-hardcoding via Scenario Outlines with >= 2 variants
243
+ (§2.3)
244
+ - Layer-by-layer failure path enumeration: 11 error scenarios
245
+ (§4.5)
246
+ - Independent spec audit per §13
247
+
248
+ See [Case Study](docs/case-study-bdd-mcp-server.md) for a
249
+ detailed account of the BDD-driven development process.
250
+
251
+ ## Project Structure
252
+
253
+ ```
254
+ trellio-mcp/
255
+ ├── src/trello_mcp/
256
+ │ ├── __init__.py # Tool registration
257
+ │ ├── __main__.py # Entry point (server + auth)
258
+ │ ├── server.py # FastMCP instance + client mgmt
259
+ │ ├── auth.py # OAuth flow + credential storage
260
+ │ ├── errors.py # Error translation (ADR 007)
261
+ │ ├── tools/ # 10 modules, 40 tools
262
+ │ ├── resources.py # 2 resource templates
263
+ │ └── prompts.py # 3 prompts
264
+ ├── features/ # 15 BDD feature files
265
+ │ └── steps/ # Step definitions
266
+ ├── docs/
267
+ │ ├── adr/ # 7 Architecture Decision Records
268
+ │ ├── tool-design.md # Scenario-driven tool analysis
269
+ │ └── case-study-bdd-mcp-server.md
270
+ └── pyproject.toml
271
+ ```
272
+
273
+ ## License
274
+
275
+ This project is licensed under the GNU General Public License
276
+ v3.0 — see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,250 @@
1
+ # trellio-mcp — MCP Server for Trello
2
+
3
+ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
+ [![MCP](https://img.shields.io/badge/MCP-stdio-green.svg)](https://modelcontextprotocol.io)
6
+
7
+ An MCP server that gives Claude Desktop, Claude Code, and
8
+ Gemini CLI full access to the Trello API. Built on the
9
+ [trellio](https://github.com/scaratec/trellio) async client
10
+ library and the official Python MCP SDK. Developed following
11
+ the [BDD Guidelines v1.8.0](https://github.com/scaratec/burn-your-code).
12
+
13
+ ## Features
14
+
15
+ - **40 MCP tools** — 1:1 mapping to trellio methods, plus
16
+ one composite `get_board_overview` tool
17
+ - **2 resource templates** — `trello://board/{id}` and
18
+ `trello://card/{id}` for rich context loading
19
+ - **3 prompts** — `summarize_board`, `create_sprint`,
20
+ `daily_standup` as workflow shortcuts
21
+ - **Built-in auth flow** — `python -m trello_mcp auth` opens
22
+ the browser, user clicks "Allow", token stored securely
23
+ - **Structured error handling** — Trello API errors are
24
+ translated into clear, actionable MCP error messages
25
+ - **stdio transport** — runs as a local subprocess, no
26
+ network surface
27
+
28
+ ## Tools
29
+
30
+ | Category | Tools | Count |
31
+ |-------------|-------|-------|
32
+ | Discovery | `list_boards`, `search` | 2 |
33
+ | Boards | `get_board_overview`, `create_board`, `get_board`, `update_board`, `delete_board` | 5 |
34
+ | Lists | `list_lists`, `create_list` | 2 |
35
+ | Cards | `list_cards`, `create_card`, `get_card`, `update_card`, `delete_card`, `add_label_to_card`, `remove_label_from_card` | 7 |
36
+ | Labels | `list_board_labels`, `create_label`, `update_label`, `delete_label` | 4 |
37
+ | Checklists | `list_card_checklists`, `create_checklist`, `delete_checklist`, `create_check_item`, `update_check_item`, `delete_check_item` | 6 |
38
+ | Comments | `list_comments`, `add_comment`, `update_comment`, `delete_comment` | 4 |
39
+ | Members | `get_me`, `list_board_members`, `get_member` | 3 |
40
+ | Attachments | `list_attachments`, `create_attachment`, `delete_attachment` | 3 |
41
+ | Webhooks | `list_webhooks`, `create_webhook`, `get_webhook`, `update_webhook`, `delete_webhook` | 5 |
42
+
43
+ Card tools support `pos` (top/bottom), `idLabels`
44
+ (comma-separated), `due` (ISO 8601), and `dueComplete`
45
+ (true/false) on create and update.
46
+
47
+ ## Prerequisites
48
+
49
+ - Python 3.10+
50
+ - A [Trello API Key](https://trello.com/power-ups/admin)
51
+ (add `http://localhost:8095` to Allowed Origins)
52
+
53
+ ## Installation
54
+
55
+ ### From PyPI (recommended)
56
+
57
+ ```bash
58
+ pip install trellio-mcp
59
+ ```
60
+
61
+ Or run without installing via `pipx` or `uvx`:
62
+
63
+ ```bash
64
+ pipx run trellio-mcp
65
+ uvx trellio-mcp
66
+ ```
67
+
68
+ ### From source
69
+
70
+ ```bash
71
+ git clone https://github.com/scaratec/trellio-mcp.git
72
+ cd trellio-mcp
73
+ python3 -m venv .venv
74
+ .venv/bin/pip install -e ".[dev]"
75
+ ```
76
+
77
+ ## Authentication
78
+
79
+ ### Interactive (recommended)
80
+
81
+ Run the auth command on each machine:
82
+
83
+ ```bash
84
+ TRELLO_API_KEY=your_api_key trellio-mcp auth
85
+ ```
86
+
87
+ If using `pipx run`:
88
+
89
+ ```bash
90
+ TRELLO_API_KEY=your_api_key pipx run trellio-mcp auth
91
+ ```
92
+
93
+ This opens a browser where you authorize the app. The token
94
+ is captured automatically and stored in
95
+ `~/.config/trellio-mcp/credentials.json` (permissions 0600).
96
+
97
+ After auth, no environment variables are needed — the server
98
+ reads stored credentials on startup.
99
+
100
+ ### Environment Variables (fallback)
101
+
102
+ If no stored credentials are found, the server falls back to
103
+ environment variables:
104
+
105
+ ```bash
106
+ export TRELLO_API_KEY=your_api_key
107
+ export TRELLO_TOKEN=your_token
108
+ ```
109
+
110
+ ## MCP Client Configuration
111
+
112
+ ### Claude Desktop
113
+
114
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`
115
+ (macOS) or `%APPDATA%\Claude\claude_desktop_config.json`
116
+ (Windows):
117
+
118
+ ```json
119
+ {
120
+ "mcpServers": {
121
+ "trello": {
122
+ "command": "pipx",
123
+ "args": ["run", "trellio-mcp"]
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ If using env var auth instead of stored credentials, add:
130
+
131
+ ```json
132
+ "env": {
133
+ "TRELLO_API_KEY": "your_api_key",
134
+ "TRELLO_TOKEN": "your_token"
135
+ }
136
+ ```
137
+
138
+ ### Claude Code
139
+
140
+ Add to `~/.claude/settings.json` or project
141
+ `.claude/settings.json`:
142
+
143
+ ```json
144
+ {
145
+ "mcpServers": {
146
+ "trello": {
147
+ "command": "pipx",
148
+ "args": ["run", "trellio-mcp"]
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### Gemini CLI
155
+
156
+ Add to `~/.gemini/settings.json`:
157
+
158
+ ```json
159
+ {
160
+ "mcpServers": {
161
+ "trello": {
162
+ "command": "pipx",
163
+ "args": ["run", "trellio-mcp"]
164
+ }
165
+ }
166
+ }
167
+ ```
168
+
169
+ ## Architecture
170
+
171
+ ```
172
+ MCP Client (Claude / Gemini)
173
+ │ stdio (JSON-RPC)
174
+
175
+ trellio-mcp (FastMCP)
176
+ │ async/await
177
+
178
+ trellio (httpx)
179
+ │ HTTPS
180
+
181
+ Trello API
182
+ ```
183
+
184
+ **Key decisions** (documented in `docs/adr/`):
185
+
186
+ | ADR | Decision |
187
+ |-----|----------|
188
+ | 001 | Python MCP SDK for language alignment with trellio |
189
+ | 002 | stdio transport — no network attack surface |
190
+ | 003 | Stored credentials with env var fallback |
191
+ | 004 | 1:1 tool mapping — one tool per trellio method |
192
+ | 005 | trellio as Git dependency pinned to v1.0.0 |
193
+ | 006 | Tools + Resources + Prompts as MCP capabilities |
194
+ | 007 | `isError=true` + structured error content |
195
+
196
+ ## Testing
197
+
198
+ The project uses BDD with
199
+ [behave](https://behave.readthedocs.io/), following the
200
+ [BDD Guidelines v1.8.0](https://github.com/scaratec/burn-your-code).
201
+
202
+ ```bash
203
+ PYTHONPATH=src .venv/bin/python -m behave
204
+ ```
205
+
206
+ ```
207
+ 15 features passed, 0 failed, 0 skipped
208
+ 122 scenarios passed, 0 failed, 0 skipped
209
+ 732 steps passed, 0 failed, 0 skipped
210
+ ```
211
+
212
+ Test architecture:
213
+ - `AsyncMock(spec=TrellioClient)` — mock at the client
214
+ boundary, not HTTP
215
+ - Persistence validation via mock call records (§4.3)
216
+ - Anti-hardcoding via Scenario Outlines with >= 2 variants
217
+ (§2.3)
218
+ - Layer-by-layer failure path enumeration: 11 error scenarios
219
+ (§4.5)
220
+ - Independent spec audit per §13
221
+
222
+ See [Case Study](docs/case-study-bdd-mcp-server.md) for a
223
+ detailed account of the BDD-driven development process.
224
+
225
+ ## Project Structure
226
+
227
+ ```
228
+ trellio-mcp/
229
+ ├── src/trello_mcp/
230
+ │ ├── __init__.py # Tool registration
231
+ │ ├── __main__.py # Entry point (server + auth)
232
+ │ ├── server.py # FastMCP instance + client mgmt
233
+ │ ├── auth.py # OAuth flow + credential storage
234
+ │ ├── errors.py # Error translation (ADR 007)
235
+ │ ├── tools/ # 10 modules, 40 tools
236
+ │ ├── resources.py # 2 resource templates
237
+ │ └── prompts.py # 3 prompts
238
+ ├── features/ # 15 BDD feature files
239
+ │ └── steps/ # Step definitions
240
+ ├── docs/
241
+ │ ├── adr/ # 7 Architecture Decision Records
242
+ │ ├── tool-design.md # Scenario-driven tool analysis
243
+ │ └── case-study-bdd-mcp-server.md
244
+ └── pyproject.toml
245
+ ```
246
+
247
+ ## License
248
+
249
+ This project is licensed under the GNU General Public License
250
+ v3.0 — see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,46 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "trellio-mcp"
7
+ version = "0.1.1"
8
+ description = "MCP server for Trello — manage boards, lists, cards, labels, checklists and more"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = {text = "GPL-3.0-or-later"}
12
+ authors = [
13
+ {name = "scaratec"},
14
+ ]
15
+ keywords = ["trello", "mcp", "model-context-protocol", "claude", "gemini", "ai"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Topic :: Software Development :: Libraries",
26
+ ]
27
+ dependencies = [
28
+ "mcp>=1.12.0",
29
+ "trellio-client>=1.0.0",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/scaratec/trellio-mcp"
34
+ Repository = "https://github.com/scaratec/trellio-mcp"
35
+ Issues = "https://github.com/scaratec/trellio-mcp/issues"
36
+
37
+ [project.scripts]
38
+ trellio-mcp = "trello_mcp.__main__:main"
39
+
40
+ [project.optional-dependencies]
41
+ dev = [
42
+ "behave>=1.2.6",
43
+ ]
44
+
45
+ [tool.setuptools.packages.find]
46
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+