hive-mcp-server 1.1.0 → 1.2.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 CHANGED
@@ -4,11 +4,13 @@ MCP server for AI dev session logs, development plans, and semantic search. Buil
4
4
 
5
5
  ## Features
6
6
 
7
- - **14 MCP tools** — Session tracking (start/log/end/list/read/search), Plan management (create/update/read/list/check/archive), Index (read/current)
7
+ - **17 MCP tools** — Session tracking, Plan management, Index, Team management
8
+ - **Browser auth** — `hive-mcp login` opens browser, no passwords in env vars
9
+ - **Auto project detection** — Detects project from git remote or folder name
10
+ - **Multi-team** — Per-project team mapping, runtime switching
8
11
  - **Semantic search** — Hybrid vector + full-text search with RRF fusion via pgvector
9
12
  - **Multi-agent** — Works with Claude Code, Codex CLI, Gemini CLI, Cursor
10
13
  - **Auto-embedding** — Automatically embeds session logs and plans (server-side, no API keys needed)
11
- - **Simple auth** — Just your Hive email and password
12
14
 
13
15
  ## Quick Setup
14
16
 
@@ -18,7 +20,15 @@ MCP server for AI dev session logs, development plans, and semantic search. Buil
18
20
  npm install -g hive-mcp-server
19
21
  ```
20
22
 
21
- ### 2. Configure Claude Code
23
+ ### 2. Login (one-time)
24
+
25
+ ```bash
26
+ hive-mcp login
27
+ ```
28
+
29
+ This opens your browser for Hive authentication, then lets you select a team in your terminal. Credentials are saved to `~/.hive-mcp/config.json`.
30
+
31
+ ### 3. Configure Claude Code
22
32
 
23
33
  Add to your project's `.claude/mcp.json`:
24
34
 
@@ -26,26 +36,46 @@ Add to your project's `.claude/mcp.json`:
26
36
  {
27
37
  "mcpServers": {
28
38
  "hive": {
29
- "command": "hive-mcp",
30
- "env": {
31
- "HIVE_EMAIL": "your-email@example.com",
32
- "HIVE_PASSWORD": "your-password"
33
- }
39
+ "command": "hive-mcp"
34
40
  }
35
41
  }
36
42
  }
37
43
  ```
38
44
 
39
- That's it! The server will auto-detect your teams and select the first one.
45
+ That's it! No env vars needed. The server auto-detects your project and team.
40
46
 
41
- ### 3. Or use npx (no install)
47
+ ### Or use npx (no install)
42
48
 
43
49
  ```json
44
50
  {
45
51
  "mcpServers": {
46
52
  "hive": {
47
53
  "command": "npx",
48
- "args": ["-y", "hive-mcp-server"],
54
+ "args": ["-y", "hive-mcp-server"]
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## CLI Commands
61
+
62
+ | Command | Description |
63
+ | ----------------- | ---------------------------------------- |
64
+ | `hive-mcp login` | Browser auth + team selection |
65
+ | `hive-mcp logout` | Clear saved credentials |
66
+ | `hive-mcp team` | Re-select team for current project |
67
+ | `hive-mcp status` | Show login/team/project status |
68
+ | `hive-mcp` | Start MCP server (called by Claude Code) |
69
+
70
+ ## Legacy Setup (env vars)
71
+
72
+ For backward compatibility, you can still use environment variables:
73
+
74
+ ```json
75
+ {
76
+ "mcpServers": {
77
+ "hive": {
78
+ "command": "hive-mcp",
49
79
  "env": {
50
80
  "HIVE_EMAIL": "your-email@example.com",
51
81
  "HIVE_PASSWORD": "your-password"
@@ -55,26 +85,35 @@ That's it! The server will auto-detect your teams and select the first one.
55
85
  }
56
86
  ```
57
87
 
58
- ## Environment Variables
88
+ ### Environment Variables
59
89
 
60
- | Variable | Required | Description |
61
- | ------------------ | -------- | ---------------------------------------------- |
62
- | `HIVE_EMAIL` | Yes | Your Hive account email |
63
- | `HIVE_PASSWORD` | Yes | Your Hive account password |
64
- | `HIVE_TEAM_ID` | No | Team UUID (auto-selects first team if omitted) |
65
- | `HIVE_PROJECT_ID` | No | Project identifier (default: `hive`) |
90
+ | Variable | Required | Description |
91
+ | ----------------- | -------- | --------------------------- |
92
+ | `HIVE_EMAIL` | No\* | Your Hive account email |
93
+ | `HIVE_PASSWORD` | No\* | Your Hive account password |
94
+ | `HIVE_TEAM_ID` | No | Team UUID override |
95
+ | `HIVE_PROJECT_ID` | No | Project identifier override |
96
+
97
+ \* Required only if not using `hive-mcp login`.
66
98
 
67
99
  ## How It Works
68
100
 
69
- 1. MCP server startssigns in with your Hive credentials
70
- 2. Auto-detects your teams (logs available teams to stderr)
71
- 3. Session logs and plans are stored in your team's Supabase DB
72
- 4. Embeddings are generated server-side (no OpenAI key needed)
73
- 5. Semantic search uses hybrid vector + full-text with RRF fusion
101
+ 1. **Login**: `hive-mcp login` opens browser authenticate select team save tokens
102
+ 2. **Auto-detect**: MCP server starts → detects project from git remote maps to saved team
103
+ 3. **Session auth**: Restores Supabase session from saved tokens (auto-refreshes)
104
+ 4. **Multi-project**: Different projects can map to different teams automatically
105
+
106
+ ### Team Resolution Priority
107
+
108
+ 1. `config.projects[projectId].teamId` — per-project mapping
109
+ 2. `config.defaultTeamId` — default team
110
+ 3. `HIVE_TEAM_ID` env var — legacy override
111
+ 4. Auto-select first team
74
112
 
75
113
  ## Database Setup
76
114
 
77
115
  Apply the migrations to your Supabase project:
116
+
78
117
  - `supabase/migrations/013_dev_logs_semantic.sql` — Tables, RPCs, indexes
79
118
  - `supabase/migrations/014_mcp_auth_grants.sql` — Auth grants for user JWT
80
119
 
@@ -82,7 +121,7 @@ See the [Hive repo](https://github.com/StudioRaming/hive) for details.
82
121
 
83
122
  ## Tools
84
123
 
85
- ### Session Tools
124
+ ### Session Tools (6)
86
125
 
87
126
  | Tool | Description |
88
127
  | ---------------- | ---------------------------------------------- |
@@ -93,7 +132,7 @@ See the [Hive repo](https://github.com/StudioRaming/hive) for details.
93
132
  | `session_read` | Read session by ID or seq number |
94
133
  | `session_search` | Semantic + full-text hybrid search |
95
134
 
96
- ### Plan Tools
135
+ ### Plan Tools (6)
97
136
 
98
137
  | Tool | Description |
99
138
  | -------------- | -------------------------------------------- |
@@ -104,13 +143,21 @@ See the [Hive repo](https://github.com/StudioRaming/hive) for details.
104
143
  | `plan_check` | Toggle checklist items |
105
144
  | `plan_archive` | Archive or delete a plan |
106
145
 
107
- ### Index Tools
146
+ ### Index Tools (2)
108
147
 
109
148
  | Tool | Description |
110
149
  | --------------- | -------------------------------------- |
111
150
  | `index_read` | Session index (like .session-index.md) |
112
151
  | `index_current` | Current active session |
113
152
 
153
+ ### Team Tools (3)
154
+
155
+ | Tool | Description |
156
+ | -------------- | -------------------------------------------- |
157
+ | `team_list` | List teams with current team highlighted |
158
+ | `team_switch` | Switch team (in-memory or persist to config) |
159
+ | `project_info` | Show current project/team/auth status |
160
+
114
161
  ## License
115
162
 
116
163
  MIT
package/dist/auth.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ interface AuthResult {
2
+ accessToken: string;
3
+ refreshToken: string;
4
+ email: string;
5
+ expiresAt: number;
6
+ }
7
+ /** Start callback server, open browser, wait for auth token */
8
+ export declare function startAuthFlow(): Promise<AuthResult>;
9
+ export {};
10
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAMA,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CA2FnD"}
package/dist/auth.js ADDED
@@ -0,0 +1,88 @@
1
+ import { createServer } from 'node:http';
2
+ import { exec } from 'node:child_process';
3
+ import { platform } from 'node:os';
4
+ const HIVE_ORIGIN = 'https://hive-jade.vercel.app';
5
+ /** Start callback server, open browser, wait for auth token */
6
+ export function startAuthFlow() {
7
+ return new Promise((resolve, reject) => {
8
+ const timeout = setTimeout(() => {
9
+ server.close();
10
+ reject(new Error('Auth timed out after 5 minutes. Please try again.'));
11
+ }, 5 * 60 * 1000);
12
+ const server = createServer((req, res) => {
13
+ // CORS preflight
14
+ if (req.method === 'OPTIONS') {
15
+ res.writeHead(204, {
16
+ 'Access-Control-Allow-Origin': HIVE_ORIGIN,
17
+ 'Access-Control-Allow-Methods': 'POST',
18
+ 'Access-Control-Allow-Headers': 'Content-Type',
19
+ });
20
+ res.end();
21
+ return;
22
+ }
23
+ if (req.method === 'POST' && req.url === '/callback') {
24
+ let body = '';
25
+ req.on('data', (chunk) => {
26
+ body += chunk.toString();
27
+ });
28
+ req.on('end', () => {
29
+ try {
30
+ const data = JSON.parse(body);
31
+ if (!data.access_token || !data.refresh_token || !data.email) {
32
+ res.writeHead(400, { 'Content-Type': 'application/json' });
33
+ res.end(JSON.stringify({ error: 'Missing required fields' }));
34
+ return;
35
+ }
36
+ res.writeHead(200, {
37
+ 'Access-Control-Allow-Origin': HIVE_ORIGIN,
38
+ 'Content-Type': 'application/json',
39
+ });
40
+ res.end(JSON.stringify({ ok: true }));
41
+ clearTimeout(timeout);
42
+ server.close();
43
+ resolve({
44
+ accessToken: data.access_token,
45
+ refreshToken: data.refresh_token,
46
+ email: data.email,
47
+ expiresAt: data.expires_at ?? Math.floor(Date.now() / 1000) + 3600,
48
+ });
49
+ }
50
+ catch {
51
+ res.writeHead(400, { 'Content-Type': 'application/json' });
52
+ res.end(JSON.stringify({ error: 'Invalid JSON' }));
53
+ }
54
+ });
55
+ return;
56
+ }
57
+ res.writeHead(404);
58
+ res.end();
59
+ });
60
+ // Use port 0 to get a random available port
61
+ server.listen(0, '127.0.0.1', () => {
62
+ const addr = server.address();
63
+ if (!addr || typeof addr === 'string') {
64
+ reject(new Error('Failed to start callback server'));
65
+ return;
66
+ }
67
+ const port = addr.port;
68
+ const url = `${HIVE_ORIGIN}/mcp-auth?port=${port}`;
69
+ console.log(`\nOpening browser for authentication...`);
70
+ console.log(`If the browser doesn't open, visit: ${url}\n`);
71
+ openBrowser(url);
72
+ });
73
+ server.on('error', (err) => {
74
+ clearTimeout(timeout);
75
+ reject(new Error(`Callback server error: ${err.message}`));
76
+ });
77
+ });
78
+ }
79
+ function openBrowser(url) {
80
+ const os = platform();
81
+ const cmd = os === 'darwin' ? `open "${url}"` : os === 'win32' ? `start "" "${url}"` : `xdg-open "${url}"`;
82
+ exec(cmd, (err) => {
83
+ if (err) {
84
+ console.log(`Could not open browser automatically.`);
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export declare function cmdLogin(): Promise<void>;
2
+ export declare function cmdLogout(): Promise<void>;
3
+ export declare function cmdTeam(): Promise<void>;
4
+ export declare function cmdStatus(): Promise<void>;
5
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA2CA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA0D9C;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAG/C;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA4C7C;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B/C"}
package/dist/cli.js ADDED
@@ -0,0 +1,149 @@
1
+ import { createClient } from '@supabase/supabase-js';
2
+ import { readConfig, writeConfig, deleteConfig, detectProjectId, resolveTeamForProject, } from './config.js';
3
+ import { startAuthFlow } from './auth.js';
4
+ import * as readline from 'node:readline';
5
+ // Hive Supabase project (public, safe to embed)
6
+ const HIVE_SUPABASE_URL = 'https://rainckslfkbmapqfkiaq.supabase.co';
7
+ const HIVE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJhaW5ja3NsZmtibWFwcWZraWFxIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwMzczNjMsImV4cCI6MjA4NzYxMzM2M30.vvnfWQQui9AlbLjD0PgzCizybETy3IhtzQto-zSpD7o';
8
+ async function getTeams(accessToken, refreshToken) {
9
+ const db = createClient(HIVE_SUPABASE_URL, HIVE_ANON_KEY, {
10
+ auth: { persistSession: false, autoRefreshToken: false },
11
+ });
12
+ await db.auth.setSession({ access_token: accessToken, refresh_token: refreshToken });
13
+ const { data, error } = await db.from('team_members').select('team_id, role, teams(name)');
14
+ if (error)
15
+ throw new Error(`Failed to get teams: ${error.message}`);
16
+ return (data ?? []).map((row) => ({
17
+ team_id: row.team_id,
18
+ team_name: row.teams?.name ?? 'unknown',
19
+ role: row.role,
20
+ }));
21
+ }
22
+ function prompt(question) {
23
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
24
+ return new Promise((resolve) => {
25
+ rl.question(question, (answer) => {
26
+ rl.close();
27
+ resolve(answer.trim());
28
+ });
29
+ });
30
+ }
31
+ export async function cmdLogin() {
32
+ console.log('Hive MCP — Browser Login\n');
33
+ // Start browser auth flow
34
+ const authResult = await startAuthFlow();
35
+ console.log(`\n✓ Authenticated as ${authResult.email}`);
36
+ // Get teams
37
+ const teams = await getTeams(authResult.accessToken, authResult.refreshToken);
38
+ if (teams.length === 0) {
39
+ console.log('✗ No teams found for this account.');
40
+ process.exit(1);
41
+ }
42
+ // Select team
43
+ let selectedTeam;
44
+ if (teams.length === 1) {
45
+ selectedTeam = teams[0];
46
+ console.log(`✓ Auto-selected team: ${selectedTeam.team_name}`);
47
+ }
48
+ else {
49
+ console.log('\nYour teams:');
50
+ teams.forEach((t, i) => {
51
+ console.log(` ${i + 1}. ${t.team_name} (${t.role})`);
52
+ });
53
+ const answer = await prompt(`\nSelect team [1-${teams.length}]: `);
54
+ const idx = parseInt(answer, 10) - 1;
55
+ if (isNaN(idx) || idx < 0 || idx >= teams.length) {
56
+ console.log('✗ Invalid selection.');
57
+ process.exit(1);
58
+ }
59
+ selectedTeam = teams[idx];
60
+ }
61
+ // Detect project and save config
62
+ const projectId = detectProjectId();
63
+ const existing = readConfig();
64
+ const config = {
65
+ ...existing,
66
+ auth: {
67
+ accessToken: authResult.accessToken,
68
+ refreshToken: authResult.refreshToken,
69
+ email: authResult.email,
70
+ expiresAt: authResult.expiresAt,
71
+ },
72
+ defaultTeamId: selectedTeam.team_id,
73
+ defaultTeamName: selectedTeam.team_name,
74
+ projects: {
75
+ ...existing.projects,
76
+ [projectId]: { teamId: selectedTeam.team_id, teamName: selectedTeam.team_name },
77
+ },
78
+ };
79
+ writeConfig(config);
80
+ console.log(`\n✓ Logged in as ${authResult.email} (team: ${selectedTeam.team_name})`);
81
+ console.log(` Project: ${projectId}`);
82
+ console.log(` Config saved to ~/.hive-mcp/config.json`);
83
+ }
84
+ export async function cmdLogout() {
85
+ deleteConfig();
86
+ console.log('✓ Logged out. Config cleared.');
87
+ }
88
+ export async function cmdTeam() {
89
+ const config = readConfig();
90
+ if (!config.auth?.accessToken) {
91
+ console.log('✗ Not logged in. Run: hive-mcp login');
92
+ process.exit(1);
93
+ }
94
+ const teams = await getTeams(config.auth.accessToken, config.auth.refreshToken);
95
+ if (teams.length === 0) {
96
+ console.log('✗ No teams found.');
97
+ process.exit(1);
98
+ }
99
+ const projectId = detectProjectId();
100
+ const currentTeam = resolveTeamForProject(config, projectId);
101
+ console.log(`Current project: ${projectId}`);
102
+ if (currentTeam) {
103
+ console.log(`Current team: ${currentTeam.teamName}\n`);
104
+ }
105
+ console.log('Your teams:');
106
+ teams.forEach((t, i) => {
107
+ const marker = currentTeam?.teamId === t.team_id ? ' ← current' : '';
108
+ console.log(` ${i + 1}. ${t.team_name} (${t.role})${marker}`);
109
+ });
110
+ const answer = await prompt(`\nSelect team for "${projectId}" [1-${teams.length}]: `);
111
+ const idx = parseInt(answer, 10) - 1;
112
+ if (isNaN(idx) || idx < 0 || idx >= teams.length) {
113
+ console.log('✗ Invalid selection.');
114
+ process.exit(1);
115
+ }
116
+ const selected = teams[idx];
117
+ config.projects = {
118
+ ...config.projects,
119
+ [projectId]: { teamId: selected.team_id, teamName: selected.team_name },
120
+ };
121
+ config.defaultTeamId = selected.team_id;
122
+ config.defaultTeamName = selected.team_name;
123
+ writeConfig(config);
124
+ console.log(`\n✓ Team updated: ${selected.team_name} (project: ${projectId})`);
125
+ }
126
+ export async function cmdStatus() {
127
+ const config = readConfig();
128
+ const projectId = detectProjectId();
129
+ console.log('Hive MCP Status\n');
130
+ if (!config.auth?.email) {
131
+ console.log('Auth: Not logged in');
132
+ console.log(' Run: hive-mcp login');
133
+ }
134
+ else {
135
+ const expired = config.auth.expiresAt < Math.floor(Date.now() / 1000);
136
+ console.log(`Auth: ${config.auth.email}${expired ? ' (token expired, will auto-refresh)' : ''}`);
137
+ }
138
+ const team = resolveTeamForProject(config, projectId);
139
+ console.log(`Team: ${team?.teamName ?? 'not set'}`);
140
+ console.log(`Project: ${projectId}`);
141
+ if (config.projects && Object.keys(config.projects).length > 0) {
142
+ console.log('\nProject mappings:');
143
+ for (const [proj, mapping] of Object.entries(config.projects)) {
144
+ const marker = proj === projectId ? ' ← current' : '';
145
+ console.log(` ${proj} → ${mapping.teamName}${marker}`);
146
+ }
147
+ }
148
+ }
149
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface StoredConfig {
2
+ auth?: {
3
+ accessToken: string;
4
+ refreshToken: string;
5
+ email: string;
6
+ expiresAt: number;
7
+ };
8
+ defaultTeamId?: string;
9
+ defaultTeamName?: string;
10
+ projects?: Record<string, {
11
+ teamId: string;
12
+ teamName: string;
13
+ }>;
14
+ }
15
+ export declare function getConfigDir(): string;
16
+ export declare function readConfig(): StoredConfig;
17
+ export declare function writeConfig(config: StoredConfig): void;
18
+ export declare function deleteConfig(): void;
19
+ /** Detect project ID from git remote or folder name */
20
+ export declare function detectProjectId(): string;
21
+ /** Resolve team ID for a project */
22
+ export declare function resolveTeamForProject(config: StoredConfig, projectId: string): {
23
+ teamId: string;
24
+ teamName: string;
25
+ } | null;
26
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChE;AAKD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,YAAY,CAQzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAKtD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAQnC;AAED,uDAAuD;AACvD,wBAAgB,eAAe,IAAI,MAAM,CAuBxC;AAED,oCAAoC;AACpC,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe7C"}
package/dist/config.js ADDED
@@ -0,0 +1,78 @@
1
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
2
+ import { join, basename } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import { execSync } from 'node:child_process';
5
+ const CONFIG_DIR = join(homedir(), '.hive-mcp');
6
+ const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
7
+ export function getConfigDir() {
8
+ return CONFIG_DIR;
9
+ }
10
+ export function readConfig() {
11
+ try {
12
+ if (!existsSync(CONFIG_FILE))
13
+ return {};
14
+ const raw = readFileSync(CONFIG_FILE, 'utf-8');
15
+ return JSON.parse(raw);
16
+ }
17
+ catch {
18
+ return {};
19
+ }
20
+ }
21
+ export function writeConfig(config) {
22
+ if (!existsSync(CONFIG_DIR)) {
23
+ mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
24
+ }
25
+ writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
26
+ }
27
+ export function deleteConfig() {
28
+ try {
29
+ if (existsSync(CONFIG_FILE)) {
30
+ writeFileSync(CONFIG_FILE, '{}', { mode: 0o600 });
31
+ }
32
+ }
33
+ catch {
34
+ // ignore
35
+ }
36
+ }
37
+ /** Detect project ID from git remote or folder name */
38
+ export function detectProjectId() {
39
+ // Env override
40
+ const envProject = process.env['HIVE_PROJECT_ID'];
41
+ if (envProject)
42
+ return envProject;
43
+ // Try git remote
44
+ try {
45
+ const url = execSync('git remote get-url origin', {
46
+ encoding: 'utf-8',
47
+ timeout: 3000,
48
+ stdio: ['pipe', 'pipe', 'pipe'],
49
+ }).trim();
50
+ // https://github.com/StudioRaming/hive.git → hive
51
+ // git@github.com:StudioRaming/vdesk.git → vdesk
52
+ const match = url.match(/[/:]([^/:]+?)(?:\.git)?$/);
53
+ if (match?.[1])
54
+ return match[1];
55
+ }
56
+ catch {
57
+ // no git or no remote
58
+ }
59
+ // Fallback: folder name
60
+ return basename(process.cwd());
61
+ }
62
+ /** Resolve team ID for a project */
63
+ export function resolveTeamForProject(config, projectId) {
64
+ // 1. Project-specific mapping
65
+ const projectMapping = config.projects?.[projectId];
66
+ if (projectMapping)
67
+ return projectMapping;
68
+ // 2. Default team
69
+ if (config.defaultTeamId) {
70
+ return { teamId: config.defaultTeamId, teamName: config.defaultTeamName ?? 'unknown' };
71
+ }
72
+ // 3. Env var fallback
73
+ const envTeamId = process.env['HIVE_TEAM_ID'];
74
+ if (envTeamId)
75
+ return { teamId: envTeamId, teamName: 'env' };
76
+ return null;
77
+ }
78
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -2,6 +2,7 @@ import { type SupabaseClient } from '@supabase/supabase-js';
2
2
  import type { ServerConfig, DevSession, DevPlan, MemoryChunk, HybridSearchResult } from './types.js';
3
3
  export declare function getSupabase(config: ServerConfig): SupabaseClient;
4
4
  export declare function signIn(db: SupabaseClient, email: string, password: string): Promise<string>;
5
+ export declare function setSession(db: SupabaseClient, accessToken: string, refreshToken: string): Promise<string>;
5
6
  export declare function getUserTeams(db: SupabaseClient): Promise<Array<{
6
7
  team_id: string;
7
8
  team_name: string;
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpG,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAOhE;AAGD,wBAAsB,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIjG;AAGD,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAGD,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAQtE;AAGD,wBAAsB,OAAO,CAC3B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAID,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,UAAU,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAU5B;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,UAAU,EAAE,CAAC,CAevB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAU/B;AAID,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC,GAClE,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GACxB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,OAAO,CAC3B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAUzB;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,OAAO,EAAE,CAAC,CAepB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAQf;AAID,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,cAAc,EAClB,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GACA,OAAO,CACR,KAAK,CAAC;IACJ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;CACnB,CAAC,CACH,CAUA"}
package/dist/db.js CHANGED
@@ -15,11 +15,21 @@ export async function signIn(db, email, password) {
15
15
  throw new Error(`Auth failed: ${error.message}`);
16
16
  return data.session.access_token;
17
17
  }
18
+ // Set session from stored tokens (browser auth flow)
19
+ export async function setSession(db, accessToken, refreshToken) {
20
+ const { data, error } = await db.auth.setSession({
21
+ access_token: accessToken,
22
+ refresh_token: refreshToken,
23
+ });
24
+ if (error)
25
+ throw new Error(`Session restore failed: ${error.message}`);
26
+ if (!data.session)
27
+ throw new Error('Session restore returned no session');
28
+ return data.session.access_token;
29
+ }
18
30
  // Get user's teams
19
31
  export async function getUserTeams(db) {
20
- const { data, error } = await db
21
- .from('team_members')
22
- .select('team_id, role, teams(name)');
32
+ const { data, error } = await db.from('team_members').select('team_id, role, teams(name)');
23
33
  if (error)
24
34
  throw new Error(`Failed to get teams: ${error.message}`);
25
35
  return (data ?? []).map((row) => ({
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,18 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import { FastMCP } from 'fastmcp';
3
- import { getSupabase, signIn, getUserTeams } from './db.js';
3
+ import { getSupabase, signIn, setSession, getUserTeams } from './db.js';
4
4
  import { initEmbedder } from './embed.js';
5
5
  import { registerSessionTools } from './tools/session.js';
6
6
  import { registerPlanTools } from './tools/plan.js';
7
7
  import { registerIndexTools } from './tools/index.js';
8
+ import { registerTeamTools } from './tools/team.js';
9
+ import { readConfig, detectProjectId, resolveTeamForProject } from './config.js';
10
+ import { cmdLogin, cmdLogout, cmdTeam, cmdStatus } from './cli.js';
8
11
  // Hive Supabase project (public, safe to embed)
9
12
  const HIVE_SUPABASE_URL = 'https://rainckslfkbmapqfkiaq.supabase.co';
10
13
  const HIVE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJhaW5ja3NsZmtibWFwcWZraWFxIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwMzczNjMsImV4cCI6MjA4NzYxMzM2M30.vvnfWQQui9AlbLjD0PgzCizybETy3IhtzQto-zSpD7o';
11
- function getConfig() {
14
+ /** Resolve config from config.json (browser auth) or env vars (legacy) */
15
+ function resolveConfig() {
16
+ const stored = readConfig();
17
+ const projectId = detectProjectId();
18
+ // Browser auth: config.json has tokens
19
+ if (stored.auth?.accessToken && stored.auth?.refreshToken) {
20
+ const team = resolveTeamForProject(stored, projectId);
21
+ return {
22
+ supabaseUrl: HIVE_SUPABASE_URL,
23
+ supabaseAnonKey: HIVE_ANON_KEY,
24
+ email: stored.auth.email,
25
+ password: '', // not needed with token auth
26
+ teamId: team?.teamId ?? '',
27
+ projectId,
28
+ accessToken: stored.auth.accessToken,
29
+ refreshToken: stored.auth.refreshToken,
30
+ };
31
+ }
32
+ // Legacy: env vars
12
33
  const email = process.env['HIVE_EMAIL'];
13
34
  const password = process.env['HIVE_PASSWORD'];
14
35
  if (!email || !password) {
15
- throw new Error('Missing env: HIVE_EMAIL and HIVE_PASSWORD are required');
36
+ console.error('[hive-mcp] No auth found. Run: hive-mcp login');
37
+ console.error('[hive-mcp] Or set HIVE_EMAIL and HIVE_PASSWORD env vars.');
38
+ process.exit(1);
16
39
  }
17
40
  return {
18
41
  supabaseUrl: process.env['SUPABASE_URL'] ?? HIVE_SUPABASE_URL,
@@ -20,18 +43,30 @@ function getConfig() {
20
43
  email,
21
44
  password,
22
45
  teamId: process.env['HIVE_TEAM_ID'] ?? '',
23
- projectId: process.env['HIVE_PROJECT_ID'] ?? 'hive',
46
+ projectId,
24
47
  accessToken: null,
48
+ refreshToken: null,
25
49
  };
26
50
  }
27
- async function main() {
28
- const config = getConfig();
51
+ async function startMcpServer() {
52
+ const config = resolveConfig();
29
53
  const db = getSupabase(config);
30
- // Authenticate with Hive
31
- console.error('[hive-mcp] Signing in...');
32
- const token = await signIn(db, config.email, config.password);
33
- config.accessToken = token;
34
- console.error('[hive-mcp] Authenticated successfully');
54
+ // Authenticate
55
+ let token;
56
+ if (config.accessToken && config.refreshToken) {
57
+ // Browser auth: restore session from stored tokens
58
+ console.error('[hive-mcp] Restoring session from saved tokens...');
59
+ token = await setSession(db, config.accessToken, config.refreshToken);
60
+ config.accessToken = token;
61
+ console.error('[hive-mcp] Session restored successfully');
62
+ }
63
+ else {
64
+ // Legacy: email/password sign-in
65
+ console.error('[hive-mcp] Signing in with email/password...');
66
+ token = await signIn(db, config.email, config.password);
67
+ config.accessToken = token;
68
+ console.error('[hive-mcp] Authenticated successfully');
69
+ }
35
70
  // Resolve team ID
36
71
  if (!config.teamId) {
37
72
  const teams = await getUserTeams(db);
@@ -42,24 +77,57 @@ async function main() {
42
77
  console.error(`[hive-mcp] Auto-selected team: ${teams[0].team_name} (${config.teamId})`);
43
78
  if (teams.length > 1) {
44
79
  console.error(`[hive-mcp] Available teams: ${teams.map((t) => `${t.team_name} (${t.team_id})`).join(', ')}`);
45
- console.error('[hive-mcp] Set HIVE_TEAM_ID to use a different team');
80
+ console.error('[hive-mcp] Run: hive-mcp team — to select a different team');
46
81
  }
47
82
  }
83
+ console.error(`[hive-mcp] Project: ${config.projectId}`);
48
84
  // Init embedder with Edge Function endpoint
49
85
  initEmbedder(config.supabaseUrl, token);
50
86
  const server = new FastMCP({
51
87
  name: 'hive',
52
- version: '1.0.2',
88
+ version: '1.2.0',
53
89
  });
54
- // Register all 14 tools
90
+ // Register all tools (14 existing + 3 new team tools)
55
91
  registerSessionTools(server, db, config);
56
92
  registerPlanTools(server, db, config);
57
93
  registerIndexTools(server, db, config);
94
+ registerTeamTools(server, db, config);
58
95
  // Start with stdio transport
59
96
  server.start({ transportType: 'stdio' });
60
97
  }
61
- main().catch((err) => {
62
- console.error(`[hive-mcp] Fatal: ${err.message}`);
63
- process.exit(1);
64
- });
98
+ // CLI router
99
+ const command = process.argv[2];
100
+ switch (command) {
101
+ case 'login':
102
+ cmdLogin().catch((err) => {
103
+ console.error(`Error: ${err.message}`);
104
+ process.exit(1);
105
+ });
106
+ break;
107
+ case 'logout':
108
+ cmdLogout().catch((err) => {
109
+ console.error(`Error: ${err.message}`);
110
+ process.exit(1);
111
+ });
112
+ break;
113
+ case 'team':
114
+ cmdTeam().catch((err) => {
115
+ console.error(`Error: ${err.message}`);
116
+ process.exit(1);
117
+ });
118
+ break;
119
+ case 'status':
120
+ cmdStatus().catch((err) => {
121
+ console.error(`Error: ${err.message}`);
122
+ process.exit(1);
123
+ });
124
+ break;
125
+ default:
126
+ // No command = start MCP server (called by Claude Code)
127
+ startMcpServer().catch((err) => {
128
+ console.error(`[hive-mcp] Fatal: ${err.message}`);
129
+ process.exit(1);
130
+ });
131
+ break;
132
+ }
65
133
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,gDAAgD;AAChD,MAAM,iBAAiB,GAAG,0CAA0C,CAAA;AACpE,MAAM,aAAa,GACjB,kNAAkN,CAAA;AAEpN,SAAS,SAAS;IAChB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,iBAAiB;QAC7D,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,aAAa;QAClE,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE;QACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,MAAM;QACnD,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAE9B,yBAAyB;IACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;IAC1B,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAEtD,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAChC,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5G,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC;QACzB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,wBAAwB;IACxB,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACxC,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACrC,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAEtC,6BAA6B;IAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { FastMCP } from 'fastmcp';
2
+ import type { SupabaseClient } from '@supabase/supabase-js';
3
+ import type { ServerConfig } from '../types.js';
4
+ export declare function registerTeamTools(server: FastMCP, db: SupabaseClient, config: ServerConfig): void;
5
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/tools/team.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,QAwE1F"}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { getUserTeams } from '../db.js';
3
+ import { readConfig, writeConfig, detectProjectId } from '../config.js';
4
+ export function registerTeamTools(server, db, config) {
5
+ // === team_list ===
6
+ server.addTool({
7
+ name: 'team_list',
8
+ description: 'List all teams the user belongs to, with current team highlighted.',
9
+ parameters: z.object({}),
10
+ execute: async () => {
11
+ const teams = await getUserTeams(db);
12
+ const lines = teams.map((t) => {
13
+ const marker = t.team_id === config.teamId ? ' ← current' : '';
14
+ return `- ${t.team_name} (${t.role}) [${t.team_id}]${marker}`;
15
+ });
16
+ return lines.join('\n') || 'No teams found.';
17
+ },
18
+ });
19
+ // === team_switch ===
20
+ server.addTool({
21
+ name: 'team_switch',
22
+ description: 'Switch to a different team. Use persist=true to save the mapping for the current project.',
23
+ parameters: z.object({
24
+ team_id: z.string().describe('Team UUID to switch to'),
25
+ persist: z.boolean().default(false).describe('Save mapping to config.json'),
26
+ }),
27
+ execute: async (args) => {
28
+ // Verify team exists
29
+ const teams = await getUserTeams(db);
30
+ const target = teams.find((t) => t.team_id === args.team_id);
31
+ if (!target) {
32
+ return `Error: Team ${args.team_id} not found. Use team_list to see available teams.`;
33
+ }
34
+ // Update in-memory config
35
+ const oldTeam = config.teamId;
36
+ config.teamId = target.team_id;
37
+ // Persist if requested
38
+ if (args.persist) {
39
+ const stored = readConfig();
40
+ const projectId = detectProjectId();
41
+ stored.projects = {
42
+ ...stored.projects,
43
+ [projectId]: { teamId: target.team_id, teamName: target.team_name },
44
+ };
45
+ stored.defaultTeamId = target.team_id;
46
+ stored.defaultTeamName = target.team_name;
47
+ writeConfig(stored);
48
+ }
49
+ return `Switched team: ${oldTeam} → ${target.team_name} (${target.team_id})${args.persist ? ' [saved]' : ' [session only]'}`;
50
+ },
51
+ });
52
+ // === project_info ===
53
+ server.addTool({
54
+ name: 'project_info',
55
+ description: 'Show current project ID, team ID, and team name. Use this to confirm which team/project sessions are being recorded to.',
56
+ parameters: z.object({}),
57
+ execute: async () => {
58
+ const teams = await getUserTeams(db);
59
+ const currentTeam = teams.find((t) => t.team_id === config.teamId);
60
+ return [
61
+ `Project: ${config.projectId}`,
62
+ `Team: ${currentTeam?.team_name ?? 'unknown'} (${config.teamId})`,
63
+ `Email: ${config.email || 'n/a'}`,
64
+ `Auth: ${config.accessToken ? 'authenticated' : 'not authenticated'}`,
65
+ ].join('\n');
66
+ },
67
+ });
68
+ }
69
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/tools/team.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -68,5 +68,6 @@ export interface ServerConfig {
68
68
  teamId: string;
69
69
  projectId: string;
70
70
  accessToken: string | null;
71
+ refreshToken: string | null;
71
72
  }
72
73
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAC5F,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC1E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;AAChE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AAG7D,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAA;AAC5D,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;AAGtD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAG1D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;CACnB;AAGD,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hive-mcp-server",
3
- "version": "1.1.0",
4
- "description": "Hive MCP server \u2014 AI dev session logs, plans, and semantic search via Supabase pgvector",
3
+ "version": "1.2.0",
4
+ "description": "Hive MCP server AI dev session logs, plans, and semantic search via Supabase pgvector",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {