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.
Binary file
@@ -0,0 +1,14 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ build/
4
+ dist/
5
+ wheels/
6
+ *.egg-info
7
+ __pycache__
8
+
9
+ # Virtual environments
10
+ .venv
11
+ /.env
12
+ /CLAUDE.md
13
+ /TODO.md
14
+ /.coverage
@@ -0,0 +1 @@
1
+ 3.13
@@ -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.
@@ -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.
@@ -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
+ ]
@@ -0,0 +1,7 @@
1
+ """MCP Server for Beads Agentic Task Tracker and Memory System
2
+
3
+ This package provides an MCP (Model Context Protocol) server that exposes
4
+ beads (bd) issue tracker functionality to MCP Clients.
5
+ """
6
+
7
+ __version__ = "0.9.4"
@@ -0,0 +1,6 @@
1
+ """Entry point for running beads_mcp as a module."""
2
+
3
+ from beads_mcp.server import main
4
+
5
+ if __name__ == "__main__":
6
+ main()