decibel-tools-mcp 1.0.0 → 1.0.2
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.
- package/README.md +231 -274
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,78 +1,49 @@
|
|
|
1
1
|
# decibel-tools-mcp
|
|
2
2
|
|
|
3
|
-
MCP
|
|
3
|
+
MCP server that gives AI assistants structured access to project intelligence: epics, issues, ADRs, experiments, roadmaps, and more.
|
|
4
|
+
|
|
5
|
+
**92 tools** across 14 domains. Tested with Claude Desktop and Cursor.
|
|
4
6
|
|
|
5
7
|
<a href="cursor://anysphere.cursor-deeplink/mcp/install?name=decibel-tools&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImRlY2liZWwtdG9vbHMtbWNwIl19">
|
|
6
|
-
<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add
|
|
8
|
+
<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />
|
|
7
9
|
</a>
|
|
8
10
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
| Domain | Purpose | Example Tools |
|
|
14
|
+
|--------|---------|---------------|
|
|
15
|
+
| **Sentinel** | Work tracking | `sentinel_create_issue`, `sentinel_log_epic`, `sentinel_list_epics` |
|
|
16
|
+
| **Dojo** | AI incubator | `dojo_add_wish`, `dojo_create_proposal`, `dojo_run_experiment` |
|
|
17
|
+
| **Architect** | Decisions | `architect_createAdr`, `architect_createPolicy` |
|
|
18
|
+
| **Roadmap** | Strategy | `roadmap_get`, `roadmap_getHealth`, `roadmap_linkEpic` |
|
|
19
|
+
| **Oracle** | Recommendations | `oracle_next_actions`, `oracle_roadmap` |
|
|
20
|
+
| **Designer** | Design decisions | `designer_record_design_decision`, `designer_crit` |
|
|
21
|
+
| **Friction** | Pain points | `friction_log`, `friction_bump`, `friction_resolve` |
|
|
22
|
+
| **Learnings** | Knowledge base | `learnings_append`, `learnings_list` |
|
|
23
|
+
| **Voice** | Voice commands | `voice_inbox_sync`, `voice_inbox_list`, `voice_command` |
|
|
24
|
+
| **Context** | AI memory | `decibel_context_pin`, `decibel_context_refresh` |
|
|
25
|
+
| **Studio** | Asset generation | `studio_generate_image`, `studio_list_projects` |
|
|
26
|
+
| **Registry** | Project management | `project_init`, `registry_list`, `registry_add` |
|
|
27
|
+
| **Agentic** | Config compilation | `agentic_compile_pack`, `agentic_render` |
|
|
28
|
+
| **Provenance** | Audit trail | `provenance_list` |
|
|
16
29
|
|
|
17
30
|
## Quick Start
|
|
18
31
|
|
|
19
|
-
### Installation
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Development
|
|
26
|
-
|
|
27
|
-
Run the server in development mode:
|
|
28
|
-
|
|
29
32
|
```bash
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
### Production Build
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
npm run build
|
|
37
|
-
npm start
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Testing
|
|
41
|
-
|
|
42
|
-
Run the test script to verify all tools work:
|
|
33
|
+
# Install globally
|
|
34
|
+
npm install -g decibel-tools-mcp
|
|
43
35
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Configuration
|
|
49
|
-
|
|
50
|
-
The server uses environment variables for configuration:
|
|
51
|
-
|
|
52
|
-
| Variable | Default | Description |
|
|
53
|
-
|----------|---------|-------------|
|
|
54
|
-
| `DECIBEL_ENV` | `dev` | Environment (dev, staging, prod) |
|
|
55
|
-
| `DECIBEL_ORG` | `mediareason` | Organization name |
|
|
56
|
-
| `DECIBEL_MCP_ROOT` | `~/.decibel` | Root directory for global data storage |
|
|
57
|
-
|
|
58
|
-
Data is stored in project-local `.decibel/` folders when available, falling back to the global root for cross-project data.
|
|
59
|
-
|
|
60
|
-
Copy `.env.example` to `.env` and configure as needed:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
cp .env.example .env
|
|
36
|
+
# Or run directly with npx
|
|
37
|
+
npx decibel-tools-mcp
|
|
64
38
|
```
|
|
65
39
|
|
|
66
|
-
##
|
|
40
|
+
## Platform Setup
|
|
67
41
|
|
|
68
42
|
### Cursor
|
|
69
43
|
|
|
70
|
-
**One-click
|
|
71
|
-
```
|
|
72
|
-
cursor://anysphere.cursor-deeplink/mcp/install?name=decibel-tools&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImRlY2liZWwtdG9vbHMtbWNwIl19
|
|
73
|
-
```
|
|
44
|
+
**One-click:** Click the button at the top of this README.
|
|
74
45
|
|
|
75
|
-
**Manual
|
|
46
|
+
**Manual:** Add to `~/.cursor/mcp.json`:
|
|
76
47
|
|
|
77
48
|
```json
|
|
78
49
|
{
|
|
@@ -85,251 +56,237 @@ cursor://anysphere.cursor-deeplink/mcp/install?name=decibel-tools&config=eyJjb21
|
|
|
85
56
|
}
|
|
86
57
|
```
|
|
87
58
|
|
|
88
|
-
See [Cursor platform docs](docs/platforms/cursor.md) for troubleshooting and advanced setup.
|
|
89
|
-
|
|
90
59
|
### Claude Desktop
|
|
91
60
|
|
|
92
|
-
Add to
|
|
61
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
|
|
93
62
|
|
|
94
63
|
```json
|
|
95
64
|
{
|
|
96
65
|
"mcpServers": {
|
|
97
66
|
"decibel-tools": {
|
|
98
|
-
"command": "
|
|
99
|
-
"args": ["
|
|
67
|
+
"command": "npx",
|
|
68
|
+
"args": ["-y", "decibel-tools-mcp"]
|
|
100
69
|
}
|
|
101
70
|
}
|
|
102
71
|
}
|
|
103
72
|
```
|
|
104
73
|
|
|
105
|
-
The server will automatically discover `.decibel/` folders in your projects. No `DECIBEL_MCP_ROOT` environment variable is needed for typical use.
|
|
106
|
-
|
|
107
|
-
## Tools Reference
|
|
108
|
-
|
|
109
|
-
### designer_record_design_decision
|
|
110
|
-
|
|
111
|
-
Record a design decision for a project.
|
|
112
|
-
|
|
113
|
-
**Input:**
|
|
114
|
-
- `project_id` (required): Project identifier
|
|
115
|
-
- `area` (required): Design area (e.g., "UI", "API", "Database")
|
|
116
|
-
- `summary` (required): Brief summary of the decision
|
|
117
|
-
- `details` (optional): Detailed explanation
|
|
118
|
-
|
|
119
|
-
**Output:**
|
|
120
|
-
- `id`: Filename of the created record
|
|
121
|
-
- `timestamp`: ISO timestamp
|
|
122
|
-
- `path`: Full path to the file
|
|
123
|
-
|
|
124
|
-
**File Location:** `{ROOT_DIR}/designer/{project_id}/YYYY-MM-DDTHH-mm-ssZ-{slug}.md`
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
### architect_record_arch_decision
|
|
129
|
-
|
|
130
|
-
Record an Architecture Decision Record (ADR).
|
|
131
|
-
|
|
132
|
-
**Input:**
|
|
133
|
-
- `system_id` (required): System identifier
|
|
134
|
-
- `change` (required): Description of the architectural change
|
|
135
|
-
- `rationale` (required): Reasoning behind the decision
|
|
136
|
-
- `impact` (optional): Expected impact description
|
|
137
|
-
|
|
138
|
-
**Output:**
|
|
139
|
-
- `id`: Filename of the created ADR
|
|
140
|
-
- `timestamp`: ISO timestamp
|
|
141
|
-
- `path`: Full path to the file
|
|
142
|
-
|
|
143
|
-
**File Location:** `{ROOT_DIR}/architect/{system_id}/YYYY-MM-DDTHH-mm-ssZ-{slug}.md`
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
### sentinel_create_issue
|
|
148
|
-
|
|
149
|
-
Create a tracked issue for a repository.
|
|
150
|
-
|
|
151
|
-
**Input:**
|
|
152
|
-
- `repo` (required): Repository name
|
|
153
|
-
- `severity` (required): One of `low`, `med`, `high`, `critical`
|
|
154
|
-
- `title` (required): Issue title
|
|
155
|
-
- `details` (required): Detailed description
|
|
156
|
-
- `epic_id` (optional): Parent epic ID (e.g., "EPIC-0001")
|
|
157
|
-
|
|
158
|
-
**Output:**
|
|
159
|
-
- `id`: Filename of the created issue
|
|
160
|
-
- `timestamp`: ISO timestamp
|
|
161
|
-
- `path`: Full path to the file
|
|
162
|
-
- `status`: Issue status (always "open" for new issues)
|
|
163
|
-
|
|
164
|
-
**File Location:** `{ROOT_DIR}/sentinel/{repo}/issues/YYYY-MM-DDTHH-mm-ssZ-{slug}.md`
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
### sentinel_log_epic
|
|
169
|
-
|
|
170
|
-
Create a new epic (large feature) record.
|
|
171
|
-
|
|
172
|
-
**Input:**
|
|
173
|
-
- `title` (required): Epic title
|
|
174
|
-
- `summary` (required): Brief summary
|
|
175
|
-
- `motivation` (optional): Array of motivation statements
|
|
176
|
-
- `outcomes` (optional): Array of desired outcomes
|
|
177
|
-
- `acceptance_criteria` (optional): Array of acceptance criteria
|
|
178
|
-
- `priority` (optional): One of `low`, `medium`, `high`, `critical`
|
|
179
|
-
- `tags` (optional): Array of tags
|
|
180
|
-
- `owner` (optional): Epic owner
|
|
181
|
-
- `squad` (optional): Team responsible
|
|
182
|
-
|
|
183
|
-
**Output:**
|
|
184
|
-
- `epic_id`: Generated epic ID (e.g., "EPIC-0001")
|
|
185
|
-
- `timestamp`: ISO timestamp
|
|
186
|
-
- `path`: Full path to the file
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
### sentinel_list_epics
|
|
191
|
-
|
|
192
|
-
List all epics with optional filters.
|
|
193
|
-
|
|
194
|
-
**Input:**
|
|
195
|
-
- `status` (optional): Filter by status (`planned`, `in_progress`, `shipped`, `on_hold`, `cancelled`)
|
|
196
|
-
- `priority` (optional): Filter by priority
|
|
197
|
-
- `tags` (optional): Filter by tags (matches any)
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
### sentinel_get_epic
|
|
202
|
-
|
|
203
|
-
Get details of a specific epic.
|
|
204
|
-
|
|
205
|
-
**Input:**
|
|
206
|
-
- `epic_id` (required): Epic ID (e.g., "EPIC-0001")
|
|
207
|
-
|
|
208
74
|
---
|
|
209
75
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
Get all issues linked to an epic.
|
|
213
|
-
|
|
214
|
-
**Input:**
|
|
215
|
-
- `epic_id` (required): Epic ID
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
### sentinel_resolve_epic
|
|
220
|
-
|
|
221
|
-
Fuzzy search for epics by name or keyword.
|
|
222
|
-
|
|
223
|
-
**Input:**
|
|
224
|
-
- `query` (required): Search query
|
|
225
|
-
- `limit` (optional): Maximum matches to return (default: 5)
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
### oracle_next_actions
|
|
230
|
-
|
|
231
|
-
Get recommended next actions based on recent project activity.
|
|
232
|
-
|
|
233
|
-
**Input:**
|
|
234
|
-
- `project_id` (required): Project to analyze
|
|
235
|
-
- `focus` (optional): Filter by area (e.g., "architect", "sentinel", or keyword)
|
|
236
|
-
|
|
237
|
-
**Output:**
|
|
238
|
-
- `actions`: Array of recommended actions
|
|
239
|
-
- `description`: What to do
|
|
240
|
-
- `source`: File path reference
|
|
241
|
-
- `priority`: One of `low`, `med`, `high`
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
### learnings_append
|
|
246
|
-
|
|
247
|
-
Append a new entry to a project's technical learnings document. Creates a living document that accumulates lessons learned, gotchas, and insights over time.
|
|
248
|
-
|
|
249
|
-
**Input:**
|
|
250
|
-
- `project_id` (required): Project identifier
|
|
251
|
-
- `category` (required): One of `debug`, `integration`, `architecture`, `tooling`, `process`, `other`
|
|
252
|
-
- `title` (required): Brief title for the learning
|
|
253
|
-
- `content` (required): The learning content - what happened, what was learned
|
|
254
|
-
- `tags` (optional): Array of tags for searchability
|
|
255
|
-
|
|
256
|
-
**Output:**
|
|
257
|
-
- `timestamp`: ISO timestamp
|
|
258
|
-
- `path`: Full path to the file
|
|
259
|
-
- `entry_count`: Total number of entries in the document
|
|
260
|
-
|
|
261
|
-
**File Location:** `{ROOT_DIR}/learnings/{project_id}.md`
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
### learnings_list
|
|
266
|
-
|
|
267
|
-
List entries from a project's technical learnings document.
|
|
268
|
-
|
|
269
|
-
**Input:**
|
|
270
|
-
- `project_id` (required): Project identifier
|
|
271
|
-
- `category` (optional): Filter by category
|
|
272
|
-
- `limit` (optional): Maximum entries to return (most recent first)
|
|
76
|
+
## Tools Reference
|
|
273
77
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
78
|
+
### Sentinel (16 tools)
|
|
79
|
+
*Work tracking: issues, epics, test specs*
|
|
80
|
+
|
|
81
|
+
| Tool | Description |
|
|
82
|
+
|------|-------------|
|
|
83
|
+
| `sentinel_create_issue` | Create a tracked issue with severity (low/med/high/critical) |
|
|
84
|
+
| `sentinel_close_issue` | Close an issue with resolution note |
|
|
85
|
+
| `sentinel_list_repo_issues` | List issues for a project, optionally filtered by status |
|
|
86
|
+
| `sentinel_listIssues` | List issues with filtering by epic or status |
|
|
87
|
+
| `sentinel_createIssue` | Create issue (YAML format with auto-generated ID) |
|
|
88
|
+
| `sentinel_log_epic` | Create a new epic (large feature) record |
|
|
89
|
+
| `sentinel_list_epics` | List all epics with optional filters |
|
|
90
|
+
| `sentinel_get_epic` | Get details of a specific epic |
|
|
91
|
+
| `sentinel_get_epic_issues` | Get all issues linked to an epic |
|
|
92
|
+
| `sentinel_resolve_epic` | Fuzzy search for epics by name or keyword |
|
|
93
|
+
| `sentinel_scan` | Scan project data for validation, orphans, stale items |
|
|
94
|
+
| `sentinel_scanData` | Scan using Python Sentinel Data Inspector |
|
|
95
|
+
| `sentinel_createTestSpec` | Create a test specification atom |
|
|
96
|
+
| `sentinel_listTestSpecs` | List all test specifications |
|
|
97
|
+
| `sentinel_compileTests` | Compile test specs into documentation |
|
|
98
|
+
| `sentinel_auditPolicies` | Audit policy compliance and freshness |
|
|
99
|
+
|
|
100
|
+
### Dojo (10 tools)
|
|
101
|
+
*AI Feature Incubator: wishes, proposals, experiments*
|
|
102
|
+
|
|
103
|
+
| Tool | Description |
|
|
104
|
+
|------|-------------|
|
|
105
|
+
| `dojo_add_wish` | Add a capability wish (what, why, inputs, outputs) |
|
|
106
|
+
| `dojo_list_wishes` | List wishes from the wishlist |
|
|
107
|
+
| `dojo_create_proposal` | Create a proposal for a feature or capability |
|
|
108
|
+
| `dojo_scaffold_experiment` | Create experiment skeleton from a proposal |
|
|
109
|
+
| `dojo_list` | List proposals, experiments, and wishes |
|
|
110
|
+
| `dojo_run_experiment` | Run an experiment in sandbox mode |
|
|
111
|
+
| `dojo_get_results` | Get results from a previous experiment run |
|
|
112
|
+
| `dojo_read_artifact` | Read artifact file from experiment results |
|
|
113
|
+
| `dojo_can_graduate` | Check if experiment can graduate to real tool |
|
|
114
|
+
| `dojo_projects` | List available projects for Dojo operations |
|
|
115
|
+
|
|
116
|
+
### Architect (6 tools)
|
|
117
|
+
*Architecture decisions and policies*
|
|
118
|
+
|
|
119
|
+
| Tool | Description |
|
|
120
|
+
|------|-------------|
|
|
121
|
+
| `architect_record_arch_decision` | Record an ADR (markdown format) |
|
|
122
|
+
| `architect_createAdr` | Create ADR (YAML format with auto ID) |
|
|
123
|
+
| `architect_createPolicy` | Create a policy with rules and enforcement |
|
|
124
|
+
| `architect_listPolicies` | List all policies, filter by severity/tags |
|
|
125
|
+
| `architect_getPolicy` | Get details of a specific policy |
|
|
126
|
+
| `architect_compileOversight` | Compile policies into documentation |
|
|
127
|
+
|
|
128
|
+
### Roadmap (6 tools)
|
|
129
|
+
*Strategic planning and health tracking*
|
|
130
|
+
|
|
131
|
+
| Tool | Description |
|
|
132
|
+
|------|-------------|
|
|
133
|
+
| `roadmap_get` | Get full roadmap (objectives, themes, milestones) |
|
|
134
|
+
| `roadmap_list` | List epics with roadmap context and health scores |
|
|
135
|
+
| `roadmap_getEpicContext` | Get strategic context for a specific epic |
|
|
136
|
+
| `roadmap_getHealth` | Get epics with low health scores needing attention |
|
|
137
|
+
| `roadmap_linkEpic` | Link epic to theme, milestone, objectives |
|
|
138
|
+
| `roadmap_init` | Initialize a new roadmap.yaml scaffold |
|
|
139
|
+
|
|
140
|
+
### Oracle (2 tools)
|
|
141
|
+
*AI-powered recommendations*
|
|
142
|
+
|
|
143
|
+
| Tool | Description |
|
|
144
|
+
|------|-------------|
|
|
145
|
+
| `oracle_next_actions` | Get recommended next actions for a project |
|
|
146
|
+
| `oracle_roadmap` | Evaluate roadmap progress against milestones |
|
|
147
|
+
|
|
148
|
+
### Designer (3 tools)
|
|
149
|
+
*Design decisions and creative feedback*
|
|
150
|
+
|
|
151
|
+
| Tool | Description |
|
|
152
|
+
|------|-------------|
|
|
153
|
+
| `designer_record_design_decision` | Record a design decision |
|
|
154
|
+
| `designer_crit` | Log early creative feedback (gut reactions, hunches) |
|
|
155
|
+
| `designer_list_crits` | List crit observations, filter by area/sentiment |
|
|
156
|
+
|
|
157
|
+
### Friction (4 tools)
|
|
158
|
+
*Track recurring pain points*
|
|
159
|
+
|
|
160
|
+
| Tool | Description |
|
|
161
|
+
|------|-------------|
|
|
162
|
+
| `friction_log` | Log a friction point (context, description, impact) |
|
|
163
|
+
| `friction_list` | List friction points sorted by impact/signal |
|
|
164
|
+
| `friction_resolve` | Mark friction as resolved with solution reference |
|
|
165
|
+
| `friction_bump` | Bump signal count when encountering same friction |
|
|
166
|
+
|
|
167
|
+
### Learnings (2 tools)
|
|
168
|
+
*Living knowledge documents*
|
|
169
|
+
|
|
170
|
+
| Tool | Description |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `learnings_append` | Append entry to project's learnings document |
|
|
173
|
+
| `learnings_list` | List entries, filter by category |
|
|
174
|
+
|
|
175
|
+
### Voice (5 tools)
|
|
176
|
+
*Voice command processing and mobile inbox*
|
|
177
|
+
|
|
178
|
+
| Tool | Description |
|
|
179
|
+
|------|-------------|
|
|
180
|
+
| `voice_inbox_add` | Add transcript to inbox for processing |
|
|
181
|
+
| `voice_inbox_list` | List inbox items by status |
|
|
182
|
+
| `voice_inbox_process` | Process a queued inbox item |
|
|
183
|
+
| `voice_command` | Process voice command directly (real-time) |
|
|
184
|
+
| `voice_inbox_sync` | Sync messages from Supabase to local project |
|
|
185
|
+
|
|
186
|
+
### Context (8 tools)
|
|
187
|
+
*AI memory: pinned facts, events, artifacts*
|
|
188
|
+
|
|
189
|
+
| Tool | Description |
|
|
190
|
+
|------|-------------|
|
|
191
|
+
| `decibel_context_refresh` | Compile full context pack for AI memory |
|
|
192
|
+
| `decibel_context_pin` | Pin a fact to persistent memory |
|
|
193
|
+
| `decibel_context_unpin` | Remove a pinned fact |
|
|
194
|
+
| `decibel_context_list` | List all pinned facts |
|
|
195
|
+
| `decibel_event_append` | Append event to activity journal |
|
|
196
|
+
| `decibel_event_search` | Search events in journal |
|
|
197
|
+
| `decibel_artifact_list` | List artifacts for a run |
|
|
198
|
+
| `decibel_artifact_read` | Read artifact content |
|
|
199
|
+
|
|
200
|
+
### Studio (15 tools)
|
|
201
|
+
*Cloud asset generation and project management*
|
|
202
|
+
|
|
203
|
+
| Tool | Description |
|
|
204
|
+
|------|-------------|
|
|
205
|
+
| `studio_generate_image` | Generate image using DALL-E 3 or FLUX |
|
|
206
|
+
| `studio_get_image_status` | Get status of image generation task |
|
|
207
|
+
| `studio_list_tasks` | List all active generation tasks |
|
|
208
|
+
| `studio_list_projects` | List Decibel Studio projects |
|
|
209
|
+
| `studio_create_project` | Create a new Studio project |
|
|
210
|
+
| `studio_get_project` | Get project details |
|
|
211
|
+
| `studio_list_artifacts` | List artifacts in a project |
|
|
212
|
+
| `studio_create_artifact` | Create artifact record |
|
|
213
|
+
| `studio_update_artifact` | Update artifact (status, rating, pinned) |
|
|
214
|
+
| `studio_sync_events` | Get events since sequence number |
|
|
215
|
+
| `studio_register_device` | Register device for sync and job routing |
|
|
216
|
+
| `studio_heartbeat` | Update device last_seen_at |
|
|
217
|
+
| `studio_list_jobs` | List pending jobs |
|
|
218
|
+
| `studio_claim_job` | Claim a job for execution |
|
|
219
|
+
| `studio_update_job` | Update job progress or status |
|
|
220
|
+
|
|
221
|
+
### Registry (7 tools)
|
|
222
|
+
*Project discovery and management*
|
|
223
|
+
|
|
224
|
+
| Tool | Description |
|
|
225
|
+
|------|-------------|
|
|
226
|
+
| `project_init` | Initialize .decibel/ folder in a project |
|
|
227
|
+
| `project_status` | Check project status and available tools |
|
|
228
|
+
| `registry_list` | List all registered projects |
|
|
229
|
+
| `registry_add` | Register a project in the registry |
|
|
230
|
+
| `registry_remove` | Remove project from registry |
|
|
231
|
+
| `registry_alias` | Add alias to a project |
|
|
232
|
+
| `registry_resolve` | Test resolution of project ID/alias |
|
|
233
|
+
|
|
234
|
+
### Agentic (4 tools)
|
|
235
|
+
*Configuration compilation and rendering*
|
|
236
|
+
|
|
237
|
+
| Tool | Description |
|
|
238
|
+
|------|-------------|
|
|
239
|
+
| `agentic_compile_pack` | Compile config into versioned, hashed pack |
|
|
240
|
+
| `agentic_render` | Transform payload into rendered text |
|
|
241
|
+
| `agentic_lint` | Validate output against renderer constraints |
|
|
242
|
+
| `agentic_golden_eval` | Run golden eval regression tests |
|
|
243
|
+
|
|
244
|
+
### Provenance (1 tool)
|
|
245
|
+
*Audit trail*
|
|
246
|
+
|
|
247
|
+
| Tool | Description |
|
|
248
|
+
|------|-------------|
|
|
249
|
+
| `provenance_list` | List provenance events for artifact/actor |
|
|
278
250
|
|
|
279
251
|
---
|
|
280
252
|
|
|
281
253
|
## Data Storage
|
|
282
254
|
|
|
283
|
-
Data is stored in project-local `.decibel/` folders
|
|
255
|
+
Data is stored in project-local `.decibel/` folders:
|
|
284
256
|
|
|
285
257
|
```
|
|
286
|
-
{
|
|
258
|
+
{project}/
|
|
287
259
|
└── .decibel/
|
|
288
260
|
├── sentinel/
|
|
289
|
-
│ ├── issues/
|
|
290
|
-
│
|
|
291
|
-
│ └── epics/
|
|
292
|
-
│ └── EPIC-{nnnn}.yml
|
|
261
|
+
│ ├── issues/ # ISS-{nnnn}.yml
|
|
262
|
+
│ └── epics/ # EPIC-{nnnn}.yml
|
|
293
263
|
├── architect/
|
|
294
|
-
│
|
|
295
|
-
│
|
|
296
|
-
├──
|
|
297
|
-
│
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
### Project Structure
|
|
307
|
-
|
|
308
|
-
```
|
|
309
|
-
src/
|
|
310
|
-
├── server.ts # MCP server entrypoint
|
|
311
|
-
├── config.ts # Environment configuration
|
|
312
|
-
├── test.ts # Test script
|
|
313
|
-
└── tools/
|
|
314
|
-
├── designer.ts # Design decision recording
|
|
315
|
-
├── architect.ts # Architecture decision recording
|
|
316
|
-
├── sentinel.ts # Issue and epic tracking
|
|
317
|
-
├── oracle.ts # Next actions inference
|
|
318
|
-
└── learnings.ts # Living learnings documents
|
|
264
|
+
│ ├── adrs/ # ADR-{nnnn}.yml
|
|
265
|
+
│ └── policies/ # POL-{nnnn}.yaml
|
|
266
|
+
├── dojo/
|
|
267
|
+
│ ├── proposals/ # DOJO-PROP-{nnnn}.yml
|
|
268
|
+
│ ├── experiments/ # DOJO-EXP-{nnnn}/
|
|
269
|
+
│ └── wishes/ # WISH-{nnnn}.yml
|
|
270
|
+
├── designer/ # Design decisions
|
|
271
|
+
├── friction/ # Pain point logs
|
|
272
|
+
├── learnings/ # Knowledge documents
|
|
273
|
+
├── context/ # Pinned facts, events
|
|
274
|
+
└── voice/inbox/ # Voice messages
|
|
319
275
|
```
|
|
320
276
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
npm run build # Compile TypeScript to dist/
|
|
325
|
-
```
|
|
277
|
+
## Configuration
|
|
326
278
|
|
|
327
|
-
|
|
279
|
+
| Variable | Default | Description |
|
|
280
|
+
|----------|---------|-------------|
|
|
281
|
+
| `DECIBEL_ENV` | `dev` | Environment (dev, staging, prod) |
|
|
282
|
+
| `DECIBEL_ORG` | `mediareason` | Organization name |
|
|
283
|
+
| `DECIBEL_MCP_ROOT` | `~/.decibel` | Global data storage root |
|
|
328
284
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
285
|
+
Optional for cloud features:
|
|
286
|
+
- `SUPABASE_URL` - Supabase project URL
|
|
287
|
+
- `SUPABASE_SERVICE_KEY` - Supabase service role key
|
|
288
|
+
- `OPENAI_API_KEY` - For image generation
|
|
332
289
|
|
|
333
290
|
## License
|
|
334
291
|
|
|
335
|
-
MIT
|
|
292
|
+
MIT - Decibel Systems
|