README.md•2.36 kB
# @columbia-mcp/shared-config
Shared configuration and utilities for Columbia MCP Servers.
## Redis Configuration
This package provides standardized Redis configuration and utilities used across MCP servers.
### Installation
```bash
npm install @columbia-mcp/shared-config
```
### Usage
```typescript
import { createRedisOptions, RedisConfig, RedisError } from '@columbia-mcp/shared-config';
import Redis from 'ioredis';
// Create Redis configuration
const config: RedisConfig = {
host: 'localhost',
port: 6379,
password: 'optional-password',
db: 0,
keyPrefix: 'app:',
tls: {
// Optional TLS configuration
rejectUnauthorized: false
}
};
// Create Redis client with configuration
const redis = new Redis(createRedisOptions(config));
// Handle Redis errors
redis.on('error', (error) => {
throw new RedisError('Redis connection failed', 'CONNECTION_FAILED');
});
```
### Lock Management
The package includes utilities for distributed locking:
```typescript
import { DEFAULT_LOCK_OPTIONS, LockOptions } from '@columbia-mcp/shared-config';
const lockOptions: LockOptions = {
ttl: 30000, // Lock timeout in milliseconds
retryDelay: 100, // Delay between retry attempts
maxRetries: 10 // Maximum number of retry attempts
};
```
### Error Handling
```typescript
import { RedisError, RedisErrorCodes } from '@columbia-mcp/shared-config';
try {
// Redis operations
} catch (error) {
if (error instanceof RedisError) {
switch (error.code) {
case RedisErrorCodes.CONNECTION_FAILED:
// Handle connection failure
break;
case RedisErrorCodes.OPERATION_FAILED:
// Handle operation failure
break;
// ... handle other error codes
}
}
}
```
## Development
### Setup
```bash
# Install dependencies
npm install
# Build the package
npm run build
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint code
npm run lint
```
### Testing
The package includes comprehensive tests for all utilities. Run tests with:
```bash
npm test
```
### Contributing
1. Follow the TypeScript coding style
2. Add tests for any new features
3. Update documentation as needed
4. Run tests before submitting changes
## License
Private - Columbia MCP Servers