paper-search-mcp-nodejs
Version:
A Node.js MCP server for searching and downloading academic papers from multiple sources, including arXiv, PubMed, bioRxiv, Web of Science, and more.
53 lines • 1.91 kB
TypeScript
/**
* Springer Nature Searcher
*
* Documentation: https://dev.springernature.com/
* API Endpoints:
* - Metadata API v2: https://api.springernature.com/meta/v2/json
* - OpenAccess API: https://api.springernature.com/openaccess/json (if available with your key)
*
* Required API Key: Yes (api_key parameter)
* Get API key from: https://dev.springernature.com/signup
*
* Note: Meta API v2 is the primary API. OpenAccess API may require special access.
*/
import { PaperSource, SearchOptions, DownloadOptions, PlatformCapabilities } from './PaperSource.js';
import { Paper } from '../models/Paper.js';
export declare class SpringerSearcher extends PaperSource {
private metadataClient;
private openAccessClient;
private rateLimiter;
private hasOpenAccessAPI;
private openAccessApiKey?;
private testingPromise;
constructor(apiKey?: string, openAccessApiKey?: string);
search(query: string, options?: SearchOptions): Promise<Paper[]>;
private parseResult;
downloadPdf(doi: string, options?: {
savePath?: string;
}): Promise<string>;
getCapabilities(): PlatformCapabilities;
/**
* 获取引用此论文的文献列表(通过Crossref/OpenCitations)
*/
getCitations(doi: string): Promise<Paper[]>;
/**
* 获取论文的参考文献列表(通过Crossref)
*/
getReferences(doi: string): Promise<Paper[]>;
/**
* 清理和转义查询参数中的特殊字符
*/
private sanitizeQueryValue;
/**
* Test if OpenAccess API is available for this API key
* Uses promise caching to prevent race conditions with concurrent requests
*/
private testOpenAccessAPI;
/**
* Perform the actual OpenAccess API test
*/
private performOpenAccessTest;
readPaper(paperId: string, options?: DownloadOptions): Promise<string>;
}
//# sourceMappingURL=SpringerSearcher.d.ts.map