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.
Files changed (203) hide show
  1. package/README.md +12 -556
  2. package/package.json +10 -59
  3. package/CHANGELOG.md +0 -581
  4. package/LICENSE +0 -21
  5. package/SPECIFICATION.md +0 -1192
  6. package/build/config/config.d.ts +0 -74
  7. package/build/config/config.js +0 -152
  8. package/build/config/config.js.map +0 -1
  9. package/build/db/index.d.ts +0 -51
  10. package/build/db/index.js +0 -174
  11. package/build/db/index.js.map +0 -1
  12. package/build/db/postgres-state-provider.d.ts +0 -52
  13. package/build/db/postgres-state-provider.js +0 -165
  14. package/build/db/postgres-state-provider.js.map +0 -1
  15. package/build/index.d.ts +0 -9
  16. package/build/index.js +0 -86
  17. package/build/index.js.map +0 -1
  18. package/build/mcp-server-factory.d.ts +0 -36
  19. package/build/mcp-server-factory.js +0 -92
  20. package/build/mcp-server-factory.js.map +0 -1
  21. package/build/server.d.ts +0 -9
  22. package/build/server.js +0 -349
  23. package/build/server.js.map +0 -1
  24. package/build/services/auth.service.d.ts +0 -89
  25. package/build/services/auth.service.js +0 -222
  26. package/build/services/auth.service.js.map +0 -1
  27. package/build/services/connection.service.d.ts +0 -51
  28. package/build/services/connection.service.js +0 -160
  29. package/build/services/connection.service.js.map +0 -1
  30. package/build/services/guidance.service.d.ts +0 -69
  31. package/build/services/guidance.service.js +0 -591
  32. package/build/services/guidance.service.js.map +0 -1
  33. package/build/services/investigation-progress-store.d.ts +0 -79
  34. package/build/services/investigation-progress-store.js +0 -193
  35. package/build/services/investigation-progress-store.js.map +0 -1
  36. package/build/services/investigation-stream.d.ts +0 -45
  37. package/build/services/investigation-stream.js +0 -330
  38. package/build/services/investigation-stream.js.map +0 -1
  39. package/build/services/project.service.d.ts +0 -85
  40. package/build/services/project.service.js +0 -356
  41. package/build/services/project.service.js.map +0 -1
  42. package/build/services/session.service.d.ts +0 -70
  43. package/build/services/session.service.js +0 -401
  44. package/build/services/session.service.js.map +0 -1
  45. package/build/services/state.service.d.ts +0 -115
  46. package/build/services/state.service.js +0 -172
  47. package/build/services/state.service.js.map +0 -1
  48. package/build/tools/add-connection-to-project.d.ts +0 -31
  49. package/build/tools/add-connection-to-project.js +0 -116
  50. package/build/tools/add-connection-to-project.js.map +0 -1
  51. package/build/tools/apply-session-instruction.d.ts +0 -36
  52. package/build/tools/apply-session-instruction.js +0 -160
  53. package/build/tools/apply-session-instruction.js.map +0 -1
  54. package/build/tools/continue-investigation.d.ts +0 -10
  55. package/build/tools/continue-investigation.js +0 -72
  56. package/build/tools/continue-investigation.js.map +0 -1
  57. package/build/tools/create-connection.d.ts +0 -100
  58. package/build/tools/create-connection.js +0 -100
  59. package/build/tools/create-connection.js.map +0 -1
  60. package/build/tools/create-manual-investigation.d.ts +0 -18
  61. package/build/tools/create-manual-investigation.js +0 -152
  62. package/build/tools/create-manual-investigation.js.map +0 -1
  63. package/build/tools/create-project-instruction.d.ts +0 -32
  64. package/build/tools/create-project-instruction.js +0 -130
  65. package/build/tools/create-project-instruction.js.map +0 -1
  66. package/build/tools/create-project.d.ts +0 -28
  67. package/build/tools/create-project.js +0 -48
  68. package/build/tools/create-project.js.map +0 -1
  69. package/build/tools/delete-project-instruction.d.ts +0 -22
  70. package/build/tools/delete-project-instruction.js +0 -44
  71. package/build/tools/delete-project-instruction.js.map +0 -1
  72. package/build/tools/delete-project.d.ts +0 -31
  73. package/build/tools/delete-project.js +0 -67
  74. package/build/tools/delete-project.js.map +0 -1
  75. package/build/tools/discover-project-resources.d.ts +0 -29
  76. package/build/tools/discover-project-resources.js +0 -136
  77. package/build/tools/discover-project-resources.js.map +0 -1
  78. package/build/tools/get-chain-of-thought.d.ts +0 -35
  79. package/build/tools/get-chain-of-thought.js +0 -100
  80. package/build/tools/get-chain-of-thought.js.map +0 -1
  81. package/build/tools/get-connection-info.d.ts +0 -22
  82. package/build/tools/get-connection-info.js +0 -47
  83. package/build/tools/get-connection-info.js.map +0 -1
  84. package/build/tools/get-follow-up-suggestions.d.ts +0 -32
  85. package/build/tools/get-follow-up-suggestions.js +0 -67
  86. package/build/tools/get-follow-up-suggestions.js.map +0 -1
  87. package/build/tools/get-guidance.d.ts +0 -25
  88. package/build/tools/get-guidance.js +0 -28
  89. package/build/tools/get-guidance.js.map +0 -1
  90. package/build/tools/get-incident-report.d.ts +0 -10
  91. package/build/tools/get-incident-report.js +0 -62
  92. package/build/tools/get-incident-report.js.map +0 -1
  93. package/build/tools/get-investigation-queries.d.ts +0 -32
  94. package/build/tools/get-investigation-queries.js +0 -81
  95. package/build/tools/get-investigation-queries.js.map +0 -1
  96. package/build/tools/get-investigation-sources.d.ts +0 -32
  97. package/build/tools/get-investigation-sources.js +0 -128
  98. package/build/tools/get-investigation-sources.js.map +0 -1
  99. package/build/tools/get-project-details.d.ts +0 -22
  100. package/build/tools/get-project-details.js +0 -68
  101. package/build/tools/get-project-details.js.map +0 -1
  102. package/build/tools/get-rca-score.d.ts +0 -26
  103. package/build/tools/get-rca-score.js +0 -72
  104. package/build/tools/get-rca-score.js.map +0 -1
  105. package/build/tools/get-rca.d.ts +0 -31
  106. package/build/tools/get-rca.js +0 -64
  107. package/build/tools/get-rca.js.map +0 -1
  108. package/build/tools/get-session-link.d.ts +0 -24
  109. package/build/tools/get-session-link.js +0 -30
  110. package/build/tools/get-session-link.js.map +0 -1
  111. package/build/tools/get-session-report.d.ts +0 -25
  112. package/build/tools/get-session-report.js +0 -46
  113. package/build/tools/get-session-report.js.map +0 -1
  114. package/build/tools/get-session-summary.d.ts +0 -25
  115. package/build/tools/get-session-summary.js +0 -45
  116. package/build/tools/get-session-summary.js.map +0 -1
  117. package/build/tools/get-status.d.ts +0 -10
  118. package/build/tools/get-status.js +0 -284
  119. package/build/tools/get-status.js.map +0 -1
  120. package/build/tools/index.d.ts +0 -38
  121. package/build/tools/index.js +0 -1637
  122. package/build/tools/index.js.map +0 -1
  123. package/build/tools/inspect-session.d.ts +0 -34
  124. package/build/tools/inspect-session.js +0 -75
  125. package/build/tools/inspect-session.js.map +0 -1
  126. package/build/tools/investigate-alert.d.ts +0 -10
  127. package/build/tools/investigate-alert.js +0 -145
  128. package/build/tools/investigate-alert.js.map +0 -1
  129. package/build/tools/list-connection-resource-types.d.ts +0 -25
  130. package/build/tools/list-connection-resource-types.js +0 -58
  131. package/build/tools/list-connection-resource-types.js.map +0 -1
  132. package/build/tools/list-connection-resources.d.ts +0 -37
  133. package/build/tools/list-connection-resources.js +0 -108
  134. package/build/tools/list-connection-resources.js.map +0 -1
  135. package/build/tools/list-connection-types.d.ts +0 -9
  136. package/build/tools/list-connection-types.js +0 -141
  137. package/build/tools/list-connection-types.js.map +0 -1
  138. package/build/tools/list-connections.d.ts +0 -22
  139. package/build/tools/list-connections.js +0 -43
  140. package/build/tools/list-connections.js.map +0 -1
  141. package/build/tools/list-project-connections.d.ts +0 -22
  142. package/build/tools/list-project-connections.js +0 -81
  143. package/build/tools/list-project-connections.js.map +0 -1
  144. package/build/tools/list-project-instructions.d.ts +0 -31
  145. package/build/tools/list-project-instructions.js +0 -78
  146. package/build/tools/list-project-instructions.js.map +0 -1
  147. package/build/tools/list-sessions.d.ts +0 -55
  148. package/build/tools/list-sessions.js +0 -195
  149. package/build/tools/list-sessions.js.map +0 -1
  150. package/build/tools/remove-connection-from-project.d.ts +0 -36
  151. package/build/tools/remove-connection-from-project.js +0 -64
  152. package/build/tools/remove-connection-from-project.js.map +0 -1
  153. package/build/tools/rerun-session.d.ts +0 -37
  154. package/build/tools/rerun-session.js +0 -107
  155. package/build/tools/rerun-session.js.map +0 -1
  156. package/build/tools/set-default-project.d.ts +0 -27
  157. package/build/tools/set-default-project.js +0 -26
  158. package/build/tools/set-default-project.js.map +0 -1
  159. package/build/tools/switch-instance.d.ts +0 -22
  160. package/build/tools/switch-instance.js +0 -94
  161. package/build/tools/switch-instance.js.map +0 -1
  162. package/build/tools/update-project-instruction-status.d.ts +0 -26
  163. package/build/tools/update-project-instruction-status.js +0 -59
  164. package/build/tools/update-project-instruction-status.js.map +0 -1
  165. package/build/tools/update-project.d.ts +0 -41
  166. package/build/tools/update-project.js +0 -64
  167. package/build/tools/update-project.js.map +0 -1
  168. package/build/tools/validate-instruction.d.ts +0 -31
  169. package/build/tools/validate-instruction.js +0 -88
  170. package/build/tools/validate-instruction.js.map +0 -1
  171. package/build/tools/wait-for-connection-sync.d.ts +0 -28
  172. package/build/tools/wait-for-connection-sync.js +0 -51
  173. package/build/tools/wait-for-connection-sync.js.map +0 -1
  174. package/build/tools/wait-for-project-ready.d.ts +0 -28
  175. package/build/tools/wait-for-project-ready.js +0 -106
  176. package/build/tools/wait-for-project-ready.js.map +0 -1
  177. package/build/types/errors.d.ts +0 -61
  178. package/build/types/errors.js +0 -76
  179. package/build/types/errors.js.map +0 -1
  180. package/build/types/hawkeye.d.ts +0 -483
  181. package/build/types/hawkeye.js +0 -89
  182. package/build/types/hawkeye.js.map +0 -1
  183. package/build/types/mcp.d.ts +0 -136
  184. package/build/types/mcp.js +0 -6
  185. package/build/types/mcp.js.map +0 -1
  186. package/build/utils/connection-builders.d.ts +0 -49
  187. package/build/utils/connection-builders.js +0 -250
  188. package/build/utils/connection-builders.js.map +0 -1
  189. package/build/utils/errors.d.ts +0 -20
  190. package/build/utils/errors.js +0 -125
  191. package/build/utils/errors.js.map +0 -1
  192. package/build/utils/http-client.d.ts +0 -60
  193. package/build/utils/http-client.js +0 -147
  194. package/build/utils/http-client.js.map +0 -1
  195. package/build/utils/logger.d.ts +0 -35
  196. package/build/utils/logger.js +0 -77
  197. package/build/utils/logger.js.map +0 -1
  198. package/build/utils/state.d.ts +0 -65
  199. package/build/utils/state.js +0 -122
  200. package/build/utils/state.js.map +0 -1
  201. package/build/utils/validation.d.ts +0 -116
  202. package/build/utils/validation.js +0 -62
  203. package/build/utils/validation.js.map +0 -1
package/README.md CHANGED
@@ -1,575 +1,31 @@
1
- # Hawkeye MCP Server
1
+ # hawkeye-mcp-server
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/hawkeye-mcp-server.svg)](https://www.npmjs.com/package/hawkeye-mcp-server)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Node.js Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg)](https://nodejs.org/)
3
+ > **This package has been renamed to [`mcp-server-neubird`](https://www.npmjs.com/package/mcp-server-neubird).**
6
4
 
7
- > Model Context Protocol (MCP) server that brings Hawkeye's AI-powered incident investigation and root cause analysis directly into your AI coding environment.
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
- # Install globally
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
- **Cursor** (`~/.cursor/mcp.json`):
11
+ Or update your MCP configuration:
60
12
 
61
13
  ```json
62
14
  {
63
15
  "mcpServers": {
64
- "hawkeye": {
16
+ "neubird": {
65
17
  "command": "npx",
66
- "args": ["-y", "hawkeye-mcp-server"],
18
+ "args": ["-y", "mcp-server-neubird@latest"],
67
19
  "env": {
68
- "HAWKEYE_EMAIL": "your-email@company.com",
69
- "HAWKEYE_PASSWORD": "your-password",
70
- "HAWKEYE_BASE_URL": "https://app.neubird.ai/api"
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
- **With Password Credentials:**
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
- **Made with ❤️ by [NeuBird AI](https://neubird.ai)** | [Documentation](https://neubirdai.github.io/hawkeye-mcp-docs) | [npm](https://www.npmjs.com/package/hawkeye-mcp-server)
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": "2.3.1",
4
- "description": "MCP Server for Hawkeye automated incident investigation and root cause analysis",
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
- "type": "module",
7
- "main": "build/index.js",
8
- "bin": {
9
- "hawkeye-mcp-server": "./build/index.js"
6
+ "dependencies": {
7
+ "@neubirdai/mcp-server-neubird": "^3.0.0"
10
8
  },
11
- "files": [
12
- "build/**/*",
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
- "incident-investigation",
36
- "rca",
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-hawkeye"
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
  }