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.
Files changed (2) hide show
  1. package/README.md +231 -274
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,78 +1,49 @@
1
1
  # decibel-tools-mcp
2
2
 
3
- MCP (Model Context Protocol) server exposing Decibel tools (Designer, Architect, Sentinel, Oracle, Learnings) over stdio. Connect from Cursor, Claude, ChatGPT, and other MCP-compatible clients.
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 Decibel Tools to Cursor" height="32" />
8
+ <img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />
7
9
  </a>
8
10
 
9
- ## Features
10
-
11
- - **Designer** - Record design decisions with project tracking
12
- - **Architect** - Create Architecture Decision Records (ADRs)
13
- - **Sentinel** - Track issues and epics with severity levels
14
- - **Oracle** - Get AI-powered next action recommendations
15
- - **Learnings** - Maintain living technical learnings documents
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
- npm run dev
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
- ```bash
45
- npm test
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
- ## Connecting to Clients
40
+ ## Platform Setup
67
41
 
68
42
  ### Cursor
69
43
 
70
- **One-click install:** Click the button at the top of this README, or use the deep link:
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 setup:** Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project-local):
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 your Claude configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
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": "node",
99
- "args": ["/path/to/decibel-tools-mcp/dist/server.js"]
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
- ### sentinel_get_epic_issues
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
- **Output:**
275
- - `path`: Path to the learnings file
276
- - `entries`: Array of learning entries
277
- - `total_count`: Total number of entries
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 as YAML files:
255
+ Data is stored in project-local `.decibel/` folders:
284
256
 
285
257
  ```
286
- {project_root}/
258
+ {project}/
287
259
  └── .decibel/
288
260
  ├── sentinel/
289
- │ ├── issues/
290
- └── ISS-{nnnn}.yml
291
- │ └── epics/
292
- │ └── EPIC-{nnnn}.yml
261
+ │ ├── issues/ # ISS-{nnnn}.yml
262
+ │ └── epics/ # EPIC-{nnnn}.yml
293
263
  ├── architect/
294
- └── adrs/
295
- └── ADR-{nnnn}.yml
296
- ├── designer/
297
- └── YYYY-MM-DDTHH-mm-ssZ-{slug}.md
298
- └── learnings/
299
- └── {project_id}.md
300
- ```
301
-
302
- Global data (friction logs, cross-project learnings) is stored in `~/.decibel/` or the path specified by `DECIBEL_MCP_ROOT`.
303
-
304
- ## Development
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
- ### Building
322
-
323
- ```bash
324
- npm run build # Compile TypeScript to dist/
325
- ```
277
+ ## Configuration
326
278
 
327
- ### Running in Development
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
- ```bash
330
- npm run dev # Run with tsx (no build required)
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decibel-tools-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server exposing Decibel tools (Designer, Architect, Sentinel, Oracle) over stdio",
5
5
  "main": "dist/server.js",
6
6
  "type": "module",