# 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
}
}
}
## Security Note
All tools that accept package names enforce strict input validation. Inputs containing special characters, spaces, or malformed text will be rejected with an "Invalid package name format" error (Code 1000).
## 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