# Changelog

All notable changes to the NeuBird MCP Server will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.1.0] - 2026-04-21

### Added

- **Credential-file fallback at startup.** When stdio-mode `NEUBIRD_EMAIL`/`NEUBIRD_PASSWORD` env vars are not set, the server now reads `~/.config/neubird/neubird.json` (the file the Falcon CLI writes with `neubird login`). Lets MCP client plugins spawn the server without declaring an `env` block — important for Claude Code plugins that can't resolve `${user_config.*}` tokens at spawn time.
- **Profile selection via `NEUBIRD_PROFILE`.** Reads `~/.config/neubird/neubird-<profile>.json`, falling back to the default file if the profile-specific one is missing.
- **Windows platform support** for credential lookup (`%APPDATA%\neubird\`). Matches Falcon's `os.UserConfigDir()` behavior.
- **Bearer-token credentials.** When the credential file has an `access_token` but no `ace_creds`, the server uses the bearer token directly and skips login. `expires_at` is honored with a 5-minute safety buffer so expired tokens are rejected early with a clear error instead of a cryptic 401.

### Changed

- Startup error message now points at `neubird login` when neither env vars nor the credential file provide valid credentials.
- Removed misleading "NEUBIRD_EMAIL: ✓ Set / ✗ Not set" echo at module-import time — it looked only at env vars and would lie when credentials came from the file.

### Compatibility

No breaking changes. Env-var-based deploys (server mode, K8s) keep working exactly as before; env always takes precedence over the file.

## [3.0.0] - 2026-04-21

### Changed

- **Rebranded from Hawkeye to NeuBird.** Package published under the `@neubirdai` npm scope as `@neubirdai/mcp-server-neubird`. Unscoped `mcp-server-neubird` is published as a thin redirect shim that depends on the scoped package; `hawkeye-mcp-server` continues to be published as a legacy wrapper. All three package names install and run the same server.
- **Default tool prefix is now `neubird_`** (e.g., `neubird_investigate_alert`). Set `NEUBIRD_TOOL_PREFIX=hawkeye` to restore the legacy `hawkeye_*` prefix.
- **Environment variables prefer `NEUBIRD_*`.** `HAWKEYE_EMAIL`, `HAWKEYE_PASSWORD`, `HAWKEYE_BASE_URL`, and other legacy `HAWKEYE_*` variables are still accepted; `NEUBIRD_*` takes precedence when both are set.
- **HTTP auth headers prefer `X-NeuBird-*`.** Legacy `X-Hawkeye-Email` / `X-Hawkeye-Password` headers are still accepted.

### Compatibility

No breaking changes to runtime behavior. Existing `hawkeye-mcp-server` installations, `HAWKEYE_*` env vars, and `X-Hawkeye-*` headers continue to work.

## [2.0.13] - 2025-11-24

### Added

- **State file persistence**: Settings now persist across server restarts in `~/.hawkeye-mcp/state.json`
  - Default project UUID persists when set via `hawkeye_set_default_project`
  - Base URL persists when switched via `hawkeye_switch_instance`
  - No more manual MCP config file edits needed
  - State file automatically created on first use

- **UI link in investigation status**: `hawkeye_get_investigation_status` now includes `ui_link` field
  - Direct link to view investigation in Hawkeye web UI
  - Format: `https://{instance}/console/project/{project_uuid}/session/{session_uuid}?tab=results`

### Changed

- **Configuration priority**:
  - Default project: state file > env var > auto-select first project
  - Base URL: state file > env var > default sandbox URL
  - State persists across restarts without config changes

## [2.0.10] - 2025-11-24

### Changed

- **Simplified investigation architecture**: Removed worker thread approach for manual investigations
  - Removed `StreamingService`, `InvestigationTracker`, and worker thread infrastructure
  - Manual investigations now use fire-and-forget approach with API polling
  - Users should poll with `hawkeye_inspect_session` or `hawkeye_get_chain_of_thought` to monitor progress
  - Simplified codebase, removed memory isolation issues
  - Cleaned build artifacts - package size reduced from 723.3 kB to 680.1 kB

### Removed

- Worker thread-based streaming for manual investigations
- `src/services/streaming.service.ts`
- `src/services/investigation-tracker.ts`
- `src/workers/stream-consumer.ts`
- `src/utils/progress-tracker.ts`
- `stream_progress` parameter from `hawkeye_investigate_alert`

### Fixed

- Investigation progress tracking now queries API directly instead of relying on isolated worker thread memory
- `hawkeye_get_investigation_status` now properly reflects investigation state from API

## [2.0.9] - 2025-11-24

### Note
- Published with stale build artifacts, superseded by 2.0.10

## [2.0.8] - 2025-11-23

### Fixed

- **hawkeye_create_manual_investigation now supports wait_for_completion**: Added missing `wait_for_completion` and `max_wait_seconds` parameters
  - Tool now properly handles `wait_for_completion: true` by polling the investigation tracker
  - Polls every 5 seconds until completion or timeout
  - Returns full RCA when investigation completes
  - Returns timeout response with progress if max wait time exceeded
  - Previously these parameters were silently ignored, causing confusion

### Added

- **Polling logic for manual investigations**: When `wait_for_completion: true`:
  - Automatically polls investigation tracker every 5 seconds
  - Fetches and returns RCA on completion
  - Throws error if investigation fails
  - Returns timeout response with current progress if exceeded `max_wait_seconds`

## [2.0.7] - 2025-11-23

### Added

- **Enhanced Debug Logging**: Added comprehensive logging throughout worker thread stream consumer
  - Worker lifecycle logs (start, connection, completion)
  - Chunk reception and processing logs
  - Progress update logs with message previews
  - Error logs with full stack traces
  - Session UUID included in all worker log messages for traceability

### Changed

- **Improved Debugging**: All worker thread operations now log to stderr for troubleshooting
  - Logs include: Base URL, project UUID, stream connection status
  - Each log prefixed with `[Worker <session_uuid>]` for easy filtering
  - Chunk size and message count tracking
  - Stream end notifications with statistics

### Documentation

- **Added Claude Code Logging Reference**: New `CLAUDE_CODE_LOGGING.md` document
  - Comprehensive guide to finding and reading Claude Code logs
  - MCP server logging configuration and testing
  - Quick reference commands for log searching
  - Locations of conversation logs and MCP server output

## [2.0.6] - 2025-11-23

### 🎉 Fixed - Background Stream Processing

This release fixes the critical streaming issue where the `/v1/inference/session` API response was not being consumed, causing "stream has been aborted" errors.

### Added

- **Worker Thread Stream Consumer**: New background worker that consumes streaming responses
  - Created `src/workers/stream-consumer.ts` - Dedicated worker thread for stream consumption
  - Created `src/services/investigation-tracker.ts` - In-memory state tracker for ongoing investigations
  - Worker processes SSE stream data and updates tracker in real-time

- **Live Progress Tracking**: Investigations now tracked in-memory with real-time updates
  - `investigationTracker` stores progress updates, status, and completion messages
  - Progress updates available immediately when polling with `hawkeye_get_investigation_status`
  - Tracks: starting → in_progress → completed/failed states

### Changed

- **`create-manual-investigation` now spawns worker thread**:
  - Creates session via `/v1/inference/new_session`
  - Spawns background worker to consume `/v1/inference/session` stream
  - Returns immediately with session_uuid
  - Worker handles all streaming data asynchronously

- **`get-investigation-status` enhanced**:
  - First checks in-memory tracker for live progress
  - Falls back to API query if not tracked
  - Returns progress percentage based on progress update count
  - Shows current step from latest progress message

### Technical Details

- **Root Cause**: `/v1/inference/session` returns a **stream** of `ProcessPromptResponse` objects
- **Previous Behavior**: Stream was opened but never consumed, causing connection errors
- **New Behavior**: Worker thread consumes entire stream in background, updating shared state
- **Architecture**:
  - Main thread: Returns immediately to MCP client
  - Worker thread: Consumes stream, sends messages back to main thread
  - Shared state: `investigationTracker` Map stores live progress
  - Polling: LLM polls every 10-15 seconds to get latest state

### Fixed

- ✅ "stream has been aborted" errors when creating manual investigations
- ✅ Blocking behavior while waiting for stream to complete
- ✅ No feedback during investigation progress
- ✅ MCP protocol limitation (no streaming to client) now handled elegantly

## [2.0.5] - 2025-11-23

### Fixed

- **Removed remaining `wait_for_completion` references from guidance service documentation**
  - Removed references at line 253 in connection sync best practices
  - Removed references at line 530 in onboarding workflow instructions
  - These were documentation strings that suggested using the removed parameter
  - Ensures LLMs no longer see any mentions of `wait_for_completion` in help/guidance

## [2.0.2] - 2025-11-23

### 🚨 BREAKING CHANGE: Removed wait_for_completion

This is a **critical** fix that removes the problematic `wait_for_completion` parameter that was causing investigations to block unnecessarily.

### Removed

- **Removed `wait_for_completion` parameter** from ALL investigation tools:
  - `hawkeye_create_manual_investigation` - NO MORE wait_for_completion
  - `hawkeye_investigate_alert` - NO MORE wait_for_completion
  - `hawkeye_continue_investigation` - NO MORE wait_for_completion
  - `hawkeye_rerun_session` - NO MORE wait_for_completion
- **Removed `max_wait_seconds` parameter** from all investigation tools

### Changed

- **ALL investigations now return immediately** with clear polling instructions
- All investigation tools now return:
  - `session_uuid` - For tracking the investigation
  - `status: 'in_progress'` - Current status
  - `estimated_completion_time` - How long to expect (e.g., "2-5 minutes")
  - `next_steps` - Clear instructions on what to do next
  - `polling_instructions` - Structured polling guidance with tool name and interval
- LLMs are now **instructed to poll every 10-15 seconds** using `hawkeye_get_investigation_status`
- Once status is `completed`, LLMs should call `hawkeye_get_rca` to retrieve results

### Fixed

- TypeScript interfaces in `src/types/mcp.ts` no longer define `wait_for_completion`
- Zod validation schemas in `src/utils/validation.ts` no longer include `wait_for_completion`
- Tool implementations no longer have conditional wait logic - always return immediately
- MCP tool schema generation will no longer show `wait_for_completion` as an option

### Enhanced

- **`hawkeye_get_investigation_status` now shows real-time progress**:
  - Checks `prompt_cycle` messages for latest `CONTENT_TYPE_PROGRESS_STATUS` updates
  - Humanizes technical progress messages with emojis and clear descriptions:
    - `PromptGate` → "🔧 Preparing telemetry sources"
    - `SelectTablesFirst` → "🔍 Classifying datasources"
    - `SQLSplitExecute` → "🔎 Consulting telemetry"
    - `SplitAnswer` → "🧠 Analyzing telemetry data"
  - Falls back to `chain_of_thoughts` if no progress messages available
  - Provides users with visibility into what Hawkeye is currently doing

## [2.0.0] - 2025-11-23

### 🎉 Major Feature: Real-Time Streaming Investigation Progress

This is a **major** release that fundamentally improves the investigation user experience by providing real-time progress updates during investigations.

### Added

- **🌊 NEW: Streaming Investigation Service** (`src/services/streaming.service.ts`)
  - Real-time Server-Sent Events (SSE) streaming from Hawkeye API
  - Parses progress updates, interim analysis, and completion messages
  - Async generator for clean iteration over progress updates

- **📊 NEW: Progress Tracker Utility** (`src/utils/progress-tracker.ts`)
  - Humanizes technical progress messages into user-friendly updates
  - Maps component actions to emojis and clear descriptions
  - Tracks elapsed time, phase progression, and query/analysis counts
  - Examples:
    - `PromptGate (Preparing Telemetry Sources)` → `🔧 Preparing telemetry sources [2s]`
    - `SQLSplitExecute (Consulting Telemetry)` → `🔎 Consulting telemetry (Query 7) [1m 30s]`

- **Enhanced `hawkeye_create_manual_investigation`**
  - New `stream_progress` parameter (default: `true`)
  - Returns progress log, elapsed time, and investigation summary when streaming
  - Provides phase-by-phase visibility into investigation workflow

- **Enhanced `hawkeye_investigate_alert`**
  - New `stream_progress` parameter (default: `true`)
  - Streams progress for new alert investigations
  - Same real-time feedback as manual investigations

### Changed

- **Better User Experience** - Users no longer wait 5-10 minutes with no feedback
- **Progress Visibility** - See exactly what Hawkeye is doing in real-time:
  - 🔧 Preparing telemetry sources
  - 📚 Loading investigation context
  - 🔍 Classifying datasources
  - ⚡ Generating investigation queries
  - 🔎 Consulting telemetry (with query counts)
  - 🧠 Analyzing telemetry data (with analysis counts)
  - 📝 Summarizing results
- **Progress Estimates** - Estimated progress percentage (0-100%) based on current phase
- **Detailed Summaries** - Get counts of steps, queries executed, and analyses performed

### Technical Details

- New service: `StreamingService` - handles SSE parsing and async iteration
- New utility: `ProgressTracker` - humanizes progress messages with emojis and timing
- Updated `ToolServices` interface to include `streamingService`
- Updated `HttpClient` with `getAxiosInstance()` method for streaming support
- Updated both investigation tools to support streaming by default
- Added comprehensive streaming test: `test-streaming-manual-investigation.mjs`

### Benefits

- 🚀 **Better UX** - Real-time feedback eliminates anxiety during long investigations
- 📊 **Transparency** - Users see exactly what Hawkeye is doing and how long it takes
- 🎯 **Progress Tracking** - Estimated completion percentage and phase information
- 📝 **Detailed Logs** - Complete progress log for debugging and analysis
- ⚡ **Default On** - Streaming is enabled by default, users can opt-out if needed

### Migration Notes

- No breaking changes to existing tool signatures
- `stream_progress` parameter is optional and defaults to `true`
- Users can set `stream_progress: false` to use original polling behavior
- All existing code continues to work without modification

## [1.5.0] - 2025-11-23

### Added
- **NEW TOOL: `hawkeye_set_default_project`** - Set the default project for the current session
  - Allows switching between projects without specifying project_uuid on every operation
  - Use natural language: "Switch to project HTM-Azure"
  - All tools that accept optional `project_uuid` will use the default when not specified
- **Enhanced `hawkeye_list_projects`** - Now shows which project is the default
  - Added `is_default` flag to each project in the response
  - Renamed `default_project` to `default_project_uuid` for clarity
  - Makes it easy to see which project is currently active

### Benefits
- 🎯 **Better workflow** - Switch project context once, then investigate without repeating project UUID
- 📋 **Clearer state** - Always know which project is the default when listing projects
- 💬 **Natural interaction** - Say "switch to project X" instead of looking up UUIDs

### Technical Details
- New tool: `src/tools/set-default-project.ts`
- Updated: `src/tools/index.ts` - Added tool and enhanced list projects output
- Total tools: 40 (was 39)

## [1.4.0] - 2025-11-21

### Added
- **🎯 Comprehensive RCA with Corrective Actions** - `hawkeye_get_rca` now returns formatted analysis including:
  - Incident summary and description
  - Timeline of events
  - Evidence and root cause
  - **Corrective actions with bash scripts** - executable commands to fix issues
  - **Time savings metrics** - shows manual vs Hawkeye investigation time
- **📊 NEW TOOL: `hawkeye_get_rca_score`** - Get quality scores for investigations:
  - Accuracy scores (root cause correctness, impact analysis, timeline)
  - Completeness scores (data sources, remediation steps, prevention measures, business impact)
  - Qualitative feedback (trust level, missing elements, improvement suggestions)

### Changed
- **Upgraded to `/v1/inference/session/summary` API** - Now uses the same endpoint as the Hawkeye UI for consistency
- **Updated SessionSummary types** - Added `analysis`, `time_saved_summary`, and nested structure fields
- **Updated `getSessionSummary` service** - Now accepts `projectUuid` parameter
- **Removed backwards compatibility code** - Cleaned up legacy methods and deprecated fields
- **Project cleanup** - Removed 22 development/debug test files and generated JSON artifacts

### Benefits
- 🔧 **Actionable insights** - Get executable bash scripts to fix issues immediately
- ⏱️ **Quantified value** - See exact time savings (e.g., "Saved 17 minutes: Manual 25min → Hawkeye 8min")
- 🎖️ **Quality visibility** - Understand investigation quality with detailed scoring
- 📦 **Cleaner codebase** - Removed legacy code and test artifacts

### Technical Details
- New tool: `src/tools/get-rca-score.ts`
- Updated: `src/tools/get-rca.ts` to use session summary endpoint
- Updated: `src/types/hawkeye.ts` - Enhanced SessionSummary interface
- Updated: `src/services/session.service.ts` - Added projectUuid to getSessionSummary
- Removed: `src-old/` directory and 22 test files
- All tests passing, build successful

---

## [1.3.0] - 2025-11-21

### Added
- **NEW TOOLS: Investigation Data Breakdown** - Redesigned `hawkeye_inspect_session` into 6 focused tools for better performance and UX:
  - `hawkeye_get_rca` ⭐ **NEW** - Get RCA summary only (2-5k tokens, ~10x faster)
  - `hawkeye_get_chain_of_thought` **NEW** - Get investigation reasoning steps
  - `hawkeye_get_investigation_queries` **NEW** - Get query execution logs
  - `hawkeye_get_investigation_sources` **NEW** - Get data sources consulted
  - `hawkeye_get_follow_up_suggestions` **NEW** - Get suggested follow-up questions
  - `hawkeye_inspect_session` **MODIFIED** - Now returns metadata only (1k tokens vs 48k)

### Changed
- **10x Performance Improvement** - Initial investigation summary retrieval now uses ~2-5k tokens instead of ~48k
- **Progressive Disclosure Workflow** - Users can now fetch exactly what they need: summary → reasoning → queries → sources
- **Updated Documentation** - README, USAGE, and examples updated to showcase new workflow
- **Better Tool Descriptions** - Each tool now has clear purpose and usage guidance

### Benefits
- ⚡ **10x faster** response times for common use cases
- 🎯 **Get exactly what you need** - no more overwhelming data dumps
- 💰 **Token efficient** - significantly reduced API costs
- 🔍 **Better UX** - natural progressive investigation flow

---

## [1.2.2] - 2025-11-20

### Fixed
- **Critical Bug: Instance Switching Now Works Correctly** - Fixed bug where switching instances updated the config but not the HttpClient's axios instance, causing all API calls to still go to the previous instance
  - Added `setBaseUrl()` method to HttpClient to update the axios baseURL at runtime
  - Added `getBaseUrl()` method to HttpClient for debugging
  - Updated `switchInstance` tool to call `httpClient.setBaseUrl()` when switching instances
  - Updated ToolServices interface to include httpClient reference
  - Instance switching now properly routes all subsequent API calls to the new instance

### Technical Details
- The bug occurred because HttpClient was initialized once at server startup with a base URL
- When switching instances, the config was updated but the HttpClient's internal axios instance retained the old URL
- The fix ensures both config and HttpClient are updated atomically during instance switching

---

## [1.2.1] - 2025-11-20

### Enhanced
- **Smart URL Normalization for Instance Switching** - The `hawkeye_switch_instance` tool now accepts flexible URL formats:
  - Just subdomain: `"prod"` → `https://prod.app.neubird.ai/api`
  - Partial URL: `"prod.app.neubird.ai"` → `https://prod.app.neubird.ai/api`
  - Full URL: preserved with smart completion
  - Automatic `https://` prefix addition
  - Automatic `/api` path suffix addition
  - Custom domain support

### Added
- Comprehensive URL normalization examples in documentation
- New "Working with Multiple Hawkeye Instances" section in USAGE.md
- Complete tool specification for `hawkeye_switch_instance` in SPECIFICATION.md
- Test suite for URL normalization (7 test cases, 100% passing)

### Changed
- Updated tool description to clarify flexible URL input formats
- Enhanced error messages with URL normalization information

---

## [1.2.0] - 2025-11-20

### Added
- **Instance Switching** - New `hawkeye_switch_instance` tool for managing multiple Hawkeye environments
  - Switch between dev/staging/production environments
  - Support for multiple customer deployments
  - Automatic authentication token clearing
  - Automatic project cache clearing
  - URL validation

### Changed
- Added `clearCache()` method to ProjectService
- Added `clearTokenCache()` method to AuthenticationService
- Updated ToolServices interface to include authService

---

## [1.1.0] - 2025-11-19

### Added
- **Search Functionality** - New `search_term` parameter for `hawkeye_list_sessions`
  - Search incidents by title using keywords (e.g., "load avg", "database", "timeout")
  - Case-insensitive partial matching
  - Works with both investigated and uninvestigated incidents
  - Can be combined with other filters

### Changed
- Updated documentation with search examples
- Enhanced USAGE.md with search use cases

---

## [1.0.2] - 2025-11-19

### Enhanced
- **Tool Descriptions** - Improved clarity to help LLMs select the correct tool
  - Added explicit "START new" vs "ALREADY STARTED" language
  - Added "Do NOT use" warnings to prevent tool confusion
  - Enhanced parameter descriptions for alert_id and session_uuid
  - Added `investigation_hint` to list_sessions response for uninvestigated incidents

### Changed
- Updated tool descriptions for `hawkeye_investigate_alert` and `hawkeye_continue_investigation`
- Added contextual hints in responses to guide proper tool usage

---

## [1.0.1] - 2025-11-19

### Added
- **Compact Mode** - Automatic token optimization for large result sets
  - Auto-enables for >10 sessions in list_sessions
  - Strips verbose fields (raw_data, detailed grouped_incidents)
  - 88.5% token reduction (from ~78KB to ~9KB for 20 sessions)
  - Keeps essential fields: id, title, priority, status, create_time
  - Manual control via `compact` parameter

### Enhanced
- Added helpful hints in responses (compact_hint, pagination_hint, investigation_hint)

---

## [1.0.0] - 2024-11-19

### Added

#### Core Features
- Initial release of Hawkeye MCP Server
- Full Model Context Protocol (MCP) implementation
- Authentication service with token caching and automatic refresh
- Project management and selection
- Session management and investigation lifecycle

#### Investigation Tools
- `hawkeye_list_projects` - List all available Hawkeye projects
- `hawkeye_investigate_alert` - Find existing RCAs or create new investigations for alert IDs
- `hawkeye_get_investigation_status` - Check investigation progress and results
- `hawkeye_continue_investigation` - Ask follow-up questions on existing investigations

#### Session Management & Analytics
- `hawkeye_list_sessions` - List sessions with advanced filtering capabilities:
  - Pagination support (page/limit parameters)
  - Date range filtering (date_from/date_to)
  - Investigation status filtering (uninvestigated, in progress, completed)
  - Session type filtering (incident vs manual)
  - Convenience parameter `only_uninvestigated` for quick filtering
  - Option to hide grouped incidents
- `hawkeye_inspect_session` - Get detailed session information with:
  - All prompt cycles
  - Chain of thoughts (analysis steps)
  - Data sources used
  - Follow-up suggestions
- `hawkeye_get_session_report` - Get session summaries with time-saved metrics
- `hawkeye_get_session_summary` - Get detailed quality scores and analysis metrics
- `hawkeye_get_incident_report` - Get organization-wide analytics:
  - MTTR (Mean Time To Resolution)
  - Total time saved
  - Noise reduction percentage
  - Incident breakdown by type and priority

#### Configuration & Environment
- Comprehensive environment variable support
- Configurable polling and timeouts
- Optional logging configuration
- Default project and organization settings

#### Documentation
- Comprehensive README with quick start guide
- Detailed INSTALLATION.md with platform-specific instructions
- Complete USAGE.md with workflows and examples
- Technical SPECIFICATION.md with API reference
- MIT License

### Changed
- Standardized all environment variables to use `HAWKEYE_` prefix (was `RAVEN_`)
- Package renamed from `raven-api-services` to `hawkeye-mcp-server`
- Updated to public npm package (was private)

### Technical Details
- Node.js >= 20.0.0 required
- Built with TypeScript for type safety
- Uses @modelcontextprotocol/sdk ^1.10.0
- HTTP client with Axios ^1.9.0
- Runtime validation with Zod ^3.24.3

### Supported Platforms
- macOS (Intel and Apple Silicon)
- Windows 10/11
- Linux (Ubuntu, Debian, Fedora, etc.)

### Supported AI Agents
- Claude Desktop (macOS, Windows)
- Cursor.ai (macOS, Windows, Linux)
- Continue.dev (VS Code extension)
- Any MCP-compatible AI agent

---

## [Unreleased]

### Planned Features
- Custom investigation creation with natural language timeframes
- Streaming support for real-time progress updates
- Interactive setup wizard (`hawkeye-mcp init`)
- Health check command (`hawkeye-mcp test-connection`)
- CLI flags (`--version`, `--help`)
- Additional filtering options (priority, incident type)
- Pre-built binaries for platforms without Node.js

---

## How to Update

### For Users

```bash
# Update to latest version
npm update -g hawkeye-mcp-server

# Or reinstall
npm install -g hawkeye-mcp-server@latest
```

### For npx Users

npx automatically uses the latest version, but you can force a cache clear:

```bash
# Clear npx cache and use latest
npx clear-npx-cache
npx hawkeye-mcp-server
```

---

## Support

For questions or issues, contact support@neubird.ai
