projectpulse-mcp 1.8.1 โ†’ 1.8.4

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.
Files changed (2) hide show
  1. package/README.md +109 -2
  2. package/package.json +11 -2
package/README.md CHANGED
@@ -18,6 +18,22 @@
18
18
 
19
19
  This [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server gives AI assistants the ability to analyze health, security, CI/CD status, and delivery metrics of any GitHub repository โ€” directly from your conversations.
20
20
 
21
+ ## ๐Ÿ“‘ Table of Contents
22
+
23
+ - [Features](#-features)
24
+ - [Examples](#-examples)
25
+ - [Use Cases](#-use-cases)
26
+ - [Prerequisites](#-prerequisites)
27
+ - [Quick Start](#-quick-start)
28
+ - [Tools](#๏ธ-tools)
29
+ - [Compatibility](#-compatibility)
30
+ - [Architecture](#-architecture)
31
+ - [Transport Modes](#-transport-modes)
32
+ - [Configuration](#๏ธ-configuration)
33
+ - [Testing](#-testing)
34
+ - [Contributing](#-contributing)
35
+ - [License](#-license)
36
+
21
37
  ## โœจ Features
22
38
 
23
39
  - ๐Ÿฅ **Health Score** โ€” comprehensive 0-100 score with grade (A-F), category breakdown, and improvement suggestions
@@ -106,6 +122,12 @@ This [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server giv
106
122
 
107
123
  ---
108
124
 
125
+ ## ๐Ÿ“‹ Prerequisites
126
+
127
+ - **Node.js** v18 or later โ€” [download](https://nodejs.org/)
128
+ - **npm** (included with Node.js)
129
+ - **GitHub Personal Access Token** (optional for public repos, required for private repos and security data)
130
+
109
131
  ## ๐Ÿš€ Quick Start
110
132
 
111
133
  ### Claude Code (CLI)
@@ -283,6 +305,61 @@ New `get_dora_metrics` tool calculates proxy [DORA metrics](https://dora.dev/) f
283
305
 
284
306
  Metrics return `null` when insufficient data is available โ€” works safely on any repository.
285
307
 
308
+ ## ๐Ÿ”Œ Compatibility
309
+
310
+ ProjectPulse works with any MCP-compatible client. Tested with:
311
+
312
+ | Client | Transport | Status |
313
+ | --- | --- | --- |
314
+ | [Claude Desktop](https://claude.ai/download) | stdio | โœ… Tested |
315
+ | [Claude Code (CLI)](https://docs.anthropic.com/en/docs/claude-code) | stdio | โœ… Tested |
316
+ | [Cursor](https://cursor.sh/) | stdio | โœ… Tested |
317
+ | [Windsurf](https://codeium.com/windsurf) | stdio | โœ… Tested |
318
+ | [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) | stdio | โœ… Tested |
319
+ | Docker / Remote | HTTP | โœ… Tested |
320
+ | Any MCP client | stdio or HTTP | โœ… Compatible |
321
+
322
+ ## ๐Ÿ—๏ธ Architecture
323
+
324
+ ```
325
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
326
+ โ”‚ MCP Client โ”‚
327
+ โ”‚ (Claude, Cursor, Windsurf, etc.) โ”‚
328
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
329
+ โ”‚ stdio or HTTP
330
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
331
+ โ”‚ ProjectPulse MCP Server โ”‚
332
+ โ”‚ โ”‚
333
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
334
+ โ”‚ โ”‚ Tool Layer โ”‚ โ”‚ Transport โ”‚ โ”‚
335
+ โ”‚ โ”‚ (8 tools) โ”‚ โ”‚ stdio/HTTP โ”‚ โ”‚
336
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
337
+ โ”‚ โ”‚ โ”‚
338
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
339
+ โ”‚ โ”‚ GitHub API โ”‚ โ”‚ OpenSSF โ”‚ โ”‚
340
+ โ”‚ โ”‚ (Octokit) โ”‚ โ”‚ Scorecard โ”‚ โ”‚
341
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
342
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
343
+ ```
344
+
345
+ - **Tool layer**: 8 independent tools, each in its own file (`src/tools/`)
346
+ - **GitHub API**: all calls through a shared Octokit client (`src/github/client.ts`) with rate-limit handling
347
+ - **OpenSSF Scorecard**: integrated via public API for security scoring
348
+ - **Input validation**: Zod schemas at the MCP boundary
349
+ - **Transport**: stdio (default) or Streamable HTTP โ€” configurable via environment variables
350
+
351
+ ## ๐Ÿšข Transport Modes
352
+
353
+ | | stdio (default) | HTTP |
354
+ | --- | --- | --- |
355
+ | **Activation** | `npx projectpulse-mcp` | `MCP_TRANSPORT=http node dist/index.js` |
356
+ | **Best for** | Local MCP clients | Docker, remote, cross-runtime |
357
+ | **Health check** | N/A | `GET /` โ†’ JSON |
358
+ | **MCP endpoint** | stdin/stdout | `POST /mcp` |
359
+ | **Config needed** | None | `MCP_TRANSPORT=http`, optionally `MCP_PORT` |
360
+
361
+ See [What's New: HTTP Transport](#http-transport-v170) for Docker examples.
362
+
286
363
  ## โš™๏ธ Configuration
287
364
 
288
365
  ### GITHUB_TOKEN
@@ -307,14 +384,44 @@ Generate with `repo` + `security_events` scopes.
307
384
  GITHUB_TOKEN=ghp_your_token_here
308
385
  ```
309
386
 
387
+ ## ๐Ÿงช Testing
388
+
389
+ All 8 tools have dedicated test suites. Tests use [Vitest](https://vitest.dev/) with mocked GitHub API responses.
390
+
391
+ ```bash
392
+ # Run all tests
393
+ npm test
394
+
395
+ # Watch mode
396
+ npm run test:watch
397
+ ```
398
+
399
+ | Tool | Test file | Status |
400
+ | --- | --- | --- |
401
+ | `get_health_score` | `src/tools/get-health-score.test.ts` | โœ… |
402
+ | `get_dora_metrics` | `src/tools/get-dora-metrics.test.ts` | โœ… |
403
+ | `compare_repos` | `src/tools/compare-repos.test.ts` | โœ… |
404
+ | `get_repo_health` | `src/tools/get-repo-health.test.ts` | โœ… |
405
+ | `analyze_dependencies` | `src/tools/analyze-dependencies.test.ts` | โœ… |
406
+ | `check_ci_status` | `src/tools/check-ci-status.test.ts` | โœ… |
407
+ | `analyze_code_scanning` | `src/tools/analyze-code-scanning.test.ts` | โœ… |
408
+ | `check_best_practices` | `src/tools/check-best-practices.test.ts` | โœ… |
409
+
310
410
  ## ๐Ÿ‘ค Author
311
411
 
312
412
  **alexbypa** โ€” [GitHub](https://github.com/alexbypa) ยท [npm](https://www.npmjs.com/~alexbypa)
313
413
 
314
414
  ## ๐Ÿค Contributing
315
415
 
316
- Contributions, issues and feature requests are welcome!
317
- Feel free to check the [issues page](https://github.com/alexbypa/github-projectpulse-mcp/issues).
416
+ Contributions, issues, and feature requests are welcome!
417
+
418
+ 1. Fork the repository
419
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
420
+ 3. Run tests (`npm test`) and ensure they pass
421
+ 4. Commit your changes
422
+ 5. Push to the branch and open a Pull Request
423
+
424
+ See the [issues page](https://github.com/alexbypa/github-projectpulse-mcp/issues) for open tasks and bug reports.
318
425
 
319
426
  ## โญ Show your support
320
427
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "projectpulse-mcp",
3
3
  "description": "MCP Server for GitHub repository health monitoring",
4
- "version": "1.8.1",
4
+ "version": "1.8.4",
5
5
  "mcpName": "io.github.alexbypa/github-projectpulse-mcp",
6
6
  "main": "dist/index.js",
7
7
  "scripts": {
@@ -12,11 +12,20 @@
12
12
  },
13
13
  "keywords": [
14
14
  "mcp",
15
+ "mcp-server",
16
+ "model-context-protocol",
15
17
  "github",
16
18
  "health",
17
19
  "monitoring",
18
20
  "ai",
19
- "Workflow"
21
+ "dora-metrics",
22
+ "security",
23
+ "ci-cd",
24
+ "code-scanning",
25
+ "dependabot",
26
+ "openssf-scorecard",
27
+ "devops",
28
+ "workflow"
20
29
  ],
21
30
  "author": "Alessandro Chiodo",
22
31
  "license": "MIT",