# NPM Sentinel MCP Server
Protocol Version: 2025-05-11
Transport: stdio
Features: resources, tools, websocket
Storage: ephemeral
## Server Configuration
- Supports WebSocket connections
- 5-minute idle timeout
- Session affinity enabled
- No persistent storage (use external databases if needed)
## Resources
npm://registry
Content-Type: application/json
Methods: GET, SUBSCRIBE
Description: NPM Registry interface for package metadata and version information
npm://security
Content-Type: application/json
Methods: GET
Description: Security analysis interface for vulnerabilities and package safety
npm://metrics
Content-Type: application/json
Methods: GET, SUBSCRIBE
Description: Package metrics interface for analytics and trends
## Tools
npmVersions
Description: Get all versions of a package with release dates
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Version history with release dates for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmLatest
Description: Get latest version information for packages
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to check"
}
}
Returns: Latest version details and changelog for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmDeps
Description: Analyze package dependencies
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Complete dependency tree analysis for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmTypes
Description: TypeScript compatibility verification
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to check"
}
}
Returns: TypeScript compatibility status for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmSize
Description: Bundle size and performance impact analysis
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Bundle size and import cost analysis for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmVulnerabilities
Description: Security vulnerability analysis
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Security advisories and severity ratings for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmTrends
Description: Download trends and adoption metrics
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
},
"period": {
"type": "string",
"enum": ["last-week", "last-month", "last-year"],
"description": "Time period for analysis"
}
}
Returns: Download statistics over the specified time period for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmCompare
Description: Compare multiple packages
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to compare"
}
}
Returns: Detailed comparison metrics across the specified packages. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmQuality
Description: Package quality metrics analysis
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Quality metrics and scores for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmMaintenance
Description: Package maintenance metrics
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Maintenance activity metrics for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmMaintainers
Description: Get package maintainers information
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to check"
}
}
Returns: Maintainer information and activity for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmScore
Description: Get package quality scores
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Comprehensive quality scores (e.g., from npms.io) for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmPackageReadme
Description: Get package README content
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to get READMEs for"
}
}
Returns: Formatted README content for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmSearch
Description: Search for NPM packages
Schema: {
"query": {
"type": "string",
"description": "Search query for packages"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return",
"minimum": 1,
"maximum": 50
}
}
Returns: Matching packages with metadata based on the search query. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmLicenseCompatibility
Description: Check license compatibility between packages
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to check"
}
}
Returns: License analysis and compatibility information for the specified packages. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmRepoStats
Description: Get repository statistics
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: GitHub/repository metrics for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmDeprecated
Description: Check for deprecation
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Deprecation status and alternatives for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmChangelogAnalysis
Description: Analyze package changelogs
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Changelog summaries and impact analysis for each package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
npmAlternatives
Description: Find package alternatives
Schema: {
"packages": {
"type": "array",
"items": { "type": "string" },
"description": "List of package names to analyze"
}
}
Returns: Similar packages with comparisons for each specified package. The response is provided within the standard MCP wrapper: {"content": [{"type": "text", "text": "<output>", "isError": boolean}]}.
## Error Format
{
"error": {
"code": number,
"message": string,
"data": {
"details": string,
"packageName": string
}
}
}
## Integration
```json
{
"mcpServers": {
"npmSentinel": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@nekzus/mcp-server"]
}
}
}
```
## Server Requirements
- No API key required for initialization
- No configuration needed for tools/list endpoint
- Handles WebSocket reconnection
- Designed for ephemeral storage
- Follows MCP specification
## Best Practices
1. Always check tool response status
2. Handle rate limits appropriately
3. Use batch operations when possible
4. Subscribe to relevant resources for real-time updates
5. Implement proper error handling
6. Cache results when appropriate
## Server Capabilities
- Real-time analysis
- Batch processing
- Resource subscription
- AI-powered insights
- TypeScript support
- Security scanning