tideways-mcp-server 0.1.1 → 1.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [Mouhammed Diop]
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 CHANGED
@@ -1,56 +1,45 @@
1
1
  # Tideways MCP Server
2
2
 
3
- A Model Context Protocol (MCP) server that enables AI assistants to query Tideways performance monitoring data and provide conversational performance insights for PHP applications.
3
+ [![CI/CD Pipeline](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/ci.yml)
4
+ [![Release](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/release.yml/badge.svg)](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/release.yml)
5
+ [![Security Pipeline](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/security.yml/badge.svg)](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/security.yml)
6
+ [![CodeQL](https://github.com/abuhamza/tideways-mcp-server/actions/workflows/security.yml/badge.svg?event=push)](https://github.com/abuhamza/tideways-mcp-server/security/code-scanning)
7
+ [![codecov](https://codecov.io/gh/abuhamza/tideways-mcp-server/branch/main/graph/badge.svg)](https://codecov.io/gh/abuhamza/tideways-mcp-server)
8
+ [![npm version](https://img.shields.io/npm/v/tideways-mcp-server.svg)](https://www.npmjs.com/package/tideways-mcp-server)
9
+ [![npm downloads](https://img.shields.io/npm/dt/tideways-mcp-server.svg)](https://www.npmjs.com/package/tideways-mcp-server)
10
+ [![npm audit](https://img.shields.io/badge/npm%20audit-0%20vulnerabilities-brightgreen)](https://www.npmjs.com/package/tideways-mcp-server)
11
+ [![Dependabot](https://img.shields.io/badge/Dependabot-enabled-brightgreen)](https://github.com/abuhamza/tideways-mcp-server/security/dependabot)
4
12
 
5
- ## 🚀 Features
13
+ A Model Context Protocol (MCP) server that enables AI assistants to query [Tideways](https://tideways.com/) performance monitoring data and provide conversational performance insights for PHP applications.
14
+
15
+ > **About Tideways**: [Tideways](https://tideways.com/) is a powerful application performance monitoring (APM) platform designed specifically for PHP applications. For technical details, see the [REST API documentation](https://support.tideways.com/documentation/reference/index.html).
16
+
17
+ ## Features
6
18
 
7
19
  - **Conversational Performance Insights**: Get performance data in natural language format optimized for AI assistants
8
20
  - **AI Assistant Integration**: Works with Claude Desktop, Cursor, Claude Code, and other MCP-compatible tools
9
- - **Real-time Performance Metrics**: Query current performance data with intelligent caching
21
+ - **Real-time Performance Metrics**: Query current performance data with intelligent rate limiting
10
22
  - **Issue Analysis**: Retrieve and analyze errors, exceptions, and performance issues
11
- - **Rate Limiting & Caching**: Intelligent API management with respect for Tideways rate limits
23
+ - **Intelligent API Management**: Built-in rate limiting with respect for Tideways API constraints
12
24
  - **Robust Error Handling**: Comprehensive error handling with user-friendly messages
13
25
 
14
- ## 📋 Prerequisites
15
-
16
- - Node.js 18.0 or higher
17
- - Valid Tideways API token with appropriate scopes (`metrics`, `issues`, `traces`)
18
- - Access to a Tideways organization and project
19
-
20
- ## 🛠️ Installation
21
-
22
- ### Option 1: Clone and Install
23
-
24
- ```bash
25
- git clone https://github.com/abuhamza/mcp-tideways.git
26
- cd mcp-tideways
27
- npm install
28
- npm run build
29
- ```
30
-
31
- ### Option 2: Install from npm (coming soon)
26
+ **Package Information:**
27
+ - **NPM Package**: [`tideways-mcp-server`](https://www.npmjs.com/package/tideways-mcp-server)
28
+ - **Repository**: [abuhamza/tideways-mcp-server](https://github.com/abuhamza/tideways-mcp-server)
29
+ - **Latest Version**: Check [npm version badge](#) above
30
+ - **License**: MIT
32
31
 
33
- ```bash
34
- npm install -g tideways-mcp-server
35
- ```
32
+ ## Prerequisites
36
33
 
37
- ## ⚙️ Configuration
34
+ - [Tideways](https://tideways.com/) account with a valid API token
35
+ - API token with appropriate scopes (`metrics`, `issues`, `traces`) - see [API documentation](https://support.tideways.com/documentation/reference/index.html)
36
+ - Access to a Tideways organization and project
38
37
 
39
- Create a `.env` file in the project root:
38
+ ## AI Integration Setup
40
39
 
41
- ```env
42
- # Required Configuration
43
- TIDEWAYS_TOKEN=your_tideways_api_token
44
- TIDEWAYS_ORG=your_organization_name
45
- TIDEWAYS_PROJECT=your_project_name
40
+ **This is an MCP (Model Context Protocol) server designed exclusively for AI assistants. It cannot be used as a standalone CLI tool.**
46
41
 
47
- # Optional Configuration
48
- TIDEWAYS_BASE_URL=https://app.tideways.io/apps/api
49
- TIDEWAYS_MAX_RETRIES=3
50
- TIDEWAYS_REQUEST_TIMEOUT=30000
51
- SERVER_PORT=3000
52
- LOG_LEVEL=info
53
- ```
42
+ The server integrates with AI assistants through MCP configuration using the npm package `tideways-mcp-server`.
54
43
 
55
44
  ### Environment Variables
56
45
 
@@ -62,34 +51,86 @@ LOG_LEVEL=info
62
51
  | `TIDEWAYS_BASE_URL` | ❌ | `https://app.tideways.io/apps/api` | Tideways API base URL |
63
52
  | `TIDEWAYS_MAX_RETRIES` | ❌ | `3` | Maximum API retry attempts |
64
53
  | `TIDEWAYS_REQUEST_TIMEOUT` | ❌ | `30000` | API request timeout (ms) |
65
- | `SERVER_PORT` | ❌ | `3000` | Server port |
66
54
  | `LOG_LEVEL` | ❌ | `info` | Log level (debug, info, warn, error) |
67
55
 
68
- ## 🚀 Usage
56
+ ## AI Assistant Integration
69
57
 
70
- ### Running the Server
58
+ **This server only works with MCP-compatible AI assistants. It uses stdio transport.**
71
59
 
72
- ```bash
73
- # Development mode
74
- npm run dev
60
+ #### Claude Desktop
61
+
62
+ Add to your Claude Desktop MCP configuration file:
63
+
64
+ **Location:**
65
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
66
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
67
+ - Linux: `~/.config/claude/claude_desktop_config.json`
75
68
 
76
- # Production mode
77
- npm run start
69
+ **Configuration (Recommended - using npx):**
70
+ ```json
71
+ {
72
+ "mcpServers": {
73
+ "tideways": {
74
+ "command": "npx",
75
+ "args": ["tideways-mcp-server"],
76
+ "env": {
77
+ "TIDEWAYS_TOKEN": "your_token",
78
+ "TIDEWAYS_ORG": "your_org",
79
+ "TIDEWAYS_PROJECT": "your_project"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
78
85
 
79
- # Or run built version directly
80
- node dist/index.js
86
+ **Alternative (if installed globally):**
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "tideways": {
91
+ "command": "tideways-mcp-server",
92
+ "env": {
93
+ "TIDEWAYS_TOKEN": "your_token",
94
+ "TIDEWAYS_ORG": "your_org",
95
+ "TIDEWAYS_PROJECT": "your_project"
96
+ }
97
+ }
98
+ }
99
+ }
81
100
  ```
82
101
 
83
- ### Claude Desktop Integration
102
+ #### Cursor IDE
84
103
 
85
- Add to your Claude Desktop MCP configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
104
+ Cursor supports MCP through its settings. Add the server configuration in Cursor's MCP settings:
86
105
 
106
+ 1. Open Cursor Settings
107
+ 2. Tools & Integration
108
+ 3. Add a new server with:
87
109
  ```json
88
110
  {
89
111
  "mcpServers": {
90
112
  "tideways": {
91
- "command": "node",
92
- "args": ["/path/to/tideways-mcp-server/dist/index.js"],
113
+ "command": "tideways-mcp-server",
114
+ "env": {
115
+ "TIDEWAYS_TOKEN": "your_token",
116
+ "TIDEWAYS_ORG": "your_org",
117
+ "TIDEWAYS_PROJECT": "your_project"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ ```
123
+
124
+ #### VS Code with MCP Extension
125
+
126
+ If using VS Code with an MCP-compatible extension:
127
+
128
+ ```json
129
+ {
130
+ "mcp.servers": {
131
+ "tideways": {
132
+ "command": "npx",
133
+ "args": ["tideways-mcp-server"],
93
134
  "env": {
94
135
  "TIDEWAYS_TOKEN": "your_token",
95
136
  "TIDEWAYS_ORG": "your_org",
@@ -128,7 +169,7 @@ Once configured, you can ask your AI assistant questions like:
128
169
  - "Suggest code refactoring based on performance bottlenecks"
129
170
  - "Analyze memory usage patterns and recommend optimizations"
130
171
 
131
- ## 🛠️ Available MCP Tools
172
+ ## Available MCP Tools
132
173
 
133
174
  All tools return structured JSON data for optimal AI assistant integration. The MCP server follows a "raw JSON approach" where tools return complete API responses without formatting, allowing AI assistants to analyze and present data flexibly.
134
175
 
@@ -142,12 +183,17 @@ Retrieve aggregate performance metrics and system-wide statistics.
142
183
  - `env` (optional): Filter by specific environment
143
184
  - `s` (optional): Filter by specific service name
144
185
 
145
- **Example Usage:**
186
+ **Conversational Examples:**
146
187
  ```
147
- get my performance metrics for the last 6 hours
148
- show me metrics for the API service in production
188
+ "What's the current performance of my application?"
189
+ "Show me performance metrics for the last 6 hours"
190
+ "Get metrics for the API service in production"
191
+ "How is my web service performing in the staging environment?"
192
+ "Compare today's metrics with the last 24 hours"
149
193
  ```
150
194
 
195
+ **Returns:** Complete performance data including response times, throughput, error rates, memory usage, and database performance.
196
+
151
197
  ### `get_performance_summary`
152
198
 
153
199
  Retrieve time-series performance summary data in 15-minute intervals for trend analysis.
@@ -155,12 +201,17 @@ Retrieve time-series performance summary data in 15-minute intervals for trend a
155
201
  **Parameters:**
156
202
  - `s` (optional): Service name to filter by (e.g., "web", "api", "worker"). Default: "web"
157
203
 
158
- **Example Usage:**
204
+ **Conversational Examples:**
159
205
  ```
160
- show me the performance summary trends
161
- get performance summary for the API service
206
+ "Show me performance trends over the last few hours"
207
+ "Get the performance summary for my API service"
208
+ "How has my web service been performing recently?"
209
+ "Display trends for the worker service"
210
+ "Show me response time patterns for today"
162
211
  ```
163
212
 
213
+ **Returns:** Time-series data with 15-minute intervals showing response times, request counts, error rates, and resource utilization trends.
214
+
164
215
  ### `get_issues`
165
216
 
166
217
  Retrieve and analyze recent errors, exceptions, and performance issues.
@@ -170,15 +221,21 @@ Retrieve and analyze recent errors, exceptions, and performance issues.
170
221
  - `status` (optional): "open", "new", "resolved", "not_error", "ignored", "all" (default: "open")
171
222
  - `page` (optional): Page number for pagination (default: 1)
172
223
 
173
- **Example Usage:**
224
+ **Conversational Examples:**
174
225
  ```
175
- show me all open errors
176
- get slow SQL queries from today
226
+ "What errors are currently happening in my application?"
227
+ "Show me all open errors from the last 24 hours"
228
+ "Get slow SQL queries that need attention"
229
+ "Are there any new performance issues I should know about?"
230
+ "List all deprecated function calls in my code"
231
+ "Show me resolved errors to understand what was fixed"
177
232
  ```
178
233
 
234
+ **Returns:** Detailed error information including stack traces, occurrence frequency, affected endpoints, and suggested fixes for common issues.
235
+
179
236
  ### `get_traces`
180
237
 
181
- Analyze individual trace samples for detailed bottleneck identification and performance debugging.
238
+ Analyze individual trace samples for detailed bottleneck identification and performance debugging. Includes advanced AI-powered bottleneck detection and optimization recommendations.
182
239
 
183
240
  **Parameters:**
184
241
  - `env` (optional): Environment name (e.g., "production", "staging")
@@ -193,13 +250,26 @@ Analyze individual trace samples for detailed bottleneck identification and perf
193
250
  - `sort_by` (optional): "response_time", "date", "memory" (default: "response_time")
194
251
  - `sort_order` (optional): "ASC", "DESC" (default: "DESC")
195
252
 
196
- **Example Usage:**
253
+ **Conversational Examples:**
197
254
  ```
198
- analyze traces for /api/products and find slow requests
199
- get traces with response time over 1000ms from the last hour
200
- find traces with callgraph data for the checkout endpoint
255
+ "Analyze traces for the /api/products endpoint and find bottlenecks"
256
+ "Show me the slowest requests from the last hour with details"
257
+ "Find traces with callgraph data for the checkout process"
258
+ "What's causing slow response times in my user registration flow?"
259
+ "Detect N+1 query problems in my product listing page"
260
+ "Analyze memory usage patterns in my API endpoints"
261
+ "Find database bottlenecks in the /dashboard endpoint"
262
+ "Show me traces where response time is over 2 seconds"
201
263
  ```
202
264
 
265
+ **Returns:** Detailed trace data with AI-powered analysis including:
266
+ - Individual request traces with timing breakdown
267
+ - Bottleneck detection (database, CPU, memory, API calls)
268
+ - N+1 query detection and suggested fixes
269
+ - Performance optimization recommendations
270
+ - Call graph visualization data
271
+ - Resource utilization analysis
272
+
203
273
  ### `get_historical_data`
204
274
 
205
275
  Retrieve historical performance data for specific dates with configurable granularity.
@@ -208,13 +278,19 @@ Retrieve historical performance data for specific dates with configurable granul
208
278
  - `date` (required): Date in YYYY-MM-DD format
209
279
  - `granularity` (optional): "day", "week", "month" (default: "day")
210
280
 
211
- **Example Usage:**
281
+ **Conversational Examples:**
212
282
  ```
213
- get historical data for 2025-08-01
214
- show me weekly performance data for last Monday
283
+ "Get historical performance data for August 1st, 2025"
284
+ "Show me weekly performance trends for last Monday"
285
+ "Compare this month's performance with last month"
286
+ "How did my application perform on 2025-07-15?"
287
+ "Get daily performance data for the past week"
288
+ "Show me monthly trends for the last quarter"
215
289
  ```
216
290
 
217
- ## 🧪 Development
291
+ **Returns:** Historical performance metrics with trend analysis, comparisons to previous periods, and insights into performance patterns over time.
292
+
293
+ ## Development
218
294
 
219
295
  ### Project Structure
220
296
 
@@ -276,7 +352,7 @@ npm run lint:fix
276
352
  npm run format
277
353
  ```
278
354
 
279
- ## 🏗️ Architecture
355
+ ## Architecture
280
356
 
281
357
  ### Core Components
282
358
 
@@ -290,9 +366,9 @@ npm run format
290
366
  ### Data Flow
291
367
 
292
368
  ```
293
- AI Assistant → MCP Protocol → TidewaysMCPServer → TidewaysClient → Tideways API
294
- ↓
295
- Raw JSON Response → AI Assistant
369
+ AI Assistant ←→ MCP Protocol (stdio) ←→ TidewaysMCPServer → TidewaysClient → Tideways API
370
+ ↓
371
+ Raw JSON Response → AI Assistant
296
372
  ```
297
373
 
298
374
  ### Response Format Philosophy
@@ -342,9 +418,10 @@ The server provides structured JSON logs for monitoring:
342
418
  ```
343
419
  Error: Authentication failed. Please check your API token.
344
420
  ```
345
- - Verify `TIDEWAYS_TOKEN` is correct and has required scopes
421
+ - Verify `TIDEWAYS_TOKEN` is correct and has required scopes (`metrics`, `issues`, `traces`)
346
422
  - Check token hasn't expired
347
423
  - Ensure organization and project names are correct
424
+ - Verify environment variables are properly loaded
348
425
 
349
426
  **Rate Limit Exceeded**
350
427
  ```
@@ -352,48 +429,88 @@ Error: Rate limit exceeded. Please try again later.
352
429
  ```
353
430
  - Wait for rate limit reset (shown in error message)
354
431
  - Reduce query frequency
355
- - Enable caching to minimize API calls
432
+ - Built-in rate limiting respects Tideways API constraints (900 requests/hour)
356
433
 
357
434
  **Connection Issues**
358
435
  ```
359
436
  Error: Network error: Unable to connect to Tideways API.
360
437
  ```
361
438
  - Check internet connection
362
- - Verify Tideways API is accessible
363
- - Check if corporate firewall blocks API access
439
+ - Verify Tideways API is accessible from your network
440
+ - Check if corporate firewall blocks API access to `app.tideways.io`
441
+ - Test with curl: `curl -H "Authorization: Bearer YOUR_TOKEN" https://app.tideways.io/apps/api/`
442
+
443
+ **MCP Integration Issues**
444
+ ```
445
+ Error: MCP server not responding or connection failed
446
+ ```
447
+ - Restart your AI assistant (Claude Desktop, Cursor, etc.)
448
+ - Verify MCP configuration file syntax is correct
449
+ - Check that the server command path is correct
450
+ - Ensure environment variables are properly set in MCP config
451
+ - Try running the server manually first: `npx tideways-mcp-server`
452
+
453
+ **Package Installation Issues**
454
+ ```
455
+ Error: Command 'tideways-mcp-server' not found
456
+ ```
457
+ - Install the package: `npm install -g tideways-mcp-server`
458
+ - Or use npx directly: `npx tideways-mcp-server`
459
+ - Clear npm cache: `npm cache clean --force`
364
460
 
365
461
  ### Debug Mode
366
462
 
367
463
  Enable debug logging for detailed troubleshooting:
368
464
 
369
465
  ```bash
370
- LOG_LEVEL=debug npm run dev
371
- ```
466
+ # When running directly
467
+ LOG_LEVEL=debug npx tideways-mcp-server
372
468
 
373
- ## 🚧 Roadmap
469
+ # In MCP configuration, add to env:
470
+ {
471
+ "env": {
472
+ "LOG_LEVEL": "debug",
473
+ "TIDEWAYS_TOKEN": "your_token",
474
+ ...
475
+ }
476
+ }
477
+ ```
374
478
 
375
- ### Phase 2 (Planned)
376
- - **MCP Prompts**: Pre-defined analysis templates and guided workflows for systematic performance investigation
377
- - **Streamable Responses**: Real-time streaming of large datasets for better user experience
378
- - **Advanced Trace Analysis**: Enhanced bottleneck detection with AI-powered recommendations
379
- - **Multi-project Support**: Manage performance across multiple applications
380
- - **Integration with Other APM Providers**: Support for New Relic, DataDog, Elastic APM
479
+ ### Getting Help
381
480
 
382
- ### Phase 3 (Future)
383
- - **Real-time Performance Monitoring**: Live performance alerts and recommendations
384
- - **Custom Dashboard Generation**: AI-generated performance dashboards
385
- - **Performance Regression Detection**: Automatic detection of performance degradations in deployments
386
- - **Load Testing Integration**: Performance analysis under different load scenarios
387
- - **Security Performance Analysis**: Identification of security-related performance bottlenecks
481
+ 1. **Check the logs**: Debug mode provides detailed information about requests and responses
482
+ 2. **Verify configuration**: Double-check all environment variables and MCP settings
483
+ 3. **Test API access**: Use curl to verify your Tideways API credentials work
484
+ 4. **Report issues**: [GitHub Issues](https://github.com/abuhamza/tideways-mcp-server/issues) with debug logs and configuration details
388
485
 
389
486
  ## 🔒 Security
390
487
 
391
- This MCP server implements several security measures to protect your Tideways API credentials:
488
+ This MCP server implements comprehensive security measures to protect your Tideways API credentials and ensure secure operation:
489
+
490
+ ### Security Pipeline
491
+ - **Automated Security Scanning**: CodeQL static analysis for vulnerability detection
492
+ - **Dependency Monitoring**: Snyk and npm audit for dependency vulnerabilities
493
+ - **Secrets Scanning**: TruffleHog and GitLeaks for credential exposure prevention
494
+ - **Supply Chain Security**: SLSA verification and package integrity checks
495
+ - **Continuous Monitoring**: Daily automated security scans
392
496
 
393
497
  ### Token Security
394
498
  - **Validation**: API tokens are validated to ensure they are set (any format accepted)
395
499
  - **Logging Protection**: Authorization headers are automatically redacted in debug logs as `Bearer [REDACTED]`
396
500
  - **Secure Storage**: Tokens should be stored in environment variables, never in code
501
+ - **Input Sanitization**: All user inputs are validated and sanitized
502
+
503
+ ### CI/CD Security
504
+ - **Hardened GitHub Actions**: Minimal permissions for each workflow job
505
+ - **Secrets Management**: Secure handling of environment variables and API tokens
506
+ - **Supply Chain Protection**: Dependabot for automated security updates
507
+ - **Security Gates**: All security checks must pass before deployment
508
+
509
+ ### Runtime Security
510
+ - **Rate Limiting**: Built-in protection against API abuse
511
+ - **Error Handling**: No sensitive data exposed in error messages
512
+ - **Network Security**: HTTPS enforcement for all API communications
513
+ - **Memory Safety**: No credential persistence in memory logs
397
514
 
398
515
  ### Best Practices
399
516
  - Store your API token securely in environment variables or `.env` files
@@ -401,44 +518,45 @@ This MCP server implements several security measures to protect your Tideways AP
401
518
  - Use unique, strong tokens with minimal required permissions
402
519
  - Regularly rotate your API tokens
403
520
  - Monitor access logs for suspicious activity
521
+ - Keep dependencies updated with automated security patches
522
+
523
+ ### Security Monitoring
524
+ - **Zero Known Vulnerabilities**: Continuous npm audit reporting
525
+ - **Active Dependency Updates**: Weekly Dependabot security patches
526
+ - **Code Quality Gates**: Security scans integrated in CI/CD pipeline
527
+ - **Vulnerability Alerts**: Immediate notifications for security issues
404
528
 
405
529
  ### Reporting Security Issues
406
- If you discover a security vulnerability, please report it responsibly through GitHub's security advisory feature.
530
+ If you discover a security vulnerability, please report it responsibly through GitHub's security advisory feature or contact the maintainers directly.
407
531
 
408
- ## 🤝 Contributing
532
+ ## Contributing
409
533
 
410
- We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
534
+ We welcome contributions!
411
535
 
412
536
  ### Development Setup
413
537
 
414
538
  1. Fork the repository
415
- 2. Create a feature branch: `git checkout -b feature/your-feature`
539
+ 2. Create a feature branch: `git checkout -b your-feature`
416
540
  3. Make changes and add tests
417
541
  4. Run tests: `npm test`
418
542
  5. Submit a pull request
419
543
 
420
- ## 📄 License
544
+ ## License
421
545
 
422
546
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
423
547
 
424
- ## 🆘 Support
548
+ ## Support
425
549
 
426
- - GitHub Issues: [Report bugs or request features](https://github.com/abuhamza/mcp-tideways/issues)
427
- - Documentation: [Project Wiki](https://github.com/abuhamza/mcp-tideways/wiki)
550
+ - GitHub Issues: [Report bugs or request features](https://github.com/abuhamza/tideways-mcp-server/issues)
428
551
 
429
- ## 📈 Performance
430
552
 
431
- - Average response time: <2 seconds for cached queries
432
- - Memory usage: <100MB with default cache settings
433
- - Supports concurrent AI assistant connections
434
- - Efficient rate limiting prevents API quota exhaustion
553
+ ## Contributing
435
554
 
436
- ## 🏷️ Version History
555
+ Contributions are welcome! Please:
437
556
 
438
- - **v0.1.0** - Initial release with core MCP functionality
439
- - Foundation setup with performance metrics and issues analysis
440
- - Comprehensive error handling and caching
557
+ 1. Fork the repository
558
+ 2. Create a feature branch
559
+ 3. Make your changes
560
+ 4. Submit a pull request
441
561
 
442
562
  ---
443
-
444
- Built with ❤️ for the PHP development community
package/bin/cli.js CHANGED
@@ -4,7 +4,6 @@ import { readFileSync } from 'fs';
4
4
  import { fileURLToPath } from 'url';
5
5
  import { dirname, join } from 'path';
6
6
 
7
- // Import compiled modules
8
7
  import { TidewaysMCPServer } from '../dist/server.js';
9
8
 
10
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -24,9 +23,6 @@ Usage:
24
23
  Options:
25
24
  --help, -h Show this help message
26
25
  --version, -v Show version information
27
- --stdio Use stdio transport (default for MCP)
28
- --http Use HTTP transport (experimental)
29
- --port <port> HTTP port (default: 3000, requires --http)
30
26
 
31
27
  Environment Variables (required):
32
28
  TIDEWAYS_TOKEN Your Tideways API token
@@ -34,12 +30,9 @@ Environment Variables (required):
34
30
  TIDEWAYS_PROJECT Your Tideways project name
35
31
 
36
32
  Examples:
37
- # Start MCP server with stdio transport (default)
33
+ # Start MCP server
38
34
  npx ${packageJson.name}
39
35
 
40
- # Start with HTTP transport on custom port
41
- npx ${packageJson.name} --http --port 3001
42
-
43
36
  # Show version
44
37
  npx ${packageJson.name} --version
45
38
 
@@ -54,10 +47,6 @@ function showVersion() {
54
47
  async function main() {
55
48
  const args = process.argv.slice(2);
56
49
 
57
- // Parse command line arguments
58
- let useHttp = false;
59
- let port = 3000;
60
-
61
50
  for (let i = 0; i < args.length; i++) {
62
51
  const arg = args[i];
63
52
 
@@ -74,25 +63,6 @@ async function main() {
74
63
  process.exit(0);
75
64
  break;
76
65
 
77
- case '--stdio':
78
- useHttp = false;
79
- break;
80
-
81
- case '--http':
82
- useHttp = true;
83
- break;
84
-
85
- case '--port':
86
- if (i + 1 >= args.length) {
87
- console.error('Error: --port requires a value');
88
- process.exit(1);
89
- }
90
- port = parseInt(args[++i], 10);
91
- if (isNaN(port) || port < 1 || port > 65535) {
92
- console.error('Error: Invalid port number');
93
- process.exit(1);
94
- }
95
- break;
96
66
 
97
67
  default:
98
68
  console.error(`Error: Unknown option '${arg}'`);
@@ -101,7 +71,6 @@ async function main() {
101
71
  }
102
72
  }
103
73
 
104
- // Validate required environment variables
105
74
  const requiredEnvVars = ['TIDEWAYS_TOKEN', 'TIDEWAYS_ORG', 'TIDEWAYS_PROJECT'];
106
75
  const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
107
76
 
@@ -116,30 +85,18 @@ async function main() {
116
85
  }
117
86
 
118
87
  try {
119
- // Create and start the MCP server
120
88
  const server = new TidewaysMCPServer();
121
89
 
122
- if (useHttp) {
123
- console.log(`Starting Tideways MCP Server on HTTP port ${port}...`);
124
- console.log('Note: HTTP transport is experimental');
125
- // HTTP transport would be implemented here when available
126
- console.error('Error: HTTP transport is not yet implemented');
127
- console.error('Please use stdio transport (default) for now');
128
- process.exit(1);
129
- } else {
130
- console.log('Starting Tideways MCP Server with stdio transport...');
131
- console.log('Server is ready to receive MCP requests');
132
-
133
- // Start the server with stdio transport
134
- await server.start();
135
- }
90
+ console.log('Starting Tideways MCP Server...');
91
+ console.log('Server is ready to receive MCP requests');
92
+
93
+ await server.start();
136
94
  } catch (error) {
137
95
  console.error('Error starting server:', error.message);
138
96
  process.exit(1);
139
97
  }
140
98
  }
141
99
 
142
- // Handle graceful shutdown
143
100
  process.on('SIGINT', () => {
144
101
  console.log('\nShutting down Tideways MCP Server...');
145
102
  process.exit(0);
@@ -6,15 +6,9 @@ export declare class TidewaysAPIError extends Error implements TidewaysError {
6
6
  constructor(message: string, category: ErrorCategory, statusCode?: number, retryAfter?: number);
7
7
  }
8
8
  export declare class ErrorHandler {
9
- /**
10
- * Handle API errors and convert them to user-friendly messages
11
- */
12
9
  static handleApiError(error: any): TidewaysAPIError;
13
10
  static handleValidationError(message: string): TidewaysAPIError;
14
11
  static formatErrorForUser(error: TidewaysAPIError): string;
15
- /**
16
- * Handle partial failures gracefully
17
- */
18
12
  static handlePartialFailure(errors: TidewaysAPIError[], partialData?: any): string;
19
13
  static isRetryable(error: TidewaysAPIError): boolean;
20
14
  static getRetryDelay(error: TidewaysAPIError, attempt: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjE,qBAAa,gBAAiB,SAAQ,KAAM,YAAW,aAAa;IAC3D,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAS/F;AAED,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,gBAAgB;IAoEnD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAK/D,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IA4B1D;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM;IAUlF,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAQpD,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAOvE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjE,qBAAa,gBAAiB,SAAQ,KAAM,YAAW,aAAa;IAC3D,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAS/F;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,gBAAgB;IAoEnD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAK/D,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IA4B1D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM;IAUlF,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAQpD,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAOvE"}
@@ -13,9 +13,6 @@ export class TidewaysAPIError extends Error {
13
13
  }
14
14
  }
15
15
  export class ErrorHandler {
16
- /**
17
- * Handle API errors and convert them to user-friendly messages
18
- */
19
16
  static handleApiError(error) {
20
17
  logger.error('API error occurred', error, {
21
18
  url: error.config?.url,
@@ -72,9 +69,6 @@ export class ErrorHandler {
72
69
  return `${baseMessage}\n\nIf this error persists, please check the server logs for more details.`;
73
70
  }
74
71
  }
75
- /**
76
- * Handle partial failures gracefully
77
- */
78
72
  static handlePartialFailure(errors, partialData) {
79
73
  const errorSummary = errors.map(err => `• ${err.category}: ${err.message}`).join('\n');
80
74
  if (partialData && Object.keys(partialData).length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,4 @@ export interface TidewaysConfig {
6
6
  maxRetries?: number;
7
7
  requestTimeout?: number;
8
8
  }
9
- export interface TidewaysPerformanceApiParams {
10
- ts: string;
11
- env?: string;
12
- m: number;
13
- s?: string;
14
- }
15
9
  //# sourceMappingURL=tideways-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tideways-config.d.ts","sourceRoot":"","sources":["../../src/types/tideways-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ"}
1
+ {"version":3,"file":"tideways-config.d.ts","sourceRoot":"","sources":["../../src/types/tideways-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tideways-mcp-server",
3
- "version": "0.1.1",
3
+ "version": "1.0.0",
4
4
  "description": "MCP server for Tideways performance monitoring integration with AI assistants",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,7 +34,9 @@
34
34
  "typecheck": "tsc --noEmit",
35
35
  "clean": "rimraf dist",
36
36
  "prepare": "npm run build",
37
- "prepublishOnly": "npm run typecheck && npm run lint && npm run test && npm run build"
37
+ "prepublishOnly": "npm run typecheck && npm run lint && npm run test && npm run build",
38
+ "semantic-release": "semantic-release",
39
+ "semantic-release:dry-run": "semantic-release --dry-run"
38
40
  },
39
41
  "keywords": [
40
42
  "mcp",
@@ -68,6 +70,13 @@
68
70
  "jest": "^29.5.0",
69
71
  "prettier": "^3.0.0",
70
72
  "rimraf": "^5.0.0",
73
+ "semantic-release": "^23.0.0",
74
+ "@semantic-release/changelog": "^6.0.3",
75
+ "@semantic-release/git": "^10.0.1",
76
+ "@semantic-release/github": "^9.2.0",
77
+ "@semantic-release/npm": "^11.0.2",
78
+ "@commitlint/cli": "^18.4.0",
79
+ "@commitlint/config-conventional": "^18.4.0",
71
80
  "ts-jest": "^29.1.0",
72
81
  "tsx": "^4.0.0",
73
82
  "typescript": "^5.2.0"
@@ -77,10 +86,10 @@
77
86
  },
78
87
  "repository": {
79
88
  "type": "git",
80
- "url": "git+https://github.com/abuhamza/mcp-tideways.git"
89
+ "url": "git+https://github.com/abuhamza/tideways-mcp-server.git"
81
90
  },
82
91
  "bugs": {
83
- "url": "https://github.com/abuhamza/mcp-tideways/issues"
92
+ "url": "https://github.com/abuhamza/tideways-mcp-server/issues"
84
93
  },
85
- "homepage": "https://github.com/abuhamza/mcp-tideways#readme"
94
+ "homepage": "https://github.com/abuhamza/tideways-mcp-server#readme"
86
95
  }