@mseep/rijksmuseum-mcp-oaipmh
Version:
MCP server for Rijksmuseum OAI-PMH API
66 lines • 3.77 kB
JavaScript
;
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