@standardbeagle/mcp-tui 0.5.0 → 0.7.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.
@@ -0,0 +1,78 @@
1
+ connection:
2
+ type: stdio
3
+ command: npx
4
+ args:
5
+ - "-y"
6
+ - "@modelcontextprotocol/server-everything"
7
+ - "stdio"
8
+ connection_timeout: 30s
9
+ request_timeout: 30s
10
+ health_check_timeout: 5s
11
+ deny_unsafe_commands: true
12
+
13
+ transport:
14
+ http:
15
+ timeout: 30s
16
+ max_idle_conns: 100
17
+ max_idle_conns_per_host: 10
18
+ idle_conn_timeout: 90s
19
+ tls_min_version: "1.2"
20
+ user_agent: "mcp-tui/0.1.0"
21
+
22
+ stdio:
23
+ command_validation: true
24
+ max_processes: 10
25
+ process_timeout: 300s
26
+ kill_timeout: 10s
27
+
28
+ sse:
29
+ reconnect_interval: 5s
30
+ max_reconnect_attempts: 5
31
+ buffer_size: 8192
32
+ read_timeout: 30s
33
+ write_timeout: 10s
34
+
35
+ session:
36
+ health_check_interval: 30s
37
+ health_check_timeout: 5s
38
+ max_reconnect_attempts: 3
39
+ reconnect_delay: 2s
40
+ reconnect_backoff: exponential
41
+ max_reconnect_delay: 60s
42
+ enable_persistence: false
43
+ persistence_interval: 60s
44
+
45
+ error_handling:
46
+ enable_classification: true
47
+ user_friendly_messages: true
48
+ max_error_history: 1000
49
+ error_reporting: false
50
+ enable_retry: true
51
+ max_retry_attempts: 3
52
+ retry_delay: 1s
53
+ retry_backoff: exponential
54
+
55
+ debug:
56
+ enabled: false
57
+ log_level: info
58
+ event_tracing: false
59
+ max_traced_events: 1000
60
+ http_debugging: false
61
+ http_trace_body: false
62
+ http_trace_headers: false
63
+ pretty_print: true
64
+ colored_output: true
65
+ timestamp_format: "2006-01-02T15:04:05Z07:00"
66
+ export_events: false
67
+ export_format: json
68
+
69
+ cli:
70
+ output_format: table
71
+ quiet_mode: false
72
+ verbose_mode: false
73
+ no_color: false
74
+ show_progress: true
75
+ progress_style: bar
76
+ enable_clipboard: true
77
+ enable_paging: true
78
+ page_size: 25
@@ -0,0 +1,106 @@
1
+ {
2
+ "servers": [
3
+ {
4
+ "name": "filesystem",
5
+ "connection": {
6
+ "type": "stdio",
7
+ "command": "npx",
8
+ "args": [
9
+ "-y",
10
+ "@modelcontextprotocol/server-filesystem",
11
+ "/home/user/projects",
12
+ "/home/user/documents"
13
+ ]
14
+ },
15
+ "description": "File system access server",
16
+ "enabled": true
17
+ },
18
+ {
19
+ "name": "weather-api",
20
+ "connection": {
21
+ "type": "http",
22
+ "url": "http://localhost:8000/mcp"
23
+ },
24
+ "description": "Weather data API server",
25
+ "enabled": true,
26
+ "transport": {
27
+ "http": {
28
+ "headers": {
29
+ "Authorization": "Bearer ${WEATHER_API_KEY}"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "name": "database",
36
+ "connection": {
37
+ "type": "stdio",
38
+ "command": "python",
39
+ "args": [
40
+ "/opt/mcp-servers/database/server.py",
41
+ "--config",
42
+ "/etc/mcp/database.conf"
43
+ ]
44
+ },
45
+ "description": "Database access server",
46
+ "enabled": true,
47
+ "session": {
48
+ "health_check_interval": "60s",
49
+ "max_reconnect_attempts": 5
50
+ }
51
+ },
52
+ {
53
+ "name": "realtime-data",
54
+ "connection": {
55
+ "type": "sse",
56
+ "url": "http://localhost:3000/sse",
57
+ "headers": {
58
+ "X-API-Key": "${REALTIME_API_KEY}"
59
+ }
60
+ },
61
+ "description": "Real-time data streaming server",
62
+ "enabled": true,
63
+ "transport": {
64
+ "sse": {
65
+ "reconnect_interval": "10s",
66
+ "max_reconnect_attempts": 10,
67
+ "buffer_size": 16384
68
+ }
69
+ }
70
+ },
71
+ {
72
+ "name": "development-server",
73
+ "connection": {
74
+ "type": "stdio",
75
+ "command": "./dev-server",
76
+ "args": ["--mcp", "--verbose"],
77
+ "working_directory": "/home/user/dev/my-mcp-server"
78
+ },
79
+ "description": "Local development MCP server",
80
+ "enabled": false,
81
+ "debug": {
82
+ "enabled": true,
83
+ "log_level": "debug"
84
+ }
85
+ }
86
+ ],
87
+ "defaults": {
88
+ "connection": {
89
+ "connection_timeout": "30s",
90
+ "request_timeout": "30s",
91
+ "health_check_timeout": "5s"
92
+ },
93
+ "session": {
94
+ "health_check_interval": "30s",
95
+ "max_reconnect_attempts": 3,
96
+ "reconnect_delay": "2s",
97
+ "reconnect_backoff": "exponential"
98
+ },
99
+ "error_handling": {
100
+ "enable_classification": true,
101
+ "user_friendly_messages": true,
102
+ "enable_retry": true,
103
+ "max_retry_attempts": 3
104
+ }
105
+ }
106
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "version": "1.0",
3
+ "defaultServer": "filesystem",
4
+ "servers": {
5
+ "filesystem": {
6
+ "id": "filesystem",
7
+ "name": "Local Filesystem",
8
+ "description": "Access local files and directories",
9
+ "icon": "📁",
10
+ "transport": "stdio",
11
+ "command": "npx",
12
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/workspace"],
13
+ "success": false,
14
+ "tags": ["local", "files"]
15
+ },
16
+ "api-server": {
17
+ "id": "api-server",
18
+ "name": "API Gateway",
19
+ "description": "REST API integration server",
20
+ "icon": "🌐",
21
+ "transport": "http",
22
+ "url": "http://localhost:8080/mcp",
23
+ "headers": {
24
+ "X-API-Key": "${env:API_KEY}",
25
+ "Content-Type": "application/json"
26
+ },
27
+ "success": false,
28
+ "tags": ["api", "remote"]
29
+ },
30
+ "event-stream": {
31
+ "id": "event-stream",
32
+ "name": "Event Stream Server",
33
+ "description": "Real-time event streaming via SSE",
34
+ "icon": "⚡",
35
+ "transport": "sse",
36
+ "url": "http://localhost:3000/sse",
37
+ "headers": {
38
+ "Authorization": "Bearer ${env:EVENT_TOKEN}"
39
+ },
40
+ "success": false,
41
+ "tags": ["events", "realtime"]
42
+ },
43
+ "memory": {
44
+ "id": "memory",
45
+ "name": "Memory Server",
46
+ "description": "Persistent memory storage",
47
+ "icon": "🧠",
48
+ "transport": "stdio",
49
+ "command": "docker",
50
+ "args": ["run", "-i", "--rm", "-v", "mcp-memory:/data", "mcp/memory-server"],
51
+ "success": false,
52
+ "tags": ["memory", "docker"]
53
+ }
54
+ },
55
+ "recentConnections": [
56
+ {
57
+ "serverId": "filesystem",
58
+ "lastUsed": "2025-01-12T10:30:00Z",
59
+ "success": true
60
+ },
61
+ {
62
+ "serverId": "api-server",
63
+ "lastUsed": "2025-01-12T09:15:00Z",
64
+ "success": true
65
+ }
66
+ ]
67
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "version": "1.0",
3
+ "servers": {
4
+ "auth-service": {
5
+ "id": "auth-service",
6
+ "name": "Authentication Service",
7
+ "description": "Production authentication API",
8
+ "icon": "🔐",
9
+ "transport": "http",
10
+ "url": "https://auth.company.com/mcp",
11
+ "headers": {
12
+ "X-Service-Key": "${env:AUTH_SERVICE_KEY}",
13
+ "X-Environment": "production"
14
+ },
15
+ "success": false,
16
+ "tags": ["auth", "production", "api"]
17
+ },
18
+ "user-data": {
19
+ "id": "user-data",
20
+ "name": "User Data Service",
21
+ "description": "Production user data API",
22
+ "icon": "👤",
23
+ "transport": "http",
24
+ "url": "https://users.company.com/mcp",
25
+ "headers": {
26
+ "Authorization": "Bearer ${env:USER_SERVICE_TOKEN}",
27
+ "X-Client-Version": "1.0.0"
28
+ },
29
+ "success": false,
30
+ "tags": ["users", "production", "api"]
31
+ },
32
+ "monitoring": {
33
+ "id": "monitoring",
34
+ "name": "Monitoring Events",
35
+ "description": "Real-time monitoring and alerts",
36
+ "icon": "📊",
37
+ "transport": "sse",
38
+ "url": "https://monitor.company.com/events",
39
+ "headers": {
40
+ "Authorization": "Bearer ${env:MONITOR_TOKEN}",
41
+ "X-Stream-Type": "alerts"
42
+ },
43
+ "success": false,
44
+ "tags": ["monitoring", "production", "events"]
45
+ },
46
+ "analytics": {
47
+ "id": "analytics",
48
+ "name": "Analytics Database",
49
+ "description": "Production analytics PostgreSQL",
50
+ "icon": "🐘",
51
+ "transport": "stdio",
52
+ "command": "npx",
53
+ "args": ["-y", "@modelcontextprotocol/server-postgres", "${env:ANALYTICS_DB_URL}"],
54
+ "environment": {
55
+ "PGPASSWORD": "${env:ANALYTICS_DB_PASSWORD}"
56
+ },
57
+ "success": false,
58
+ "tags": ["analytics", "production", "database"]
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": "1.0",
3
+ "defaultServer": "everything",
4
+ "servers": {
5
+ "everything": {
6
+ "id": "everything",
7
+ "name": "Everything Server",
8
+ "description": "Official MCP server with everything for testing",
9
+ "icon": "🌟",
10
+ "transport": "stdio",
11
+ "command": "npx",
12
+ "args": ["-y", "@modelcontextprotocol/server-everything", "stdio"],
13
+ "success": false
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "stdio_examples": {
3
+ "npm_package": {
4
+ "connection": {
5
+ "type": "stdio",
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-everything", "stdio"]
8
+ }
9
+ },
10
+ "python_server": {
11
+ "connection": {
12
+ "type": "stdio",
13
+ "command": "python",
14
+ "args": ["server.py", "--mode", "mcp"]
15
+ }
16
+ },
17
+ "node_server": {
18
+ "connection": {
19
+ "type": "stdio",
20
+ "command": "node",
21
+ "args": ["dist/index.js"]
22
+ }
23
+ },
24
+ "go_binary": {
25
+ "connection": {
26
+ "type": "stdio",
27
+ "command": "./mcp-server",
28
+ "args": ["--config", "server.conf"]
29
+ }
30
+ },
31
+ "docker_container": {
32
+ "connection": {
33
+ "type": "stdio",
34
+ "command": "docker",
35
+ "args": ["run", "-i", "my-mcp-server:latest"]
36
+ }
37
+ }
38
+ },
39
+
40
+ "http_examples": {
41
+ "basic_http": {
42
+ "connection": {
43
+ "type": "http",
44
+ "url": "http://localhost:8080/mcp"
45
+ }
46
+ },
47
+ "https_with_auth": {
48
+ "connection": {
49
+ "type": "http",
50
+ "url": "https://api.example.com/mcp",
51
+ "headers": {
52
+ "Authorization": "Bearer ${API_TOKEN}",
53
+ "X-API-Version": "2025-01-01"
54
+ }
55
+ },
56
+ "transport": {
57
+ "http": {
58
+ "tls_min_version": "1.3",
59
+ "timeout": "60s"
60
+ }
61
+ }
62
+ },
63
+ "http_with_proxy": {
64
+ "connection": {
65
+ "type": "http",
66
+ "url": "http://internal.corp.com/mcp"
67
+ },
68
+ "transport": {
69
+ "http": {
70
+ "proxy_url": "http://proxy.corp.com:8080",
71
+ "proxy_headers": {
72
+ "Proxy-Authorization": "Basic ${PROXY_AUTH}"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ },
78
+
79
+ "sse_examples": {
80
+ "basic_sse": {
81
+ "connection": {
82
+ "type": "sse",
83
+ "url": "http://localhost:3000/sse"
84
+ }
85
+ },
86
+ "sse_with_auth": {
87
+ "connection": {
88
+ "type": "sse",
89
+ "url": "https://stream.example.com/mcp/sse",
90
+ "headers": {
91
+ "Authorization": "Bearer ${STREAM_TOKEN}"
92
+ }
93
+ },
94
+ "transport": {
95
+ "sse": {
96
+ "reconnect_interval": "5s",
97
+ "max_reconnect_attempts": 10,
98
+ "buffer_size": 16384,
99
+ "read_timeout": "0s"
100
+ }
101
+ }
102
+ },
103
+ "sse_with_event_filtering": {
104
+ "connection": {
105
+ "type": "sse",
106
+ "url": "http://localhost:3000/events"
107
+ },
108
+ "transport": {
109
+ "sse": {
110
+ "event_types": ["tool", "resource", "log"],
111
+ "ignore_events": ["heartbeat", "ping"]
112
+ }
113
+ }
114
+ }
115
+ },
116
+
117
+ "streamable_http_examples": {
118
+ "basic_streamable": {
119
+ "connection": {
120
+ "type": "streamable-http",
121
+ "url": "http://localhost:8080/mcp/stream"
122
+ }
123
+ },
124
+ "streamable_with_chunking": {
125
+ "connection": {
126
+ "type": "streamable-http",
127
+ "url": "https://api.example.com/v2/mcp"
128
+ },
129
+ "transport": {
130
+ "http": {
131
+ "timeout": "0s",
132
+ "default_headers": {
133
+ "Accept": "application/x-ndjson",
134
+ "X-Stream-Mode": "chunked"
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "@standardbeagle/mcp-tui",
3
- "version": "0.5.0",
4
- "description": "A Terminal User Interface (TUI) and CLI for Model Context Protocol (MCP) servers",
3
+ "version": "0.7.0",
4
+ "description": "A comprehensive Terminal User Interface (TUI) and Command Line Interface (CLI) for Model Context Protocol (MCP) servers with full tool, prompt, and resource management",
5
5
  "main": "index.js",
6
6
  "bin": {
7
7
  "mcp-tui": "bin/mcp-tui.js"
8
8
  },
9
9
  "scripts": {
10
10
  "postinstall": "node scripts/install.js",
11
- "test": "echo \"Error: no test specified\" && exit 1"
11
+ "test": "go test ./...",
12
+ "build": "go build -o bin/mcp-tui .",
13
+ "prepare": "npm run build"
12
14
  },
13
15
  "repository": {
14
16
  "type": "git",
@@ -21,7 +23,13 @@
21
23
  "terminal",
22
24
  "cli",
23
25
  "ai",
24
- "llm"
26
+ "llm",
27
+ "tools",
28
+ "prompts",
29
+ "resources",
30
+ "server-testing",
31
+ "debugging",
32
+ "development"
25
33
  ],
26
34
  "author": "standardbeagle",
27
35
  "license": "MIT",
@@ -36,8 +44,11 @@
36
44
  "files": [
37
45
  "bin/",
38
46
  "scripts/",
47
+ "examples/",
39
48
  "README.md",
40
- "LICENSE"
49
+ "LICENSE",
50
+ "CHANGELOG.md",
51
+ "QUICK_START.md"
41
52
  ],
42
53
  "engines": {
43
54
  "node": ">=14.0.0"
@@ -61,6 +61,20 @@ async function downloadBinary() {
61
61
  fs.mkdirSync(binariesDir, { recursive: true });
62
62
  }
63
63
 
64
+ // Check if binary is already included in the npm package
65
+ const includedBinaryPath = path.join(__dirname, '..', 'bin', binaryName);
66
+ if (fs.existsSync(includedBinaryPath)) {
67
+ console.log('Using pre-built binary from package...');
68
+ // Copy the binary to the expected location
69
+ fs.copyFileSync(includedBinaryPath, binaryPath);
70
+ // Make binary executable
71
+ if (process.platform !== 'win32') {
72
+ fs.chmodSync(binaryPath, 0o755);
73
+ }
74
+ console.log('Binary installed successfully!');
75
+ return;
76
+ }
77
+
64
78
  // For development, try to build from source if available
65
79
  if (fs.existsSync(path.join(__dirname, '..', '..', 'go.mod'))) {
66
80
  console.log('Development mode: Building from source...');