UNPKG

@mseep/rijksmuseum-mcp-oaipmh

Version:

MCP server for Rijksmuseum OAI-PMH API

66 lines 3.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = __importDefault(require("axios")); const MCP_SERVER_URL = 'http://localhost:3000'; /** * Test client for our Rijksmuseum OAI-PMH MCP server */ async function testMcpServer() { console.log('-------- Testing Rijksmuseum OAI-PMH MCP Server --------'); try { // Step 1: Check server info console.log('\nStep 1: Checking server info...'); const infoResponse = await axios_1.default.get(MCP_SERVER_URL); console.log(`Server name: ${infoResponse.data.name}`); console.log(`Description: ${infoResponse.data.description}`); console.log(`Available tools: ${infoResponse.data.tools.map(t => t.name).join(', ')}`); // Step 2: Call Identify console.log('\nStep 2: Testing rijksmuseum_identify tool...'); const identifyResponse = await axios_1.default.post(`${MCP_SERVER_URL}/tools/rijksmuseum_identify`, {}); console.log('Identify response:', JSON.stringify(identifyResponse.data).substring(0, 300) + '...'); // Step 3: Call ListMetadataFormats console.log('\nStep 3: Testing rijksmuseum_list_metadata_formats tool...'); const metadataFormatsResponse = await axios_1.default.post(`${MCP_SERVER_URL}/tools/rijksmuseum_list_metadata_formats`, {}); console.log('ListMetadataFormats response:', JSON.stringify(metadataFormatsResponse.data).substring(0, 300) + '...'); // Step 4: Call ListSets console.log('\nStep 4: Testing rijksmuseum_list_sets tool...'); const listSetsResponse = await axios_1.default.post(`${MCP_SERVER_URL}/tools/rijksmuseum_list_sets`, {}); console.log('ListSets response:', JSON.stringify(listSetsResponse.data).substring(0, 300) + '...'); // Step 5: Call ListRecords console.log('\nStep 5: Testing rijksmuseum_list_records tool...'); const listRecordsResponse = await axios_1.default.post(`${MCP_SERVER_URL}/tools/rijksmuseum_list_records`, { metadataPrefix: 'oai_dc' }); console.log('ListRecords response:', JSON.stringify(listRecordsResponse.data).substring(0, 300) + '...'); // Attempt to extract an identifier from the response for GetRecord let identifier = ''; const data = listRecordsResponse.data; if (typeof data === 'string' && data.includes('<identifier>')) { const match = data.match(/<identifier>([^<]+)<\/identifier>/); if (match && match[1]) { identifier = match[1]; console.log(`Found identifier: ${identifier}`); // Step 6: Call GetRecord with the found identifier console.log('\nStep 6: Testing rijksmuseum_get_record tool...'); const getRecordResponse = await axios_1.default.post(`${MCP_SERVER_URL}/tools/rijksmuseum_get_record`, { identifier, metadataPrefix: 'oai_dc' }); console.log('GetRecord response:', JSON.stringify(getRecordResponse.data).substring(0, 300) + '...'); } } console.log('\n-------- Testing Complete --------'); console.log('All tests were successful!'); } catch (error) { console.error('Error testing MCP server:', error); if (axios_1.default.isAxiosError(error) && error.response) { console.error('Response error data:', error.response.data); console.error('Response status:', error.response.status); } } } // Run the test testMcpServer().catch(console.error); //# sourceMappingURL=mcp-test-client.js.map