digital-samba-mcp-server
Version:
Digital Samba MCP Server - Model Context Protocol server for Digital Samba's video conferencing API
52 lines (43 loc) • 1.71 kB
JavaScript
// This is a standalone stdio server that properly handles API keys
// It's used when running in stdio mode (for Claude Desktop)
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
// Import the main server components
import('../dist/src/index.js').then(async (mainModule) => {
// Get API key from environment
const apiKey = process.env.DIGITAL_SAMBA_API_KEY;
if (!apiKey) {
console.error('[ERROR] No API key provided. Set DIGITAL_SAMBA_API_KEY environment variable.');
process.exit(1);
}
console.error('[INFO] Starting Digital Samba MCP Server in stdio mode...');
console.error('[DEBUG] API key found:', apiKey.substring(0, 10) + '...');
// Create server with API key
const serverConfig = mainModule.createServer({
apiKey: apiKey,
apiUrl: process.env.DIGITAL_SAMBA_API_URL || 'https://api.digitalsamba.com/api/v1',
enableCache: true,
enableSilentMode: true,
logLevel: process.env.LOG_LEVEL || 'info'
});
const { server } = serverConfig;
console.error('[INFO] Server created with',
server._resources?.size || 0, 'resources and',
server._tools?.size || 0, 'tools'
);
// Create stdio transport
const transport = new StdioServerTransport();
// Connect server
try {
await server.connect(transport);
console.error('[INFO] Server connected successfully via stdio');
} catch (error) {
console.error('[ERROR] Failed to connect:', error);
process.exit(1);
}
}).catch(error => {
console.error('[ERROR] Failed to load server module:', error);
process.exit(1);
});