tabby-mcp-server 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/LICENSE +21 -0
- package/README.md +314 -0
- package/dist/index.js +62093 -0
- package/dist/index.js.map +1 -0
- package/package.json +84 -0
- package/typings/components/mcpSettingsTab.component.d.ts +20 -0
- package/typings/index.d.ts +37 -0
- package/typings/services/dialog.service.d.ts +18 -0
- package/typings/services/mcpConfigProvider.d.ts +20 -0
- package/typings/services/mcpLogger.service.d.ts +37 -0
- package/typings/services/mcpService.d.ts +58 -0
- package/typings/settings.d.ts +10 -0
- package/typings/tools/base-tool-category.d.ts +15 -0
- package/typings/tools/tabManagement.d.ts +29 -0
- package/typings/tools/terminal.d.ts +68 -0
- package/typings/types/types.d.ts +83 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 GentlemanHu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# π Tabby-MCP
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
7
|
+
[](https://tabby.sh/)
|
|
8
|
+
[](https://modelcontextprotocol.io/)
|
|
9
|
+
[](https://github.com/GentlemanHu/Tabby-MCP/releases)
|
|
10
|
+
[](#-about-this-project)
|
|
11
|
+
[](#%EF%B8%8F-platform-support)
|
|
12
|
+
|
|
13
|
+
**A Comprehensive MCP Server Plugin for Tabby Terminal**
|
|
14
|
+
|
|
15
|
+
*Connect AI assistants to your terminal with full control capabilities β 18 MCP tools included*
|
|
16
|
+
|
|
17
|
+
[English](README.md) | [δΈζ](README_CN.md)
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## β¨ Features
|
|
24
|
+
|
|
25
|
+
<table>
|
|
26
|
+
<tr>
|
|
27
|
+
<td width="50%">
|
|
28
|
+
|
|
29
|
+
### π₯οΈ Terminal Control
|
|
30
|
+
- Execute commands with output capture
|
|
31
|
+
- Read terminal buffer content
|
|
32
|
+
- Abort running commands
|
|
33
|
+
- List all terminal sessions
|
|
34
|
+
|
|
35
|
+
</td>
|
|
36
|
+
<td width="50%">
|
|
37
|
+
|
|
38
|
+
### π Tab Management
|
|
39
|
+
- Create/Close/Duplicate tabs
|
|
40
|
+
- Navigate between tabs
|
|
41
|
+
- Move tabs left/right
|
|
42
|
+
- Reopen closed tabs
|
|
43
|
+
|
|
44
|
+
</td>
|
|
45
|
+
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<td>
|
|
48
|
+
|
|
49
|
+
### π Profile Management
|
|
50
|
+
- List all terminal profiles
|
|
51
|
+
- Open new tabs with profiles
|
|
52
|
+
- SSH quick connect
|
|
53
|
+
- Profile selector dialog
|
|
54
|
+
|
|
55
|
+
</td>
|
|
56
|
+
<td>
|
|
57
|
+
|
|
58
|
+
### π Security Features
|
|
59
|
+
- Pair programming mode
|
|
60
|
+
- Command confirmation dialogs
|
|
61
|
+
- Comprehensive logging
|
|
62
|
+
- Safe command execution
|
|
63
|
+
|
|
64
|
+
</td>
|
|
65
|
+
</tr>
|
|
66
|
+
</table>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## π¦ Installation
|
|
71
|
+
|
|
72
|
+
### Method 1: Tabby Plugin Manager (Easiest)
|
|
73
|
+
|
|
74
|
+
Search for `tabby-mcp-server` directly in Tabby's built-in Plugin Manager:
|
|
75
|
+
|
|
76
|
+
1. Open Tabby β **Settings** β **Plugins**
|
|
77
|
+
2. Search for `tabby-mcp-server`
|
|
78
|
+
3. Click **Install**
|
|
79
|
+
4. Restart Tabby
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### Method 2: Quick Install Script
|
|
84
|
+
|
|
85
|
+
**No Node.js required!** Downloads pre-built release from GitHub.
|
|
86
|
+
|
|
87
|
+
<details open>
|
|
88
|
+
<summary><b>π macOS / π§ Linux</b></summary>
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
curl -fsSL https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh | bash
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Or download and run:
|
|
95
|
+
```bash
|
|
96
|
+
wget https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh
|
|
97
|
+
bash install.sh
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
</details>
|
|
101
|
+
|
|
102
|
+
<details>
|
|
103
|
+
<summary><b>πͺ Windows (PowerShell)</b></summary>
|
|
104
|
+
|
|
105
|
+
```powershell
|
|
106
|
+
irm https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.ps1 | iex
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Or download and run:
|
|
110
|
+
```powershell
|
|
111
|
+
Invoke-WebRequest -Uri https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.ps1 -OutFile install.ps1
|
|
112
|
+
.\install.ps1
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
</details>
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### Method 3: Build from Source
|
|
120
|
+
|
|
121
|
+
Requires **Node.js 18+**.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Clone
|
|
125
|
+
git clone https://github.com/GentlemanHu/Tabby-MCP.git
|
|
126
|
+
cd Tabby-MCP
|
|
127
|
+
|
|
128
|
+
# Build & Install
|
|
129
|
+
bash scripts/build-and-install.sh
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Or manually:
|
|
133
|
+
```bash
|
|
134
|
+
npm install --legacy-peer-deps
|
|
135
|
+
npm run build
|
|
136
|
+
# Then copy dist/ and package.json to Tabby plugins folder
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### π After Installation
|
|
142
|
+
|
|
143
|
+
1. **Restart Tabby**
|
|
144
|
+
2. Go to **Settings β MCP**
|
|
145
|
+
3. Start the MCP server
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## π Connecting AI Clients
|
|
150
|
+
|
|
151
|
+
### SSE Mode (Cursor / Windsurf)
|
|
152
|
+
|
|
153
|
+
Add to `~/.cursor/mcp.json`:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"mcpServers": {
|
|
158
|
+
"Tabby MCP": {
|
|
159
|
+
"type": "sse",
|
|
160
|
+
"url": "http://localhost:3001/sse"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### STDIO Mode (Claude Desktop / VS Code)
|
|
167
|
+
|
|
168
|
+
For clients that don't support SSE, use the STDIO bridge:
|
|
169
|
+
|
|
170
|
+
**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"mcpServers": {
|
|
175
|
+
"tabby-mcp": {
|
|
176
|
+
"command": "node",
|
|
177
|
+
"args": ["/path/to/Tabby-MCP/scripts/stdio-bridge.js"]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**VS Code / Other IDEs:**
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"mcp": {
|
|
188
|
+
"servers": {
|
|
189
|
+
"tabby-mcp": {
|
|
190
|
+
"type": "stdio",
|
|
191
|
+
"command": "node",
|
|
192
|
+
"args": ["scripts/stdio-bridge.js"],
|
|
193
|
+
"cwd": "/path/to/Tabby-MCP"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
> **Note**: STDIO mode requires Node.js installed. The bridge script connects to the SSE server running in Tabby.
|
|
201
|
+
|
|
202
|
+
### Endpoints
|
|
203
|
+
|
|
204
|
+
| Endpoint | URL |
|
|
205
|
+
|----------|-----|
|
|
206
|
+
| SSE | `http://localhost:3001/sse` |
|
|
207
|
+
| Health | `http://localhost:3001/health` |
|
|
208
|
+
| Info | `http://localhost:3001/info` |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## π οΈ Available Tools
|
|
213
|
+
|
|
214
|
+
### Terminal Control (4)
|
|
215
|
+
|
|
216
|
+
| Tool | Description |
|
|
217
|
+
|------|-------------|
|
|
218
|
+
| `get_session_list` | List all terminal sessions |
|
|
219
|
+
| `exec_command` | Execute command with output |
|
|
220
|
+
| `get_terminal_buffer` | Read terminal buffer |
|
|
221
|
+
| `abort_command` | Abort running command |
|
|
222
|
+
|
|
223
|
+
### Tab Management (10)
|
|
224
|
+
|
|
225
|
+
| Tool | Description |
|
|
226
|
+
|------|-------------|
|
|
227
|
+
| `list_tabs` | List all open tabs |
|
|
228
|
+
| `select_tab` | Focus a specific tab |
|
|
229
|
+
| `close_tab` | Close a tab |
|
|
230
|
+
| `close_all_tabs` | Close all tabs |
|
|
231
|
+
| `duplicate_tab` | Duplicate a tab |
|
|
232
|
+
| `next_tab` / `previous_tab` | Navigate tabs |
|
|
233
|
+
| `move_tab_left` / `move_tab_right` | Reorder tabs |
|
|
234
|
+
| `reopen_last_tab` | Reopen closed tab |
|
|
235
|
+
|
|
236
|
+
### Profile Management (4)
|
|
237
|
+
|
|
238
|
+
| Tool | Description |
|
|
239
|
+
|------|-------------|
|
|
240
|
+
| `list_profiles` | List terminal profiles |
|
|
241
|
+
| `open_profile` | Open tab with profile |
|
|
242
|
+
| `show_profile_selector` | Show profile dialog |
|
|
243
|
+
| `quick_connect` | SSH quick connect |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## βοΈ Configuration
|
|
248
|
+
|
|
249
|
+
| Setting | Description | Default |
|
|
250
|
+
|---------|-------------|---------|
|
|
251
|
+
| Port | MCP server port | 3001 |
|
|
252
|
+
| Start on Boot | Auto-start server | true |
|
|
253
|
+
| Pair Programming | Confirm commands | true |
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## β οΈ Platform Support
|
|
258
|
+
|
|
259
|
+
| Platform | Status | Notes |
|
|
260
|
+
|----------|--------|-------|
|
|
261
|
+
| macOS | β
**Tested** | Fully functional |
|
|
262
|
+
| Windows | β οΈ Untested | Should work β please report issues |
|
|
263
|
+
| Linux | β οΈ Untested | Should work β please report issues |
|
|
264
|
+
|
|
265
|
+
> **Note**: This plugin has been developed and tested on macOS. Windows and Linux support should work but is unverified. Community testing and feedback welcome!
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## π€ About This Project
|
|
270
|
+
|
|
271
|
+
<div align="center">
|
|
272
|
+
|
|
273
|
+
### π¨ 95%+ AI Generated
|
|
274
|
+
|
|
275
|
+
This project was created almost entirely by AI (Claude/Gemini) through pair programming.
|
|
276
|
+
The human's role was primarily to provide requirements and test the results.
|
|
277
|
+
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
### Acknowledgments
|
|
281
|
+
|
|
282
|
+
This project builds upon the work of [tabby-mcp-server](https://github.com/thuanpham582002/tabby-mcp-server) by [@thuanpham582002](https://github.com/thuanpham582002).
|
|
283
|
+
|
|
284
|
+
**Improvements over the original:**
|
|
285
|
+
|
|
286
|
+
| Feature | Original | This Project |
|
|
287
|
+
|---------|----------|--------------|
|
|
288
|
+
| MCP Tools | 4 | **18** |
|
|
289
|
+
| Tab Management | β | β
|
|
|
290
|
+
| Profile/SSH | β | β
|
|
|
291
|
+
| Init Bug | Has issue | β
Fixed |
|
|
292
|
+
| Install Script | Manual | β
One-liner |
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## π€ Contributing
|
|
297
|
+
|
|
298
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## π License
|
|
303
|
+
|
|
304
|
+
MIT License - see [LICENSE](LICENSE)
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
<div align="center">
|
|
309
|
+
|
|
310
|
+
Made with β€οΈ by AI and [GentlemanHu](https://github.com/GentlemanHu)
|
|
311
|
+
|
|
312
|
+
β **Star this repo if you find it useful!**
|
|
313
|
+
|
|
314
|
+
</div>
|