hawkeye-mcp-server 2.3.1 → 3.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/README.md +12 -556
- package/package.json +10 -59
- package/CHANGELOG.md +0 -581
- package/LICENSE +0 -21
- package/SPECIFICATION.md +0 -1192
- package/build/config/config.d.ts +0 -74
- package/build/config/config.js +0 -152
- package/build/config/config.js.map +0 -1
- package/build/db/index.d.ts +0 -51
- package/build/db/index.js +0 -174
- package/build/db/index.js.map +0 -1
- package/build/db/postgres-state-provider.d.ts +0 -52
- package/build/db/postgres-state-provider.js +0 -165
- package/build/db/postgres-state-provider.js.map +0 -1
- package/build/index.d.ts +0 -9
- package/build/index.js +0 -86
- package/build/index.js.map +0 -1
- package/build/mcp-server-factory.d.ts +0 -36
- package/build/mcp-server-factory.js +0 -92
- package/build/mcp-server-factory.js.map +0 -1
- package/build/server.d.ts +0 -9
- package/build/server.js +0 -349
- package/build/server.js.map +0 -1
- package/build/services/auth.service.d.ts +0 -89
- package/build/services/auth.service.js +0 -222
- package/build/services/auth.service.js.map +0 -1
- package/build/services/connection.service.d.ts +0 -51
- package/build/services/connection.service.js +0 -160
- package/build/services/connection.service.js.map +0 -1
- package/build/services/guidance.service.d.ts +0 -69
- package/build/services/guidance.service.js +0 -591
- package/build/services/guidance.service.js.map +0 -1
- package/build/services/investigation-progress-store.d.ts +0 -79
- package/build/services/investigation-progress-store.js +0 -193
- package/build/services/investigation-progress-store.js.map +0 -1
- package/build/services/investigation-stream.d.ts +0 -45
- package/build/services/investigation-stream.js +0 -330
- package/build/services/investigation-stream.js.map +0 -1
- package/build/services/project.service.d.ts +0 -85
- package/build/services/project.service.js +0 -356
- package/build/services/project.service.js.map +0 -1
- package/build/services/session.service.d.ts +0 -70
- package/build/services/session.service.js +0 -401
- package/build/services/session.service.js.map +0 -1
- package/build/services/state.service.d.ts +0 -115
- package/build/services/state.service.js +0 -172
- package/build/services/state.service.js.map +0 -1
- package/build/tools/add-connection-to-project.d.ts +0 -31
- package/build/tools/add-connection-to-project.js +0 -116
- package/build/tools/add-connection-to-project.js.map +0 -1
- package/build/tools/apply-session-instruction.d.ts +0 -36
- package/build/tools/apply-session-instruction.js +0 -160
- package/build/tools/apply-session-instruction.js.map +0 -1
- package/build/tools/continue-investigation.d.ts +0 -10
- package/build/tools/continue-investigation.js +0 -72
- package/build/tools/continue-investigation.js.map +0 -1
- package/build/tools/create-connection.d.ts +0 -100
- package/build/tools/create-connection.js +0 -100
- package/build/tools/create-connection.js.map +0 -1
- package/build/tools/create-manual-investigation.d.ts +0 -18
- package/build/tools/create-manual-investigation.js +0 -152
- package/build/tools/create-manual-investigation.js.map +0 -1
- package/build/tools/create-project-instruction.d.ts +0 -32
- package/build/tools/create-project-instruction.js +0 -130
- package/build/tools/create-project-instruction.js.map +0 -1
- package/build/tools/create-project.d.ts +0 -28
- package/build/tools/create-project.js +0 -48
- package/build/tools/create-project.js.map +0 -1
- package/build/tools/delete-project-instruction.d.ts +0 -22
- package/build/tools/delete-project-instruction.js +0 -44
- package/build/tools/delete-project-instruction.js.map +0 -1
- package/build/tools/delete-project.d.ts +0 -31
- package/build/tools/delete-project.js +0 -67
- package/build/tools/delete-project.js.map +0 -1
- package/build/tools/discover-project-resources.d.ts +0 -29
- package/build/tools/discover-project-resources.js +0 -136
- package/build/tools/discover-project-resources.js.map +0 -1
- package/build/tools/get-chain-of-thought.d.ts +0 -35
- package/build/tools/get-chain-of-thought.js +0 -100
- package/build/tools/get-chain-of-thought.js.map +0 -1
- package/build/tools/get-connection-info.d.ts +0 -22
- package/build/tools/get-connection-info.js +0 -47
- package/build/tools/get-connection-info.js.map +0 -1
- package/build/tools/get-follow-up-suggestions.d.ts +0 -32
- package/build/tools/get-follow-up-suggestions.js +0 -67
- package/build/tools/get-follow-up-suggestions.js.map +0 -1
- package/build/tools/get-guidance.d.ts +0 -25
- package/build/tools/get-guidance.js +0 -28
- package/build/tools/get-guidance.js.map +0 -1
- package/build/tools/get-incident-report.d.ts +0 -10
- package/build/tools/get-incident-report.js +0 -62
- package/build/tools/get-incident-report.js.map +0 -1
- package/build/tools/get-investigation-queries.d.ts +0 -32
- package/build/tools/get-investigation-queries.js +0 -81
- package/build/tools/get-investigation-queries.js.map +0 -1
- package/build/tools/get-investigation-sources.d.ts +0 -32
- package/build/tools/get-investigation-sources.js +0 -128
- package/build/tools/get-investigation-sources.js.map +0 -1
- package/build/tools/get-project-details.d.ts +0 -22
- package/build/tools/get-project-details.js +0 -68
- package/build/tools/get-project-details.js.map +0 -1
- package/build/tools/get-rca-score.d.ts +0 -26
- package/build/tools/get-rca-score.js +0 -72
- package/build/tools/get-rca-score.js.map +0 -1
- package/build/tools/get-rca.d.ts +0 -31
- package/build/tools/get-rca.js +0 -64
- package/build/tools/get-rca.js.map +0 -1
- package/build/tools/get-session-link.d.ts +0 -24
- package/build/tools/get-session-link.js +0 -30
- package/build/tools/get-session-link.js.map +0 -1
- package/build/tools/get-session-report.d.ts +0 -25
- package/build/tools/get-session-report.js +0 -46
- package/build/tools/get-session-report.js.map +0 -1
- package/build/tools/get-session-summary.d.ts +0 -25
- package/build/tools/get-session-summary.js +0 -45
- package/build/tools/get-session-summary.js.map +0 -1
- package/build/tools/get-status.d.ts +0 -10
- package/build/tools/get-status.js +0 -284
- package/build/tools/get-status.js.map +0 -1
- package/build/tools/index.d.ts +0 -38
- package/build/tools/index.js +0 -1637
- package/build/tools/index.js.map +0 -1
- package/build/tools/inspect-session.d.ts +0 -34
- package/build/tools/inspect-session.js +0 -75
- package/build/tools/inspect-session.js.map +0 -1
- package/build/tools/investigate-alert.d.ts +0 -10
- package/build/tools/investigate-alert.js +0 -145
- package/build/tools/investigate-alert.js.map +0 -1
- package/build/tools/list-connection-resource-types.d.ts +0 -25
- package/build/tools/list-connection-resource-types.js +0 -58
- package/build/tools/list-connection-resource-types.js.map +0 -1
- package/build/tools/list-connection-resources.d.ts +0 -37
- package/build/tools/list-connection-resources.js +0 -108
- package/build/tools/list-connection-resources.js.map +0 -1
- package/build/tools/list-connection-types.d.ts +0 -9
- package/build/tools/list-connection-types.js +0 -141
- package/build/tools/list-connection-types.js.map +0 -1
- package/build/tools/list-connections.d.ts +0 -22
- package/build/tools/list-connections.js +0 -43
- package/build/tools/list-connections.js.map +0 -1
- package/build/tools/list-project-connections.d.ts +0 -22
- package/build/tools/list-project-connections.js +0 -81
- package/build/tools/list-project-connections.js.map +0 -1
- package/build/tools/list-project-instructions.d.ts +0 -31
- package/build/tools/list-project-instructions.js +0 -78
- package/build/tools/list-project-instructions.js.map +0 -1
- package/build/tools/list-sessions.d.ts +0 -55
- package/build/tools/list-sessions.js +0 -195
- package/build/tools/list-sessions.js.map +0 -1
- package/build/tools/remove-connection-from-project.d.ts +0 -36
- package/build/tools/remove-connection-from-project.js +0 -64
- package/build/tools/remove-connection-from-project.js.map +0 -1
- package/build/tools/rerun-session.d.ts +0 -37
- package/build/tools/rerun-session.js +0 -107
- package/build/tools/rerun-session.js.map +0 -1
- package/build/tools/set-default-project.d.ts +0 -27
- package/build/tools/set-default-project.js +0 -26
- package/build/tools/set-default-project.js.map +0 -1
- package/build/tools/switch-instance.d.ts +0 -22
- package/build/tools/switch-instance.js +0 -94
- package/build/tools/switch-instance.js.map +0 -1
- package/build/tools/update-project-instruction-status.d.ts +0 -26
- package/build/tools/update-project-instruction-status.js +0 -59
- package/build/tools/update-project-instruction-status.js.map +0 -1
- package/build/tools/update-project.d.ts +0 -41
- package/build/tools/update-project.js +0 -64
- package/build/tools/update-project.js.map +0 -1
- package/build/tools/validate-instruction.d.ts +0 -31
- package/build/tools/validate-instruction.js +0 -88
- package/build/tools/validate-instruction.js.map +0 -1
- package/build/tools/wait-for-connection-sync.d.ts +0 -28
- package/build/tools/wait-for-connection-sync.js +0 -51
- package/build/tools/wait-for-connection-sync.js.map +0 -1
- package/build/tools/wait-for-project-ready.d.ts +0 -28
- package/build/tools/wait-for-project-ready.js +0 -106
- package/build/tools/wait-for-project-ready.js.map +0 -1
- package/build/types/errors.d.ts +0 -61
- package/build/types/errors.js +0 -76
- package/build/types/errors.js.map +0 -1
- package/build/types/hawkeye.d.ts +0 -483
- package/build/types/hawkeye.js +0 -89
- package/build/types/hawkeye.js.map +0 -1
- package/build/types/mcp.d.ts +0 -136
- package/build/types/mcp.js +0 -6
- package/build/types/mcp.js.map +0 -1
- package/build/utils/connection-builders.d.ts +0 -49
- package/build/utils/connection-builders.js +0 -250
- package/build/utils/connection-builders.js.map +0 -1
- package/build/utils/errors.d.ts +0 -20
- package/build/utils/errors.js +0 -125
- package/build/utils/errors.js.map +0 -1
- package/build/utils/http-client.d.ts +0 -60
- package/build/utils/http-client.js +0 -147
- package/build/utils/http-client.js.map +0 -1
- package/build/utils/logger.d.ts +0 -35
- package/build/utils/logger.js +0 -77
- package/build/utils/logger.js.map +0 -1
- package/build/utils/state.d.ts +0 -65
- package/build/utils/state.js +0 -122
- package/build/utils/state.js.map +0 -1
- package/build/utils/validation.d.ts +0 -116
- package/build/utils/validation.js +0 -62
- package/build/utils/validation.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,575 +1,31 @@
|
|
|
1
|
-
#
|
|
1
|
+
# hawkeye-mcp-server
|
|
2
2
|
|
|
3
|
-
[
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org/)
|
|
3
|
+
> **This package has been renamed to [`mcp-server-neubird`](https://www.npmjs.com/package/mcp-server-neubird).**
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## What is Hawkeye MCP?
|
|
10
|
-
|
|
11
|
-
Hawkeye MCP Server enables AI assistants (like Claude) to interact with [NeuBird's Hawkeye platform](https://neubird.ai) for autonomous incident investigation and root cause analysis.
|
|
12
|
-
|
|
13
|
-
**Stop context-switching. Investigate incidents without leaving your IDE.**
|
|
14
|
-
|
|
15
|
-
## ✨ Key Features
|
|
16
|
-
|
|
17
|
-
- 🌊 **Real-Time Progress** ✨ **NEW in v2.0** - Stream live investigation progress with emojis and timing
|
|
18
|
-
- 🔍 **AI-Powered RCA** - Automated root cause analysis with corrective actions (including bash scripts)
|
|
19
|
-
- 🎯 **42 Tools** - Complete API for projects, connections, investigations, instructions, and analytics
|
|
20
|
-
- 📊 **Time Savings** - Track MTTR and time saved vs manual investigation
|
|
21
|
-
- 🧪 **Test Instructions** - Unique workflow to test investigation instructions before deployment
|
|
22
|
-
- 🔌 **Multi-Cloud** - Connect AWS, Azure, GCP, Datadog, PagerDuty, and more
|
|
23
|
-
- 🤖 **Any MCP Client** - Works with Claude Desktop, Claude Code, Cursor, Continue, and more
|
|
24
|
-
|
|
25
|
-
## 🚀 Quick Start
|
|
26
|
-
|
|
27
|
-
### Installation
|
|
5
|
+
Install the new package:
|
|
28
6
|
|
|
29
7
|
```bash
|
|
30
|
-
|
|
31
|
-
npm install -g hawkeye-mcp-server
|
|
32
|
-
|
|
33
|
-
# Or use directly with npx (no installation)
|
|
34
|
-
npx hawkeye-mcp-server
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Configuration
|
|
38
|
-
|
|
39
|
-
Add to your MCP client configuration:
|
|
40
|
-
|
|
41
|
-
**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"mcpServers": {
|
|
46
|
-
"hawkeye": {
|
|
47
|
-
"command": "npx",
|
|
48
|
-
"args": ["-y", "hawkeye-mcp-server"],
|
|
49
|
-
"env": {
|
|
50
|
-
"HAWKEYE_EMAIL": "your-email@company.com",
|
|
51
|
-
"HAWKEYE_PASSWORD": "your-password",
|
|
52
|
-
"HAWKEYE_BASE_URL": "https://app.neubird.ai/api"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
8
|
+
npx mcp-server-neubird@latest
|
|
57
9
|
```
|
|
58
10
|
|
|
59
|
-
|
|
11
|
+
Or update your MCP configuration:
|
|
60
12
|
|
|
61
13
|
```json
|
|
62
14
|
{
|
|
63
15
|
"mcpServers": {
|
|
64
|
-
"
|
|
16
|
+
"neubird": {
|
|
65
17
|
"command": "npx",
|
|
66
|
-
"args": ["-y", "
|
|
18
|
+
"args": ["-y", "mcp-server-neubird@latest"],
|
|
67
19
|
"env": {
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Restart your MCP client and start investigating!
|
|
78
|
-
|
|
79
|
-
## 📖 Documentation
|
|
80
|
-
|
|
81
|
-
**Complete documentation is available at: [https://neubirdai.github.io/hawkeye-mcp-docs](https://neubirdai.github.io/hawkeye-mcp-docs)**
|
|
82
|
-
|
|
83
|
-
- **[Installation Guide](https://neubirdai.github.io/hawkeye-mcp-docs/getting-started/installation/)** - Detailed setup for all platforms
|
|
84
|
-
- **[Quick Start](https://neubirdai.github.io/hawkeye-mcp-docs/getting-started/quickstart/)** - 5-minute getting started guide
|
|
85
|
-
- **[Complete Onboarding](https://neubirdai.github.io/hawkeye-mcp-docs/guides/onboarding/)** - End-to-end setup guide
|
|
86
|
-
- **[Tool Reference](https://neubirdai.github.io/hawkeye-mcp-docs/reference/overview/)** - All 39 tools documented
|
|
87
|
-
- **[Examples](https://neubirdai.github.io/hawkeye-mcp-docs/examples/complete-setup/)** - Real-world usage examples
|
|
88
|
-
- **[Troubleshooting](https://neubirdai.github.io/hawkeye-mcp-docs/troubleshooting/)** - Common issues and solutions
|
|
89
|
-
|
|
90
|
-
## 🎯 Example Usage
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
You: "Show me uninvestigated alerts from the last 24 hours"
|
|
94
|
-
|
|
95
|
-
Claude: *Lists uninvestigated incidents*
|
|
96
|
-
|
|
97
|
-
You: "Investigate the first one"
|
|
98
|
-
|
|
99
|
-
Claude: *Runs investigation and returns comprehensive RCA including:*
|
|
100
|
-
- Root cause analysis
|
|
101
|
-
- Timeline of events
|
|
102
|
-
- Corrective actions with bash scripts
|
|
103
|
-
- Preventive measures
|
|
104
|
-
- Business impact
|
|
105
|
-
- Time saved (e.g., "45 minutes saved: Manual 50min → Hawkeye 5min")
|
|
106
|
-
|
|
107
|
-
You: "Why did this happen? Has it happened before?"
|
|
108
|
-
|
|
109
|
-
Claude: *Uses follow-up investigation to provide deeper analysis*
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## 🌊 Real-Time Streaming Progress (NEW in v2.0)
|
|
113
|
-
|
|
114
|
-
No more waiting 5-10 minutes with no feedback! Hawkeye MCP now streams real-time investigation progress:
|
|
115
|
-
|
|
116
|
-
```
|
|
117
|
-
You: "Investigate high CPU usage in production"
|
|
118
|
-
|
|
119
|
-
Claude:
|
|
120
|
-
🔧 Preparing telemetry sources [2s]
|
|
121
|
-
📚 Loading investigation context [3s]
|
|
122
|
-
🔍 Classifying datasources (Step 1) [18s]
|
|
123
|
-
🎯 Fine-tuning datasources [26s]
|
|
124
|
-
🔎 Consulting telemetry (Query 7) [1m 6s]
|
|
125
|
-
🧠 Analyzing telemetry data (Analysis 12) [1m 13s]
|
|
126
|
-
📝 Summarizing results [1m 29s]
|
|
127
|
-
|
|
128
|
-
Investigation completed! Here's what I found...
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**Benefits:**
|
|
132
|
-
- ✅ See exactly what Hawkeye is doing in real-time
|
|
133
|
-
- ✅ Know how long each phase takes
|
|
134
|
-
- ✅ Track query and analysis counts
|
|
135
|
-
- ✅ Estimated progress percentage (0-100%)
|
|
136
|
-
- ✅ Complete progress log for debugging
|
|
137
|
-
- ✅ Enabled by default (can opt-out with `stream_progress: false`)
|
|
138
|
-
|
|
139
|
-
**Supported Tools:**
|
|
140
|
-
- `hawkeye_create_manual_investigation` - Stream progress for custom investigations
|
|
141
|
-
- `hawkeye_investigate_alert` - Stream progress when investigating alerts
|
|
142
|
-
|
|
143
|
-
## 🛠️ Tool Categories
|
|
144
|
-
|
|
145
|
-
| Category | Tools | Description |
|
|
146
|
-
|----------|-------|-------------|
|
|
147
|
-
| **Projects** | 6 | Create and manage Hawkeye projects |
|
|
148
|
-
| **Connections** | 10 | Connect AWS, Azure, GCP, Datadog, PagerDuty, etc. |
|
|
149
|
-
| **Investigations** | 10 | Investigate alerts, get RCA, ask follow-ups |
|
|
150
|
-
| **Instructions** | 7 | Create, test, and manage investigation instructions |
|
|
151
|
-
| **Analytics** | 4 | MTTR, time saved, quality scores, incident statistics |
|
|
152
|
-
| **Discovery** | 2 | Explore available resources and data sources |
|
|
153
|
-
| **Help** | 1 | Interactive guidance system |
|
|
154
|
-
|
|
155
|
-
**Total: 42 tools**
|
|
156
|
-
|
|
157
|
-
See the [Tool Reference](https://neubirdai.github.io/hawkeye-mcp-docs/reference/overview/) for complete documentation.
|
|
158
|
-
|
|
159
|
-
## 🧪 Unique Features
|
|
160
|
-
|
|
161
|
-
### Instruction Testing Workflow
|
|
162
|
-
|
|
163
|
-
Hawkeye MCP is the only incident investigation tool that lets you **test instructions before deploying them**:
|
|
164
|
-
|
|
165
|
-
1. Apply instruction to a past investigation
|
|
166
|
-
2. Rerun that investigation with the new instruction
|
|
167
|
-
3. Compare the new RCA with the original
|
|
168
|
-
4. Only add to project if it improves results
|
|
169
|
-
|
|
170
|
-
This prevents bad instructions from affecting all your investigations.
|
|
171
|
-
|
|
172
|
-
Learn more: [Testing Instructions Guide](https://neubirdai.github.io/hawkeye-mcp-docs/guides/testing-instructions/)
|
|
173
|
-
|
|
174
|
-
## 🤝 Supported AI Clients
|
|
175
|
-
|
|
176
|
-
Works with any MCP-compatible client:
|
|
177
|
-
|
|
178
|
-
- ✅ **Claude Desktop** (macOS, Windows)
|
|
179
|
-
- ✅ **Claude Code** (CLI - macOS, Windows, Linux)
|
|
180
|
-
- ✅ **Cursor** (macOS, Windows, Linux)
|
|
181
|
-
- ✅ **Continue** (VS Code extension)
|
|
182
|
-
- ✅ Any other MCP-compatible client
|
|
183
|
-
|
|
184
|
-
## 🔧 Configuration Options
|
|
185
|
-
|
|
186
|
-
### Transport Modes
|
|
187
|
-
|
|
188
|
-
Hawkeye MCP Server supports two transport modes:
|
|
189
|
-
|
|
190
|
-
| Mode | Use Case | Authentication |
|
|
191
|
-
|------|----------|----------------|
|
|
192
|
-
| **Stdio** (default) | npm/npx usage with MCP clients | Environment variables |
|
|
193
|
-
| **HTTP/SSE** | Kubernetes deployment, multi-user | Headers (Bearer token or password) |
|
|
194
|
-
|
|
195
|
-
### Stdio Transport (Default)
|
|
196
|
-
|
|
197
|
-
For use with Claude Desktop, Cursor, and other MCP clients:
|
|
198
|
-
|
|
199
|
-
#### Required Environment Variables
|
|
200
|
-
|
|
201
|
-
| Variable | Description |
|
|
202
|
-
|----------|-------------|
|
|
203
|
-
| `HAWKEYE_EMAIL` | Your Hawkeye account email |
|
|
204
|
-
| `HAWKEYE_PASSWORD` | Your Hawkeye account password |
|
|
205
|
-
| `HAWKEYE_BASE_URL` | Hawkeye API endpoint (e.g., `https://app.neubird.ai/api`) |
|
|
206
|
-
|
|
207
|
-
#### Optional Environment Variables
|
|
208
|
-
|
|
209
|
-
| Variable | Default | Description |
|
|
210
|
-
|----------|---------|-------------|
|
|
211
|
-
| `HAWKEYE_DEFAULT_PROJECT_UUID` | None | Default project UUID |
|
|
212
|
-
| `HAWKEYE_LOG_LEVEL` | `info` | Log level (debug, info, warn, error) |
|
|
213
|
-
| `HAWKEYE_MAX_POLL_ATTEMPTS` | `30` | Max polling attempts |
|
|
214
|
-
| `HAWKEYE_POLL_INTERVAL_MS` | `2000` | Polling interval (ms) |
|
|
215
|
-
|
|
216
|
-
### HTTP/SSE Transport (Kubernetes Deployment)
|
|
217
|
-
|
|
218
|
-
For multi-user deployments, use the HTTP/SSE transport with per-request authentication.
|
|
219
|
-
|
|
220
|
-
#### Server Configuration
|
|
221
|
-
|
|
222
|
-
| Variable | Description |
|
|
223
|
-
|----------|-------------|
|
|
224
|
-
| `TRANSPORT_MODE` | Set to `http` to enable HTTP/SSE transport |
|
|
225
|
-
| `HTTP_PORT` | HTTP server port (default: 3000) |
|
|
226
|
-
| `HAWKEYE_BASE_URL` | Hawkeye API endpoint |
|
|
227
|
-
| `CONFIGDB_URI` | PostgreSQL connection string |
|
|
228
|
-
| `CONFIGDB_USER` | PostgreSQL username |
|
|
229
|
-
| `CONFIGDB_PASSWORD` | PostgreSQL password |
|
|
230
|
-
|
|
231
|
-
#### Client Authentication
|
|
232
|
-
|
|
233
|
-
The HTTP/SSE transport supports two authentication methods:
|
|
234
|
-
|
|
235
|
-
**1. Bearer Token (Auth0/OAuth) - Recommended**
|
|
236
|
-
```
|
|
237
|
-
Authorization: Bearer <auth0_access_token>
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
**2. Password Credentials (Legacy)**
|
|
241
|
-
```
|
|
242
|
-
X-Hawkeye-Email: user@example.com
|
|
243
|
-
X-Hawkeye-Password: your-password
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
#### MCP Client Configuration (HTTP/SSE)
|
|
247
|
-
|
|
248
|
-
**With Bearer Token:**
|
|
249
|
-
```json
|
|
250
|
-
{
|
|
251
|
-
"mcpServers": {
|
|
252
|
-
"hawkeye": {
|
|
253
|
-
"url": "https://hawkeye-mcp.example.com/mcp",
|
|
254
|
-
"headers": {
|
|
255
|
-
"Authorization": "Bearer <auth0_access_token>"
|
|
20
|
+
"NEUBIRD_EMAIL": "your-email@company.com",
|
|
21
|
+
"NEUBIRD_PASSWORD": "your-password",
|
|
22
|
+
"NEUBIRD_BASE_URL": "https://<your-deployment>.app.neubird.ai/api"
|
|
256
23
|
}
|
|
257
24
|
}
|
|
258
25
|
}
|
|
259
26
|
}
|
|
260
27
|
```
|
|
261
28
|
|
|
262
|
-
|
|
263
|
-
```json
|
|
264
|
-
{
|
|
265
|
-
"mcpServers": {
|
|
266
|
-
"hawkeye": {
|
|
267
|
-
"url": "https://hawkeye-mcp.example.com/mcp",
|
|
268
|
-
"headers": {
|
|
269
|
-
"X-Hawkeye-Email": "user@example.com",
|
|
270
|
-
"X-Hawkeye-Password": "your-password"
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
#### Obtaining an Auth0 Token
|
|
278
|
-
|
|
279
|
-
Clients can obtain Auth0 tokens by:
|
|
280
|
-
1. **Via Hawkeye UI**: Login to hawkeye-ui, extract token from localStorage (`access_token`)
|
|
281
|
-
2. **Via Auth0 SDK**: Use Auth0 SDK to perform OAuth flow directly
|
|
282
|
-
|
|
283
|
-
## 👥 Contributing
|
|
284
|
-
|
|
285
|
-
We welcome contributions from NeuBird team members! This section is for internal developers.
|
|
286
|
-
|
|
287
|
-
### Development Setup
|
|
288
|
-
|
|
289
|
-
1. **Clone the repository:**
|
|
290
|
-
```bash
|
|
291
|
-
git clone https://github.com/neubird/hawkeye-mcp.git
|
|
292
|
-
cd hawkeye-mcp
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
2. **Install dependencies:**
|
|
296
|
-
```bash
|
|
297
|
-
npm install
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
3. **Set up environment variables:**
|
|
301
|
-
```bash
|
|
302
|
-
cp .env.example .env
|
|
303
|
-
# Edit .env with your Hawkeye credentials
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
4. **Build the project:**
|
|
307
|
-
```bash
|
|
308
|
-
npm run build
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
5. **Run in development mode:**
|
|
312
|
-
```bash
|
|
313
|
-
npm run dev
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
### Project Structure
|
|
317
|
-
|
|
318
|
-
```
|
|
319
|
-
hawkeye-mcp/
|
|
320
|
-
├── src/
|
|
321
|
-
│ ├── index.ts # Main MCP server entry point
|
|
322
|
-
│ ├── hawkeye-client.ts # Hawkeye API client
|
|
323
|
-
│ ├── tools/ # MCP tool implementations
|
|
324
|
-
│ ├── utils/ # Utility functions
|
|
325
|
-
│ └── types/ # TypeScript type definitions
|
|
326
|
-
├── build/ # Compiled JavaScript (gitignored)
|
|
327
|
-
├── tests/ # Test files
|
|
328
|
-
├── package.json
|
|
329
|
-
├── tsconfig.json
|
|
330
|
-
└── README.md
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Development Workflow
|
|
334
|
-
|
|
335
|
-
1. **Create a feature branch:**
|
|
336
|
-
```bash
|
|
337
|
-
git checkout -b feature/your-feature-name
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
2. **Make your changes:**
|
|
341
|
-
- Add new tools in `src/tools/`
|
|
342
|
-
- Update types in `src/types/`
|
|
343
|
-
- Add tests for new functionality
|
|
344
|
-
- Update CHANGELOG.md
|
|
345
|
-
|
|
346
|
-
3. **Test your changes:**
|
|
347
|
-
```bash
|
|
348
|
-
# Build
|
|
349
|
-
npm run build
|
|
350
|
-
|
|
351
|
-
# Test with MCP Inspector
|
|
352
|
-
npx @modelcontextprotocol/inspector node build/index.js
|
|
353
|
-
|
|
354
|
-
# Or test with your MCP client
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
4. **Commit your changes:**
|
|
358
|
-
```bash
|
|
359
|
-
git add .
|
|
360
|
-
git commit -m "feat: add new feature"
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
**Commit message format:**
|
|
364
|
-
- `feat:` New features
|
|
365
|
-
- `fix:` Bug fixes
|
|
366
|
-
- `docs:` Documentation changes
|
|
367
|
-
- `refactor:` Code refactoring
|
|
368
|
-
- `test:` Test additions/changes
|
|
369
|
-
- `chore:` Maintenance tasks
|
|
370
|
-
|
|
371
|
-
5. **Push and create PR:**
|
|
372
|
-
```bash
|
|
373
|
-
git push origin feature/your-feature-name
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
Create a pull request on GitHub with:
|
|
377
|
-
- Clear description of changes
|
|
378
|
-
- Testing steps performed
|
|
379
|
-
- Any breaking changes noted
|
|
380
|
-
|
|
381
|
-
### Testing
|
|
382
|
-
|
|
383
|
-
Hawkeye MCP includes comprehensive testing for unit, integration, and end-to-end validation.
|
|
384
|
-
|
|
385
|
-
#### Test Organization
|
|
386
|
-
|
|
387
|
-
```
|
|
388
|
-
tests/
|
|
389
|
-
├── README.md # Complete testing guide
|
|
390
|
-
├── unit/ # Unit tests for individual tools
|
|
391
|
-
├── integration/ # Integration tests (planned)
|
|
392
|
-
└── e2e/ # End-to-end testing workflows
|
|
393
|
-
├── test-connections.md # Test credentials and setup
|
|
394
|
-
└── test-prompt.md # Complete onboarding workflow
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
#### Running Tests
|
|
398
|
-
|
|
399
|
-
**Unit Tests:**
|
|
400
|
-
```bash
|
|
401
|
-
# Build first
|
|
402
|
-
npm run build
|
|
403
|
-
|
|
404
|
-
# Run authentication test
|
|
405
|
-
node tests/unit/test-auth.js
|
|
406
|
-
|
|
407
|
-
# Run connection tools test
|
|
408
|
-
node tests/unit/test-connection-tools.mjs
|
|
409
|
-
|
|
410
|
-
# Run manual investigation test (requires prompt argument)
|
|
411
|
-
./tests/unit/test-manual-investigation.mjs "Investigate high CPU in api-gateway"
|
|
412
|
-
|
|
413
|
-
# Test with MCP Inspector (interactive)
|
|
414
|
-
npx @modelcontextprotocol/inspector node build/index.js
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
**End-to-End Tests:**
|
|
418
|
-
|
|
419
|
-
E2E tests are designed for AI coding agents (Claude Desktop/Code):
|
|
420
|
-
|
|
421
|
-
1. Open your AI coding agent
|
|
422
|
-
2. Navigate to `tests/e2e/test-prompt.md`
|
|
423
|
-
3. Copy the test workflow
|
|
424
|
-
4. Paste into your AI agent
|
|
425
|
-
5. Let it execute each phase
|
|
426
|
-
6. Verify outcomes match expectations
|
|
427
|
-
|
|
428
|
-
**Test Resources:**
|
|
429
|
-
|
|
430
|
-
- **[tests/README.md](./tests/README.md)** - Complete testing guide with best practices
|
|
431
|
-
- **[tests/e2e/test-connections.md](./tests/e2e/test-connections.md)** - Test environment credentials
|
|
432
|
-
- **[tests/e2e/test-prompt.md](./tests/e2e/test-prompt.md)** - Complete E2E onboarding workflow
|
|
433
|
-
|
|
434
|
-
#### Test Types
|
|
435
|
-
|
|
436
|
-
| Type | Location | Purpose | Duration |
|
|
437
|
-
|------|----------|---------|----------|
|
|
438
|
-
| **Unit** | `tests/unit/` | Test individual tools in isolation | Seconds |
|
|
439
|
-
| **Integration** | `tests/integration/` | Test tools working together | Minutes |
|
|
440
|
-
| **E2E** | `tests/e2e/` | Test complete user workflows with AI agent | 45-90 min |
|
|
441
|
-
|
|
442
|
-
#### Quick Validation
|
|
443
|
-
|
|
444
|
-
Before submitting a PR, run these quick tests:
|
|
445
|
-
|
|
446
|
-
```bash
|
|
447
|
-
# 1. Build
|
|
448
|
-
npm run build
|
|
449
|
-
|
|
450
|
-
# 2. Test authentication
|
|
451
|
-
node tests/unit/test-auth.js
|
|
452
|
-
|
|
453
|
-
# 3. Test a few core tools
|
|
454
|
-
node tests/unit/test-connection-tools.mjs
|
|
455
|
-
./tests/unit/test-manual-investigation.mjs "Test investigation"
|
|
456
|
-
|
|
457
|
-
# 4. Verify tools load in MCP Inspector
|
|
458
|
-
npx @modelcontextprotocol/inspector node build/index.js
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
For comprehensive testing documentation, see **[tests/README.md](./tests/README.md)**.
|
|
462
|
-
|
|
463
|
-
### Building and Publishing
|
|
464
|
-
|
|
465
|
-
**Building:**
|
|
466
|
-
```bash
|
|
467
|
-
npm run build
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
**Publishing to npm:**
|
|
471
|
-
```bash
|
|
472
|
-
# Update version in package.json
|
|
473
|
-
npm version patch # or minor, or major
|
|
474
|
-
|
|
475
|
-
# Build
|
|
476
|
-
npm run build
|
|
477
|
-
|
|
478
|
-
# Publish
|
|
479
|
-
npm publish
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
**Note:** Only maintainers can publish to npm.
|
|
483
|
-
|
|
484
|
-
### Code Style
|
|
485
|
-
|
|
486
|
-
- Use TypeScript for all new code
|
|
487
|
-
- Follow existing code patterns
|
|
488
|
-
- Add JSDoc comments for public APIs
|
|
489
|
-
- Use meaningful variable names
|
|
490
|
-
- Keep functions focused and small
|
|
491
|
-
|
|
492
|
-
### Adding New Tools
|
|
493
|
-
|
|
494
|
-
1. **Create tool file in `src/tools/`:**
|
|
495
|
-
```typescript
|
|
496
|
-
export const toolName = {
|
|
497
|
-
name: 'hawkeye_tool_name',
|
|
498
|
-
description: 'Tool description',
|
|
499
|
-
inputSchema: {
|
|
500
|
-
type: 'object',
|
|
501
|
-
properties: {
|
|
502
|
-
// Define parameters
|
|
503
|
-
},
|
|
504
|
-
required: []
|
|
505
|
-
}
|
|
506
|
-
};
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
2. **Implement handler in `src/index.ts`:**
|
|
510
|
-
```typescript
|
|
511
|
-
case 'hawkeye_tool_name':
|
|
512
|
-
// Implementation
|
|
513
|
-
break;
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
3. **Update documentation:**
|
|
517
|
-
- Add to TOOLS_REFERENCE.md
|
|
518
|
-
- Update tool count in README.md
|
|
519
|
-
- Add examples if needed
|
|
520
|
-
|
|
521
|
-
4. **Add tests:**
|
|
522
|
-
- Create test file in `tests/`
|
|
523
|
-
- Test both success and error cases
|
|
524
|
-
|
|
525
|
-
### Documentation Updates
|
|
526
|
-
|
|
527
|
-
If your changes affect the documentation site:
|
|
528
|
-
|
|
529
|
-
1. Documentation lives in separate repo: [neubirdai/hawkeye-mcp-docs](https://github.com/neubirdai/hawkeye-mcp-docs)
|
|
530
|
-
2. Create PR there with documentation updates
|
|
531
|
-
3. Link documentation PR in your code PR
|
|
532
|
-
|
|
533
|
-
### Getting Help
|
|
534
|
-
|
|
535
|
-
- **Internal Slack:** #hawkeye-mcp channel
|
|
536
|
-
- **Code Questions:** Ask in PR comments
|
|
537
|
-
- **Design Discussions:** Create GitHub issue
|
|
538
|
-
|
|
539
|
-
## 🐛 Troubleshooting
|
|
540
|
-
|
|
541
|
-
For detailed troubleshooting, see [Troubleshooting Guide](https://neubirdai.github.io/hawkeye-mcp-docs/troubleshooting/).
|
|
542
|
-
|
|
543
|
-
**Common issues:**
|
|
544
|
-
|
|
545
|
-
- **Authentication errors:** Verify `HAWKEYE_EMAIL`, `HAWKEYE_PASSWORD`, and `HAWKEYE_BASE_URL`
|
|
546
|
-
- **Tools not showing:** Restart MCP client completely
|
|
547
|
-
- **Investigation timeout:** Check connection sync status, increase `HAWKEYE_MAX_POLL_ATTEMPTS`
|
|
548
|
-
|
|
549
|
-
## 📝 Changelog
|
|
550
|
-
|
|
551
|
-
See [CHANGELOG.md](./CHANGELOG.md) for version history and release notes.
|
|
552
|
-
|
|
553
|
-
## 🤝 Support
|
|
554
|
-
|
|
555
|
-
- **Documentation:** [https://neubirdai.github.io/hawkeye-mcp-docs](https://neubirdai.github.io/hawkeye-mcp-docs)
|
|
556
|
-
- **Email:** support@neubird.ai
|
|
557
|
-
- **Website:** [https://neubird.ai](https://neubird.ai)
|
|
558
|
-
|
|
559
|
-
## 📄 License
|
|
560
|
-
|
|
561
|
-
MIT License - see [LICENSE](./LICENSE) file for details.
|
|
562
|
-
|
|
563
|
-
Copyright © 2024 NeuBird AI
|
|
564
|
-
|
|
565
|
-
## 🙏 Acknowledgments
|
|
566
|
-
|
|
567
|
-
Built with:
|
|
568
|
-
- [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) - MCP Protocol implementation
|
|
569
|
-
- [TypeScript](https://www.typescriptlang.org/) - Type-safe JavaScript
|
|
570
|
-
- [Axios](https://axios-http.com/) - HTTP client
|
|
571
|
-
- [Zod](https://zod.dev/) - Runtime validation
|
|
572
|
-
|
|
573
|
-
---
|
|
29
|
+
Environment variables `HAWKEYE_EMAIL`, `HAWKEYE_PASSWORD`, and `HAWKEYE_BASE_URL` continue to work but `NEUBIRD_*` is preferred.
|
|
574
30
|
|
|
575
|
-
|
|
31
|
+
For full documentation, visit [help.neubird.ai/mcp](https://help.neubird.ai/mcp/overview/).
|
package/package.json
CHANGED
|
@@ -1,74 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hawkeye-mcp-server",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "This package has been renamed to @neubirdai/mcp-server-neubird. Install @neubirdai/mcp-server-neubird instead.",
|
|
5
5
|
"private": false,
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
"bin": {
|
|
9
|
-
"hawkeye-mcp-server": "./build/index.js"
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@neubirdai/mcp-server-neubird": "^3.0.0"
|
|
10
8
|
},
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"README.md",
|
|
14
|
-
"INSTALLATION.md",
|
|
15
|
-
"USAGE.md",
|
|
16
|
-
"SPECIFICATION.md",
|
|
17
|
-
"LICENSE",
|
|
18
|
-
"CHANGELOG.md"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"start": "node build/index.js",
|
|
22
|
-
"start:http": "TRANSPORT_MODE=http node build/server.js",
|
|
23
|
-
"build": "tsc && chmod 755 build/index.js && chmod 755 build/server.js",
|
|
24
|
-
"typecheck": "tsc --noEmit",
|
|
25
|
-
"prestart": "npm run build",
|
|
26
|
-
"prepublishOnly": "npm run build",
|
|
27
|
-
"test": "npm run build && node --test tests/basic/**/*.test.mjs",
|
|
28
|
-
"test:install": "node build/index.js --version"
|
|
9
|
+
"bin": {
|
|
10
|
+
"hawkeye-mcp-server": "./node_modules/.bin/mcp-server-neubird"
|
|
29
11
|
},
|
|
30
12
|
"keywords": [
|
|
31
13
|
"mcp",
|
|
32
|
-
"model-context-protocol",
|
|
33
|
-
"hawkeye",
|
|
34
14
|
"neubird",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"root-cause-analysis",
|
|
38
|
-
"cloud-monitoring",
|
|
39
|
-
"observability",
|
|
40
|
-
"cursor",
|
|
41
|
-
"claude",
|
|
42
|
-
"ai-agent"
|
|
15
|
+
"hawkeye",
|
|
16
|
+
"deprecated"
|
|
43
17
|
],
|
|
44
18
|
"author": "Neubird AI <support@neubird.ai>",
|
|
45
19
|
"license": "MIT",
|
|
20
|
+
"homepage": "https://help.neubird.ai/mcp/overview/",
|
|
46
21
|
"repository": {
|
|
47
22
|
"type": "git",
|
|
48
|
-
"url": "https://github.com/neubirdai/mcp-server-
|
|
49
|
-
},
|
|
50
|
-
"homepage": "https://github.com/neubirdai/mcp-server-hawkeye/tree/main",
|
|
51
|
-
"bugs": {
|
|
52
|
-
"email": "support@neubird.ai"
|
|
53
|
-
},
|
|
54
|
-
"engines": {
|
|
55
|
-
"node": ">=20.0.0"
|
|
56
|
-
},
|
|
57
|
-
"dependencies": {
|
|
58
|
-
"@modelcontextprotocol/sdk": "^1.10.0",
|
|
59
|
-
"axios": "^1.9.0",
|
|
60
|
-
"cors": "^2.8.5",
|
|
61
|
-
"dotenv": "^16.4.5",
|
|
62
|
-
"express": "^5.2.1",
|
|
63
|
-
"json-schema-to-zod": "^2.6.1",
|
|
64
|
-
"pg": "^8.16.3",
|
|
65
|
-
"zod": "^3.24.3"
|
|
66
|
-
},
|
|
67
|
-
"devDependencies": {
|
|
68
|
-
"@types/cors": "^2.8.19",
|
|
69
|
-
"@types/express": "^5.0.6",
|
|
70
|
-
"@types/node": "^22.15.2",
|
|
71
|
-
"@types/pg": "^8.15.6",
|
|
72
|
-
"typescript": "^5.8.3"
|
|
23
|
+
"url": "https://github.com/neubirdai/mcp-server-neubird"
|
|
73
24
|
}
|
|
74
25
|
}
|