brioright-mcp 1.0.0 ā 1.1.0
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 +13 -1
- package/index.js +7 -0
- package/package.json +2 -2
- package/setup.js +105 -0
package/README.md
CHANGED
|
@@ -7,7 +7,19 @@ This server supports two transport modes:
|
|
|
7
7
|
1. **Stdio mode (Local)**: Runs as a subprocess for local clients like Claude Desktop or Cursor.
|
|
8
8
|
2. **HTTP/SSE mode (Cloud)**: Runs as a persistent web server for cloud-based AI assistants (like Antigravity).
|
|
9
9
|
|
|
10
|
-
## Quick Setup
|
|
10
|
+
## Quick Setup (Easiest Way)
|
|
11
|
+
|
|
12
|
+
Instead of manually editing JSON configuration files, you can use our interactive setup wizard to automatically connect your IDE to Brioright:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx -y brioright-mcp connect
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You will simply be prompted for your API Key and Workspace ID. The wizard supports injecting settings into VS Code (Roo/Cline), Cursor, Windsurf, and Antigravity automatically.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Manual Setup
|
|
11
23
|
|
|
12
24
|
### 1. Generate an API Key
|
|
13
25
|
Log in to Brioright, then run from your browser console:
|
package/index.js
CHANGED
|
@@ -22,6 +22,13 @@ import { config } from 'dotenv'
|
|
|
22
22
|
import { fileURLToPath } from 'url'
|
|
23
23
|
import { dirname, join } from 'path'
|
|
24
24
|
|
|
25
|
+
// Handle setup flow `npx brioright-mcp connect`
|
|
26
|
+
if (process.argv[2] === 'connect') {
|
|
27
|
+
const { runSetup } = await import('./setup.js')
|
|
28
|
+
await runSetup()
|
|
29
|
+
process.exit(0)
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
// Load .env from mcp-server directory
|
|
26
33
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
27
34
|
config({ path: join(__dirname, '.env') })
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brioright-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "MCP server for Brioright ā lets AI assistants create and manage tasks via natural language",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -22,4 +22,4 @@
|
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">=18.0.0"
|
|
24
24
|
}
|
|
25
|
-
}
|
|
25
|
+
}
|
package/setup.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import readline from 'readline'
|
|
4
|
+
import fs from 'fs'
|
|
5
|
+
import path from 'path'
|
|
6
|
+
import os from 'os'
|
|
7
|
+
|
|
8
|
+
export async function runSetup() {
|
|
9
|
+
console.log('\nš Welcome to the Brioright MCP Setup!\n')
|
|
10
|
+
console.log('This will configure your local IDE to connect to your Brioright workspace.')
|
|
11
|
+
|
|
12
|
+
const rl = readline.createInterface({
|
|
13
|
+
input: process.stdin,
|
|
14
|
+
output: process.stdout
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const ask = (query) => new Promise(resolve => rl.question(query, resolve))
|
|
18
|
+
|
|
19
|
+
// 1. Gather credentials
|
|
20
|
+
const apiKey = await ask('Enter your Brioright API Key: ')
|
|
21
|
+
if (!apiKey.trim()) {
|
|
22
|
+
console.log('ā API Key is required. Exiting.')
|
|
23
|
+
rl.close()
|
|
24
|
+
process.exit(1)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const workspaceId = await ask('Enter your Workspace ID (slug): ')
|
|
28
|
+
if (!workspaceId.trim()) {
|
|
29
|
+
console.log('ā Workspace ID is required. Exiting.')
|
|
30
|
+
rl.close()
|
|
31
|
+
process.exit(1)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
rl.close()
|
|
35
|
+
|
|
36
|
+
// 2. The config block to inject
|
|
37
|
+
const newConfig = {
|
|
38
|
+
"command": "npx",
|
|
39
|
+
"args": ["-y", "brioright-mcp"],
|
|
40
|
+
"env": {
|
|
41
|
+
"BRIORIGHT_API_URL": "https://brioright.online/api",
|
|
42
|
+
"BRIORIGHT_API_KEY": apiKey.trim(),
|
|
43
|
+
"BRIORIGHT_WORKSPACE_ID": workspaceId.trim()
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// 3. Search for known IDE configs
|
|
48
|
+
const home = os.homedir()
|
|
49
|
+
|
|
50
|
+
// Antigravity
|
|
51
|
+
const antigravityPath = path.join(home, '.gemini', 'antigravity', 'mcp_config.json')
|
|
52
|
+
// VS Code / Cursor generic
|
|
53
|
+
const vscodeMcpPath = path.join(home, '.vscode', 'mcp.json')
|
|
54
|
+
// Cline / Roo Code (Windows)
|
|
55
|
+
const clineWindowsPath = path.join(home, 'AppData', 'Roaming', 'Code', 'User', 'globalStorage', 'rooveterinaryinc.roo-cline', 'settings', 'cline_mcp_settings.json')
|
|
56
|
+
// Cline / Roo Code (Mac)
|
|
57
|
+
const clineMacPath = path.join(home, 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'rooveterinaryinc.roo-cline', 'settings', 'cline_mcp_settings.json')
|
|
58
|
+
|
|
59
|
+
const possiblePaths = [
|
|
60
|
+
{ name: 'Antigravity IDE', path: antigravityPath },
|
|
61
|
+
{ name: 'VS Code (Roo/Cline) Windows', path: clineWindowsPath },
|
|
62
|
+
{ name: 'VS Code (Roo/Cline) Mac', path: clineMacPath },
|
|
63
|
+
{ name: 'Generic VS Code', path: vscodeMcpPath }
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
let injected = false
|
|
67
|
+
|
|
68
|
+
for (const ide of possiblePaths) {
|
|
69
|
+
if (fs.existsSync(ide.path)) {
|
|
70
|
+
try {
|
|
71
|
+
const content = fs.readFileSync(ide.path, 'utf8')
|
|
72
|
+
const json = JSON.parse(content || '{}')
|
|
73
|
+
|
|
74
|
+
if (!json.mcpServers) json.mcpServers = {}
|
|
75
|
+
|
|
76
|
+
json.mcpServers['brioright-remote'] = newConfig
|
|
77
|
+
|
|
78
|
+
fs.writeFileSync(ide.path, JSON.stringify(json, null, 2))
|
|
79
|
+
console.log(`\nā
Successfully added Brioright to: ${ide.name}`)
|
|
80
|
+
console.log(` š File: ${ide.path}`)
|
|
81
|
+
injected = true
|
|
82
|
+
} catch (err) {
|
|
83
|
+
console.log(`\nā ļø Found config for ${ide.name} but failed to update it: ${err.message}`)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (injected) {
|
|
89
|
+
console.log('\nš Setup complete! Please completely close and RESTART YOUR IDE for the new tools to load.')
|
|
90
|
+
return
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// 4. Fallback if no IDE config found
|
|
94
|
+
console.log('\nā ļø We could not find a supported IDE configuration file automatically.')
|
|
95
|
+
console.log('To set up Brioright, please copy the following JSON block into your MCP Settings file (e.g. mcp_settings.json):\n')
|
|
96
|
+
|
|
97
|
+
const fallbackBlock = {
|
|
98
|
+
"mcpServers": {
|
|
99
|
+
"brioright-remote": newConfig
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
console.log(JSON.stringify(fallbackBlock, null, 2))
|
|
104
|
+
console.log('\n(Once saved, restart your IDE.)\n')
|
|
105
|
+
}
|