Skip to main content
Glama

MCP Test Server

by dannyhertz
index.js2.41 kB
#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import { ListResourcesRequestSchema, ReadResourceRequestSchema } from '@modelcontextprotocol/sdk/types.js'; import express from 'express'; import cors from 'cors'; const PORT = process.env.PORT || 3000; // Create Express app const app = express(); app.use(cors()); // Create MCP server const mcpServer = new Server( { name: 'test-image-server', version: '1.0.0' }, { capabilities: { resources: {} } } ); // List resources handler mcpServer.setRequestHandler(ListResourcesRequestSchema, async () => { console.error('Listing resources'); return { resources: [ { uri: 'image://test-png', name: 'Test PNG Image', description: 'A small test PNG image', mimeType: 'image/png' }, { uri: 'csv://test-data', name: 'Test CSV Data', description: 'Sample CSV data', mimeType: 'text/csv' } ] }; }); // Read resource handler mcpServer.setRequestHandler(ReadResourceRequestSchema, async (request) => { console.error('Reading resource:', request.params.uri); const { uri } = request.params; if (uri === 'image://test-png') { // Red 1x1 pixel PNG return { contents: [{ uri: 'image://test-png', mimeType: 'image/png', blob: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==' }] }; } if (uri === 'csv://test-data') { return { contents: [{ uri: 'csv://test-data', mimeType: 'text/csv', text: 'id,name,value\n1,Item A,100\n2,Item B,200\n3,Item C,300' }] }; } throw new Error(`Resource not found: ${uri}`); }); // Health check app.get('/health', (req, res) => { res.json({ status: 'ok' }); }); // Home page app.get('/', (req, res) => { res.send('MCP Test Server - SSE endpoint at /sse'); }); // SSE endpoint app.get('/sse', async (req, res) => { console.error('SSE connection established'); const transport = new SSEServerTransport('/sse', res); await mcpServer.connect(transport); }); // Start server app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); console.log(`SSE endpoint: http://localhost:${PORT}/sse`); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dannyhertz/mcp-test-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server