projectpulse-mcp 1.8.3 โ 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.
- package/README.md +109 -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
|
-
|
|
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.
|
|
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
|
-
"
|
|
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",
|