beads-mcp 0.9.4__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.
- beads_mcp-0.9.4/.beads/test-init.db +0 -0
- beads_mcp-0.9.4/.gitignore +14 -0
- beads_mcp-0.9.4/.python-version +1 -0
- beads_mcp-0.9.4/LICENSE +21 -0
- beads_mcp-0.9.4/PKG-INFO +119 -0
- beads_mcp-0.9.4/PYPI.md +179 -0
- beads_mcp-0.9.4/README.md +91 -0
- beads_mcp-0.9.4/pyproject.toml +91 -0
- beads_mcp-0.9.4/src/beads_mcp/__init__.py +7 -0
- beads_mcp-0.9.4/src/beads_mcp/__main__.py +6 -0
- beads_mcp-0.9.4/src/beads_mcp/bd_client.py +496 -0
- beads_mcp-0.9.4/src/beads_mcp/config.py +132 -0
- beads_mcp-0.9.4/src/beads_mcp/models.py +151 -0
- beads_mcp-0.9.4/src/beads_mcp/server.py +206 -0
- beads_mcp-0.9.4/src/beads_mcp/tools.py +256 -0
- beads_mcp-0.9.4/tests/__init__.py +1 -0
- beads_mcp-0.9.4/tests/test_bd_client.py +612 -0
- beads_mcp-0.9.4/tests/test_bd_client_integration.py +399 -0
- beads_mcp-0.9.4/tests/test_config.py +129 -0
- beads_mcp-0.9.4/tests/test_mcp_server_integration.py +524 -0
- beads_mcp-0.9.4/tests/test_tools.py +364 -0
- beads_mcp-0.9.4/uv.lock +1544 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
beads_mcp-0.9.4/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Beads Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
beads_mcp-0.9.4/PKG-INFO
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: beads-mcp
|
|
3
|
+
Version: 0.9.4
|
|
4
|
+
Summary: MCP server for beads issue tracker.
|
|
5
|
+
Project-URL: Homepage, https://github.com/steveyegge/beads
|
|
6
|
+
Project-URL: Repository, https://github.com/steveyegge/beads
|
|
7
|
+
Project-URL: Documentation, https://github.com/steveyegge/beads/blob/main/integrations/beads-mcp/README.md
|
|
8
|
+
Project-URL: Issues, https://github.com/steveyegge/beads/issues
|
|
9
|
+
Author: Beads Contributors
|
|
10
|
+
Maintainer: Beads Contributors
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: ai-agent,beads,claude,issue-tracker,mcp,model-context-protocol
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: Bug Tracking
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Requires-Dist: fastmcp==2.12.4
|
|
25
|
+
Requires-Dist: pydantic-settings==2.11.0
|
|
26
|
+
Requires-Dist: pydantic==2.12.0
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# beads-mcp
|
|
30
|
+
|
|
31
|
+
MCP server for [beads](https://github.com/steveyegge/beads) issue tracker and agentic memory system.
|
|
32
|
+
Enables AI agents to manage tasks using bd CLI through Model Context Protocol.
|
|
33
|
+
|
|
34
|
+
## Installing
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git clone https://github.com/steveyegge/beads
|
|
38
|
+
cd beads/integrations/beads-mcp
|
|
39
|
+
uv sync
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Add to your Claude Desktop config:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"beads": {
|
|
48
|
+
"command": "uv",
|
|
49
|
+
"args": [
|
|
50
|
+
"--directory",
|
|
51
|
+
"/path/to/beads-mcp",
|
|
52
|
+
"run",
|
|
53
|
+
"beads-mcp"
|
|
54
|
+
],
|
|
55
|
+
"env": {
|
|
56
|
+
"BEADS_PATH": "/home/user/.local/bin/bd",
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Environment Variables** (all optional):
|
|
64
|
+
- `BEADS_PATH` - Path to bd executable (default: `~/.local/bin/bd`)
|
|
65
|
+
- `BEADS_DB` - Path to beads database file (default: auto-discover from cwd)
|
|
66
|
+
- `BEADS_ACTOR` - Actor name for audit trail (default: `$USER`)
|
|
67
|
+
- `BEADS_NO_AUTO_FLUSH` - Disable automatic JSONL sync (default: `false`)
|
|
68
|
+
- `BEADS_NO_AUTO_IMPORT` - Disable automatic JSONL import (default: `false`)
|
|
69
|
+
|
|
70
|
+
## Features
|
|
71
|
+
|
|
72
|
+
**Resource:**
|
|
73
|
+
- `beads://quickstart` - Quickstart guide for using beads
|
|
74
|
+
|
|
75
|
+
**Tools:**
|
|
76
|
+
- `init` - Initialize bd in current directory
|
|
77
|
+
- `create` - Create new issue (bug, feature, task, epic, chore)
|
|
78
|
+
- `list` - List issues with filters (status, priority, type, assignee)
|
|
79
|
+
- `ready` - Find tasks with no blockers ready to work on
|
|
80
|
+
- `show` - Show detailed issue info including dependencies
|
|
81
|
+
- `update` - Update issue (status, priority, design, notes, etc)
|
|
82
|
+
- `close` - Close completed issue
|
|
83
|
+
- `dep` - Add dependency (blocks, related, parent-child, discovered-from)
|
|
84
|
+
- `blocked` - Get blocked issues
|
|
85
|
+
- `stats` - Get project statistics
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Development
|
|
89
|
+
|
|
90
|
+
Run MCP inspector:
|
|
91
|
+
```bash
|
|
92
|
+
# inside beads-mcp dir
|
|
93
|
+
uv run fastmcp dev src/beads_mcp/server.py
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Type checking:
|
|
97
|
+
```bash
|
|
98
|
+
uv run mypy src/beads_mcp
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Linting and formatting:
|
|
102
|
+
```bash
|
|
103
|
+
uv run ruff check src/beads_mcp
|
|
104
|
+
uv run ruff format src/beads_mcp
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Testing
|
|
108
|
+
|
|
109
|
+
Run all tests:
|
|
110
|
+
```bash
|
|
111
|
+
uv run pytest
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
With coverage:
|
|
115
|
+
```bash
|
|
116
|
+
uv run pytest --cov=beads_mcp tests/
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Test suite includes both mocked unit tests and integration tests with real `bd` CLI.
|
beads_mcp-0.9.4/PYPI.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Publishing beads-mcp to PyPI
|
|
2
|
+
|
|
3
|
+
This guide covers how to build and publish the beads-mcp package to the Python Package Index (PyPI).
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
1. **PyPI Account**: Create accounts on both:
|
|
8
|
+
- Test PyPI: https://test.pypi.org/account/register/
|
|
9
|
+
- PyPI: https://pypi.org/account/register/
|
|
10
|
+
|
|
11
|
+
2. **API Tokens**: Generate API tokens for authentication:
|
|
12
|
+
- Test PyPI: https://test.pypi.org/manage/account/token/
|
|
13
|
+
- PyPI: https://pypi.org/manage/account/token/
|
|
14
|
+
|
|
15
|
+
3. **Build Tools**: Install the Python build tools:
|
|
16
|
+
```bash
|
|
17
|
+
uv pip install --upgrade build twine
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Building the Package
|
|
21
|
+
|
|
22
|
+
1. **Clean previous builds** (if any):
|
|
23
|
+
```bash
|
|
24
|
+
rm -rf dist/ build/ src/*.egg-info
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
2. **Build the distribution packages**:
|
|
28
|
+
```bash
|
|
29
|
+
python -m build
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This creates both:
|
|
33
|
+
- `dist/beads_mcp-0.9.4-py3-none-any.whl` (wheel)
|
|
34
|
+
- `dist/beads-mcp-0.9.4.tar.gz` (source distribution)
|
|
35
|
+
|
|
36
|
+
3. **Verify the build**:
|
|
37
|
+
```bash
|
|
38
|
+
tar -tzf dist/beads-mcp-0.9.4.tar.gz
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Should include:
|
|
42
|
+
- Source files in `src/beads_mcp/`
|
|
43
|
+
- `README.md`
|
|
44
|
+
- `LICENSE`
|
|
45
|
+
- `pyproject.toml`
|
|
46
|
+
|
|
47
|
+
## Testing the Package
|
|
48
|
+
|
|
49
|
+
### Test on Test PyPI First
|
|
50
|
+
|
|
51
|
+
1. **Upload to Test PyPI**:
|
|
52
|
+
```bash
|
|
53
|
+
python -m twine upload --repository testpypi dist/*
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
When prompted, use:
|
|
57
|
+
- Username: `__token__`
|
|
58
|
+
- Password: Your Test PyPI API token (including the `pypi-` prefix)
|
|
59
|
+
|
|
60
|
+
2. **Install from Test PyPI**:
|
|
61
|
+
```bash
|
|
62
|
+
# In a fresh virtual environment
|
|
63
|
+
uv venv test-env
|
|
64
|
+
source test-env/bin/activate
|
|
65
|
+
|
|
66
|
+
# Install from Test PyPI
|
|
67
|
+
pip install --index-url https://test.pypi.org/simple/ beads-mcp
|
|
68
|
+
|
|
69
|
+
# Test it works
|
|
70
|
+
beads-mcp --help
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
3. **Verify the installation**:
|
|
74
|
+
```bash
|
|
75
|
+
python -c "import beads_mcp; print(beads_mcp.__version__)"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Publishing to PyPI
|
|
79
|
+
|
|
80
|
+
Once you've verified the package works on Test PyPI:
|
|
81
|
+
|
|
82
|
+
1. **Upload to PyPI**:
|
|
83
|
+
```bash
|
|
84
|
+
python -m twine upload dist/*
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Use:
|
|
88
|
+
- Username: `__token__`
|
|
89
|
+
- Password: Your PyPI API token
|
|
90
|
+
|
|
91
|
+
2. **Verify on PyPI**:
|
|
92
|
+
- Visit https://pypi.org/project/beads-mcp/
|
|
93
|
+
- Check that the README displays correctly
|
|
94
|
+
- Verify all metadata is correct
|
|
95
|
+
|
|
96
|
+
3. **Test installation**:
|
|
97
|
+
```bash
|
|
98
|
+
# In a fresh environment
|
|
99
|
+
pip install beads-mcp
|
|
100
|
+
beads-mcp --help
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Updating the README Installation Instructions
|
|
104
|
+
|
|
105
|
+
After publishing, users can install simply with:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
pip install beads-mcp
|
|
109
|
+
# or with uv
|
|
110
|
+
uv pip install beads-mcp
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Update the README.md to reflect this simpler installation method.
|
|
114
|
+
|
|
115
|
+
## Version Management
|
|
116
|
+
|
|
117
|
+
When releasing a new version:
|
|
118
|
+
|
|
119
|
+
1. Update version in `src/beads_mcp/__init__.py`
|
|
120
|
+
2. Update version in `pyproject.toml`
|
|
121
|
+
3. Use the version bump script from the parent project:
|
|
122
|
+
```bash
|
|
123
|
+
cd ../..
|
|
124
|
+
./scripts/bump-version.sh 0.9.5 --commit
|
|
125
|
+
```
|
|
126
|
+
4. Create a git tag:
|
|
127
|
+
```bash
|
|
128
|
+
git tag v0.9.5
|
|
129
|
+
git push origin v0.9.5
|
|
130
|
+
```
|
|
131
|
+
5. Clean, rebuild, and republish to PyPI
|
|
132
|
+
|
|
133
|
+
## Troubleshooting
|
|
134
|
+
|
|
135
|
+
### Package Already Exists
|
|
136
|
+
|
|
137
|
+
PyPI doesn't allow re-uploading the same version. If you need to fix something:
|
|
138
|
+
1. Increment the version number (even for minor fixes)
|
|
139
|
+
2. Rebuild and re-upload
|
|
140
|
+
|
|
141
|
+
### Missing Files in Distribution
|
|
142
|
+
|
|
143
|
+
If files are missing from the built package, create a `MANIFEST.in`:
|
|
144
|
+
```
|
|
145
|
+
include README.md
|
|
146
|
+
include LICENSE
|
|
147
|
+
recursive-include src/beads_mcp *.py
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Authentication Errors
|
|
151
|
+
|
|
152
|
+
- Ensure you're using `__token__` as the username (exactly)
|
|
153
|
+
- Token should include the `pypi-` prefix
|
|
154
|
+
- Check token hasn't expired
|
|
155
|
+
|
|
156
|
+
### Test PyPI vs Production
|
|
157
|
+
|
|
158
|
+
Test PyPI is completely separate from production PyPI:
|
|
159
|
+
- Different accounts
|
|
160
|
+
- Different tokens
|
|
161
|
+
- Different package versions (can have different versions on each)
|
|
162
|
+
|
|
163
|
+
Always test on Test PyPI first!
|
|
164
|
+
|
|
165
|
+
## Continuous Deployment (Future)
|
|
166
|
+
|
|
167
|
+
Consider setting up GitHub Actions to automate this:
|
|
168
|
+
1. On tag push (e.g., `v0.9.5`)
|
|
169
|
+
2. Run tests
|
|
170
|
+
3. Build package
|
|
171
|
+
4. Publish to PyPI
|
|
172
|
+
|
|
173
|
+
See `.github/workflows/` in the parent project for examples.
|
|
174
|
+
|
|
175
|
+
## Resources
|
|
176
|
+
|
|
177
|
+
- [Python Packaging Guide](https://packaging.python.org/tutorials/packaging-projects/)
|
|
178
|
+
- [PyPI Documentation](https://pypi.org/help/)
|
|
179
|
+
- [Twine Documentation](https://twine.readthedocs.io/)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# beads-mcp
|
|
2
|
+
|
|
3
|
+
MCP server for [beads](https://github.com/steveyegge/beads) issue tracker and agentic memory system.
|
|
4
|
+
Enables AI agents to manage tasks using bd CLI through Model Context Protocol.
|
|
5
|
+
|
|
6
|
+
## Installing
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
git clone https://github.com/steveyegge/beads
|
|
10
|
+
cd beads/integrations/beads-mcp
|
|
11
|
+
uv sync
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Add to your Claude Desktop config:
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"mcpServers": {
|
|
19
|
+
"beads": {
|
|
20
|
+
"command": "uv",
|
|
21
|
+
"args": [
|
|
22
|
+
"--directory",
|
|
23
|
+
"/path/to/beads-mcp",
|
|
24
|
+
"run",
|
|
25
|
+
"beads-mcp"
|
|
26
|
+
],
|
|
27
|
+
"env": {
|
|
28
|
+
"BEADS_PATH": "/home/user/.local/bin/bd",
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Environment Variables** (all optional):
|
|
36
|
+
- `BEADS_PATH` - Path to bd executable (default: `~/.local/bin/bd`)
|
|
37
|
+
- `BEADS_DB` - Path to beads database file (default: auto-discover from cwd)
|
|
38
|
+
- `BEADS_ACTOR` - Actor name for audit trail (default: `$USER`)
|
|
39
|
+
- `BEADS_NO_AUTO_FLUSH` - Disable automatic JSONL sync (default: `false`)
|
|
40
|
+
- `BEADS_NO_AUTO_IMPORT` - Disable automatic JSONL import (default: `false`)
|
|
41
|
+
|
|
42
|
+
## Features
|
|
43
|
+
|
|
44
|
+
**Resource:**
|
|
45
|
+
- `beads://quickstart` - Quickstart guide for using beads
|
|
46
|
+
|
|
47
|
+
**Tools:**
|
|
48
|
+
- `init` - Initialize bd in current directory
|
|
49
|
+
- `create` - Create new issue (bug, feature, task, epic, chore)
|
|
50
|
+
- `list` - List issues with filters (status, priority, type, assignee)
|
|
51
|
+
- `ready` - Find tasks with no blockers ready to work on
|
|
52
|
+
- `show` - Show detailed issue info including dependencies
|
|
53
|
+
- `update` - Update issue (status, priority, design, notes, etc)
|
|
54
|
+
- `close` - Close completed issue
|
|
55
|
+
- `dep` - Add dependency (blocks, related, parent-child, discovered-from)
|
|
56
|
+
- `blocked` - Get blocked issues
|
|
57
|
+
- `stats` - Get project statistics
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Development
|
|
61
|
+
|
|
62
|
+
Run MCP inspector:
|
|
63
|
+
```bash
|
|
64
|
+
# inside beads-mcp dir
|
|
65
|
+
uv run fastmcp dev src/beads_mcp/server.py
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Type checking:
|
|
69
|
+
```bash
|
|
70
|
+
uv run mypy src/beads_mcp
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Linting and formatting:
|
|
74
|
+
```bash
|
|
75
|
+
uv run ruff check src/beads_mcp
|
|
76
|
+
uv run ruff format src/beads_mcp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Testing
|
|
80
|
+
|
|
81
|
+
Run all tests:
|
|
82
|
+
```bash
|
|
83
|
+
uv run pytest
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
With coverage:
|
|
87
|
+
```bash
|
|
88
|
+
uv run pytest --cov=beads_mcp tests/
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Test suite includes both mocked unit tests and integration tests with real `bd` CLI.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "beads-mcp"
|
|
3
|
+
version = "0.9.4"
|
|
4
|
+
description = "MCP server for beads issue tracker."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = {text = "MIT"}
|
|
8
|
+
dependencies = [
|
|
9
|
+
"fastmcp==2.12.4",
|
|
10
|
+
"pydantic==2.12.0",
|
|
11
|
+
"pydantic-settings==2.11.0",
|
|
12
|
+
]
|
|
13
|
+
authors = [
|
|
14
|
+
{name = "Beads Contributors"}
|
|
15
|
+
]
|
|
16
|
+
maintainers = [
|
|
17
|
+
{name = "Beads Contributors"}
|
|
18
|
+
]
|
|
19
|
+
keywords = ["beads", "mcp", "claude", "issue-tracker", "ai-agent", "model-context-protocol"]
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Development Status :: 3 - Alpha",
|
|
22
|
+
"Intended Audience :: Developers",
|
|
23
|
+
"License :: OSI Approved :: MIT License",
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: 3.11",
|
|
26
|
+
"Programming Language :: Python :: 3.12",
|
|
27
|
+
"Programming Language :: Python :: 3.13",
|
|
28
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
29
|
+
"Topic :: Software Development :: Bug Tracking",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.urls]
|
|
33
|
+
Homepage = "https://github.com/steveyegge/beads"
|
|
34
|
+
Repository = "https://github.com/steveyegge/beads"
|
|
35
|
+
Documentation = "https://github.com/steveyegge/beads/blob/main/integrations/beads-mcp/README.md"
|
|
36
|
+
Issues = "https://github.com/steveyegge/beads/issues"
|
|
37
|
+
|
|
38
|
+
[project.scripts]
|
|
39
|
+
beads-mcp = "beads_mcp.server:main"
|
|
40
|
+
|
|
41
|
+
[build-system]
|
|
42
|
+
requires = ["hatchling"]
|
|
43
|
+
build-backend = "hatchling.build"
|
|
44
|
+
|
|
45
|
+
[tool.mypy]
|
|
46
|
+
strict = true
|
|
47
|
+
warn_return_any = true
|
|
48
|
+
warn_unused_configs = true
|
|
49
|
+
disallow_untyped_defs = true
|
|
50
|
+
disallow_any_generics = true
|
|
51
|
+
check_untyped_defs = true
|
|
52
|
+
no_implicit_optional = true
|
|
53
|
+
warn_redundant_casts = true
|
|
54
|
+
warn_unused_ignores = true
|
|
55
|
+
warn_no_return = true
|
|
56
|
+
warn_unreachable = true
|
|
57
|
+
|
|
58
|
+
[tool.ruff]
|
|
59
|
+
target-version = "py311"
|
|
60
|
+
line-length = 115
|
|
61
|
+
|
|
62
|
+
[tool.ruff.lint]
|
|
63
|
+
select = [
|
|
64
|
+
"E",
|
|
65
|
+
"W",
|
|
66
|
+
"F",
|
|
67
|
+
"I",
|
|
68
|
+
"UP",
|
|
69
|
+
"B",
|
|
70
|
+
"SIM",
|
|
71
|
+
"C4",
|
|
72
|
+
]
|
|
73
|
+
ignore = []
|
|
74
|
+
|
|
75
|
+
[tool.ruff.format]
|
|
76
|
+
quote-style = "double"
|
|
77
|
+
indent-style = "space"
|
|
78
|
+
|
|
79
|
+
[tool.pytest.ini_options]
|
|
80
|
+
testpaths = ["tests"]
|
|
81
|
+
asyncio_mode = "auto"
|
|
82
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
83
|
+
|
|
84
|
+
[dependency-groups]
|
|
85
|
+
dev = [
|
|
86
|
+
"mypy>=1.18.2",
|
|
87
|
+
"pytest>=8.4.2",
|
|
88
|
+
"pytest-asyncio>=1.2.0",
|
|
89
|
+
"pytest-cov>=7.0.0",
|
|
90
|
+
"ruff>=0.14.0",
|
|
91
|
+
]
|