@hustle-together/api-dev-tools 1.2.0 ā 1.2.1
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 +2 -2
- package/bin/cli.js +7 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ Three Python hooks that provide **real programmatic guarantees**:
|
|
|
35
35
|
### State Tracking
|
|
36
36
|
- **`.claude/api-dev-state.json`** - Persistent state file tracking all workflow progress
|
|
37
37
|
|
|
38
|
-
### MCP Servers (Auto-configured)
|
|
38
|
+
### MCP Servers (Auto-configured in `.mcp.json`)
|
|
39
39
|
- **Context7** - Fetches LIVE documentation from library source code (not training data)
|
|
40
40
|
- **GitHub** - Read/create issues, pull requests, and access repository data (requires `GITHUB_PERSONAL_ACCESS_TOKEN`)
|
|
41
41
|
|
|
@@ -432,7 +432,7 @@ Required for `/pr` and `/issue` commands to work with GitHub MCP tools.
|
|
|
432
432
|
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here
|
|
433
433
|
```
|
|
434
434
|
|
|
435
|
-
The MCP configuration is written to `.
|
|
435
|
+
The MCP configuration is written to `.mcp.json` in your project root and will be picked up by Claude Code on restart. First use will prompt for security approval.
|
|
436
436
|
|
|
437
437
|
## š Documentation
|
|
438
438
|
|
package/bin/cli.js
CHANGED
|
@@ -234,10 +234,11 @@ function main() {
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
// ========================================
|
|
237
|
-
// 5. Install/Merge MCP Servers (Context7)
|
|
237
|
+
// 5. Install/Merge MCP Servers (Context7, GitHub)
|
|
238
238
|
// ========================================
|
|
239
|
+
// NOTE: Claude Code uses .mcp.json in project root, NOT .claude/mcp-servers.json
|
|
239
240
|
const mcpSource = path.join(sourceTemplatesDir, 'mcp-servers.json');
|
|
240
|
-
const mcpDest = path.join(
|
|
241
|
+
const mcpDest = path.join(targetDir, '.mcp.json');
|
|
241
242
|
|
|
242
243
|
if (fs.existsSync(mcpSource)) {
|
|
243
244
|
log('\nš Configuring MCP servers:', 'cyan');
|
|
@@ -250,17 +251,18 @@ function main() {
|
|
|
250
251
|
const existingMcp = JSON.parse(fs.readFileSync(mcpDest, 'utf8'));
|
|
251
252
|
const mergedMcp = mergeMcpServers(existingMcp, newMcp);
|
|
252
253
|
fs.writeFileSync(mcpDest, JSON.stringify(mergedMcp, null, 2));
|
|
253
|
-
log(' ā
Merged
|
|
254
|
+
log(' ā
Merged into existing .mcp.json', 'green');
|
|
254
255
|
} else {
|
|
255
256
|
// Create new MCP config file
|
|
256
257
|
fs.writeFileSync(mcpDest, JSON.stringify(newMcp, null, 2));
|
|
257
|
-
log(' ā
Created mcp
|
|
258
|
+
log(' ā
Created .mcp.json in project root', 'green');
|
|
258
259
|
}
|
|
259
260
|
|
|
260
261
|
log('\n MCP servers configured:', 'blue');
|
|
261
262
|
log(' ⢠context7 - Live documentation from library source code', 'blue');
|
|
262
263
|
log(' ⢠github - GitHub issues, PRs, and repository access', 'blue');
|
|
263
264
|
log('\n ā ļø GitHub MCP requires GITHUB_PERSONAL_ACCESS_TOKEN in env', 'yellow');
|
|
265
|
+
log(' ā ļø First use will prompt for security approval', 'yellow');
|
|
264
266
|
} catch (error) {
|
|
265
267
|
log(` ā Failed to configure MCP servers: ${error.message}`, 'red');
|
|
266
268
|
}
|
|
@@ -278,7 +280,7 @@ function main() {
|
|
|
278
280
|
log(' Hooks: .claude/hooks/*.py', 'blue');
|
|
279
281
|
log(' Settings: .claude/settings.json', 'blue');
|
|
280
282
|
log(' State: .claude/api-dev-state.json', 'blue');
|
|
281
|
-
log(' MCP: .
|
|
283
|
+
log(' MCP: .mcp.json (Context7, GitHub)', 'blue');
|
|
282
284
|
|
|
283
285
|
log('\nš Enforcement Features:', 'bright');
|
|
284
286
|
log(' ⢠Research MUST happen before code writing', 'cyan');
|
package/package.json
CHANGED