Skip to main content
Glama
ezhou89

Medical Research MCP Suite

by ezhou89
debug-pubmed-xml.js2.19 kB
#!/usr/bin/env node // Test with XML parsing since JSON is not supported for efetch import axios from 'axios'; async function debugPubMedXML() { console.log('🔍 Testing PubMed with XML parsing...'); const baseURL = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils'; try { // Step 1: Get PMIDs console.log('\n📡 Getting PMIDs...'); const searchParams = new URLSearchParams(); searchParams.append('term', 'diabetes'); searchParams.append('db', 'pubmed'); searchParams.append('retmode', 'json'); searchParams.append('retmax', '2'); const searchResponse = await axios.get(`${baseURL}/esearch.fcgi`, { params: searchParams, }); const pmids = searchResponse.data.esearchresult.idlist; console.log('PMIDs:', pmids); // Step 2: Get XML data (default retmode for efetch) console.log('\n📚 Fetching XML data...'); const fetchParams = new URLSearchParams(); fetchParams.append('db', 'pubmed'); fetchParams.append('id', pmids.join(',')); fetchParams.append('rettype', 'abstract'); // Don't specify retmode - let it default to XML const fetchResponse = await axios.get(`${baseURL}/efetch.fcgi`, { params: fetchParams, }); console.log('Response type:', typeof fetchResponse.data); console.log('Sample XML (first 500 chars):'); console.log(fetchResponse.data.substring(0, 500)); // Check for key XML elements const hasArticleTitle = fetchResponse.data.includes('<ArticleTitle>'); const hasAbstract = fetchResponse.data.includes('<AbstractText>'); const hasPMID = fetchResponse.data.includes('<PMID'); console.log('\n🔍 XML Structure Check:'); console.log('Has ArticleTitle:', hasArticleTitle); console.log('Has AbstractText:', hasAbstract); console.log('Has PMID:', hasPMID); // Try to extract one title as a test const titleMatch = fetchResponse.data.match(/<ArticleTitle>(.*?)<\/ArticleTitle>/); if (titleMatch) { console.log('\n📄 Sample title:', titleMatch[1]); } } catch (error) { console.error('❌ Error:', error.message); } } debugPubMedXML().catch(console.error);

Latest Blog Posts

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/ezhou89/medical-research-mcp-suite'

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