@br1j/windsweeper-sdk
v0.1.0
Published
Node.js SDK for Windsweeper MCP
Readme
Windsweeper SDK for Node.js
This package provides a client for interacting with the Windsweeper MCP (Model Control Protocol) server. It allows you to validate rules and code, apply templates, generate content, and manage resources.
Installation
npm install windsweeper-sdkQuick Start
import { createClient } from 'windsweeper-sdk';
// Create a client
const client = createClient({
serverUrl: 'http://localhost:9001',
apiKey: 'your-api-key' // Optional
});
// Check server health
const isHealthy = await client.checkHealth();
console.log(`Server is ${isHealthy ? 'healthy' : 'unhealthy'}`);
// List resources
const resources = await client.listResources('my-server');
console.log(`Found ${resources.resources.length} resources`);
// Validate a rule
const validationResult = await client.validateRule('your-rule-content');
if (validationResult.valid) {
console.log('Rule is valid!');
} else {
console.log('Rule validation failed:', validationResult.issues);
}API Reference
createClient(options)
Creates a new Windsweeper client instance.
Parameters:
options- Configuration optionsserverUrl- URL of the Windsweeper MCP serverapiKey- Optional API key for authenticationtimeout- Request timeout in milliseconds (default: 30000)
Returns: A configured WindsweeperClient instance
Client Methods
checkHealth()
Checks if the server is healthy.
Returns: Promise<boolean> - True if the server is healthy
listResources(serverName, cursor?)
Lists resources from the MCP server.
Parameters:
serverName- Name of the server to list resources fromcursor- Optional pagination cursor
Returns: Promise<{ resources: Resource[]; nextCursor?: string }> - List of resources and optional next page cursor
getResource<T>(serverName, resourceId)
Gets a specific resource from the MCP server.
Parameters:
serverName- Name of the server to get the resource fromresourceId- ID of the resource to get
Returns: Promise<T> - The requested resource
validateRule(content, options?)
Validates a rule definition.
Parameters:
content- Rule content to validateoptions- Additional validation optionslanguageId- Language of the rule content (default: 'yaml')uri- Optional URI of the rule
Returns: Promise<ValidationResult> - Validation result
validateCode(code, ruleIds, languageId)
Validates code against multiple rules.
Parameters:
code- Code to validateruleIds- IDs of rules to validate againstlanguageId- Language of the code
Returns: Promise<Record<string, ValidationResult>> - Map of rule IDs to validation results
applyTemplate(templateId, variables)
Applies a template.
Parameters:
templateId- ID of the template to applyvariables- Variables to use in the template
Returns: Promise<string> - Generated content
generate(prompt, options?)
Generates content.
Parameters:
prompt- Prompt to generate fromoptions- Generation optionsmode- Generation modeformat- Output formattemperature- Temperature for generationmaxTokens- Maximum tokens to generateincludeSources- Whether to include sources in the response
Returns: Promise<string> - Generated content
Types
The following TypeScript interfaces are exported:
ValidationIssue- Issue found during validationValidationResult- Result of a validation operationResource- A resource from the MCP serverGenerateOptions- Options for generation requestsWindsweeperClientOptions- Options for creating a client
Development
Building
npm run buildTesting
npm testLicense
MIT
