使用说明
Research MCP Server
Part of the HeLa MCP Ecosystem — This server is HeLa Enzyme (
hela-enzyme) — the Knowledge component of the HeLa cellular architecture. See the ecosystem docs for profiles, workflows, and multi-client setup.
A Model Context Protocol (MCP) server that combines Google Custom Search, public academic/news APIs, and Wikipedia functionality for deep research and information retrieval. The server provides 24 tools, 23 resources, and 22 research prompts with full zero-key fallback out of the box — no paid API keys required.
Features
- 24 tools: Web & Academic Search (11), Wikipedia (5), and enhanced analysis (8) — 100% Zero-Key out of the box
- 23 resources: Templates, guides, and cached research data
- 22 prompts: Structured prompts covering research methodologies
- 8 analysis tools that work without requiring additional API keys
- Multi-layer LRU caching for performance optimization
- MCP client-based configuration (Cursor, Claude, etc.)
Quick Start
-
Clone and install:
git clone https://github.com/1999AZZAR/researcher-mcp.git cd researcher-mcp npm installRequires Node.js >= 20.18.1. The keyless search path statically imports
cheerio, whoseundicidependency needs the globalFilethat landed in Node 20 — on Node 18 the server fails at import, not just in tests. -
Configure environment (optional):
export GOOGLE_API_KEY="your_google_api_key" export GOOGLE_CSE_ID="your_search_engine_id" -
Configure MCP client (Cursor): Add to your
.cursor/mcp.json:{ "mcpServers": { "researcher-mcp": { "command": "npx", "args": ["ts-node", "--esm", "index.ts"], "env": { "GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}", "GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}" } } } } -
The server will be available in your MCP client with 24 tools, 23 resources, and 22 prompts (zero keys required).
Origins
This project is a combined and enhanced version of:
- Google-Search-MCP - Original Google Custom Search MCP server
- wikipedia-mcp-server - Original Wikipedia MCP server
The researcher-mcp builds upon these foundations, adding enhanced analysis tools, improved caching, unified configuration, and a comprehensive prompt library while maintaining compatibility with the original MCP specifications.
Table of Contents
- Features
- Installation
- Configuration
- Usage
- Available Capabilities
- Architecture
- Caching Strategy
- Error Handling
- Development
- License
- Contributing
- Support
Features
Enhanced Analysis Tools (8 tools - No API Keys Required)
Built-in analysis capabilities that work without external dependencies:
content_sentiment_analysis- Analyze sentiment of text contentkeyword_extraction- Extract key terms and topics from text contenturl_metadata_extractor- Extract metadata from URLs including title, description, and basic infocitation_formatter- Format citations in APA, MLA, or Chicago styleresearch_session_manager- Manage research sessions, save findings, and organize notescontent_deduplication- Remove duplicate content from search results and consolidate similar itemsarchive_org_search- Search archived web pages on Archive.org (Wayback Machine)data_export- Export research data in various formats (JSON, CSV, Markdown)
Web & Academic Search Tools (11 tools — Zero-Key Out of the Box)
Web search, academic discovery, news monitoring, and intelligence capabilities with automatic zero-key fallback:
google_search- Search the web with Google Custom Search or automatic keyless multi-engine fallback (DuckDuckGo, Bing, etc.)extract_content- Extract clean content from web pages with automatic Jina Reader fallback for SPAs/anti-bot sitessearch_analytics- Analyze search trends and domain distribution across multiple queriesmulti_site_search- Search across multiple specific domains simultaneouslynews_monitor- Live news monitor using Google News public RSS feeds (zero keys required)academic_search- Search academic papers and preprints via arXiv OpenSearch API (zero keys required)content_summarizer- Multi-URL content extractor and summarizer with Jina reader fallbackfact_checker- Verify claims by searching and cross-referencing verification sourcesresearch_assistant- Comprehensive multi-angle research assistantsearch_trends- Track search and community interest trends with Hacker News Algolia integrationresearch_brief- Fast multi-source brief: parallel Google/web + Wikipedia fan-out, cross-source dedup, exact-match ranking
Wikipedia Tools (5 tools)
Wikipedia integration for encyclopedic knowledge access:
wikipedia_search- Search byquery, batchqueries, orcoord({lat, lon}plusradius)wikipedia_get- Get bytitle,pageId, or batchtitles;format: summary | fullwikipedia_random- Get a random Wikipedia pagewikipedia_page_languages- Get the languages a Wikipedia page is available inwikipedia_get_pages_in_category- Browse pages within a specific Wikipedia category
Legacy names (wikipedia_get_page, wikipedia_get_page_by_id, wikipedia_get_summary, wikipedia_batch_get_pages, wikipedia_batch_search, wikipedia_search_nearby) remain accepted as aliases but are no longer advertised.
Research Resources (23 resources)
Collection of research templates, guides, and cached data:
Templates & Guides (5 resources):
research://templates/literature-review- Structured template for conducting literature reviewsresearch://templates/research-proposal- Comprehensive research proposal frameworkresearch://guides/methodology/{type}- Guides for different research methodologiesresearch://citations/styles/{style}- Citation style guides (APA, MLA, Chicago)writing://templates/academic-paper- Standard academic paper structure template
Writing Resources (3 resources):
writing://guides/academic-writing- Comprehensive guide to academic writing principleswriting://checklists/peer-review- Checklist for preparing manuscripts for peer review
Data Analysis Resources (4 resources):
analysis://guides/statistical-methods- Guide to common statistical analysis methodsanalysis://templates/data-analysis- Framework for structuring data analysis reportsanalysis://visualization/types/{chart_type}- Guides for different types of data visualizations
Cached Research Data (11 resources):
google://search/{query}- Cached Google search resultsgoogle://trends/{topic}- Search trends and analytics dataweb://content/{url}- Cached web content extraction resultswiki://search/{query}- Cached Wikipedia search resultswiki://page/{title}- Cached Wikipedia page contentanalysis://sentiment/{text}- Cached sentiment analysis resultsanalysis://keywords/{text}- Cached keyword extraction resultsanalysis://url-metadata/{url}- Cached URL metadataresearch://sessions/{name}- Saved research sessions and findingsarchive://snapshots/{url}- Cached archived web pages
Research Prompts (22 prompts)
Prompt library covering research methodologies:
Planning & Design (10 prompts):
literature-review-planning- Comprehensive literature review planning with search strategyresearch-question-development- Develop clear, focused research questions with operational definitionsacademic-paper-outline- Create detailed academic paper outline with section structuredata-analysis-planning- Plan data analysis approach with appropriate statistical methodsmethodology-selection- Guide methodology selection based on research questions and constraintssystematic-review-protocol- Develop a comprehensive systematic review protocolmeta-analysis-planning- Plan a meta-analysis with statistical and methodological considerationsqualitative-coding-framework- Develop a qualitative coding framework for thematic analysisgrant-proposal-writing- Structure and write a compelling grant proposalresearch-networking-strategy- Develop a strategy for building research networks and collaborations
Analysis & Methods (12 prompts):
statistical-test-selection- Select appropriate statistical tests based on data characteristicsresults-interpretation- Interpret statistical results with practical significancepeer-review-preparation- Prepare manuscript for peer review with comprehensive checklistcitation-management- Manage citations and references with style guide complianceethics-review-preparation- Prepare for ethics review with comprehensive ethical considerationsresearch-rigor-assessment- Assess research rigor with validity, reliability, and quality criteriajournal-selection-strategy- Develop journal selection strategy based on research topic and goalsmanuscript-revision-planning- Plan manuscript revisions based on reviewer feedbackcollaboration-planning- Plan research collaboration with roles, responsibilities, and protocolsresearch-presentation-planning- Plan research presentations with audience analysis and delivery strategiesimpact-assessment-planning- Plan research impact assessment with metrics and evaluation frameworksresearch-dissemination-strategy- Develop research dissemination strategy across multiple channels
Installation
This MCP server is designed to be used through MCP clients. Install and configure it through your MCP client (Cursor, Claude, etc.) as shown in the Configuration section below.
For local development:
npm install
Configuration
Configure the Research MCP Server in your MCP client (Cursor, Claude, etc.) instead of using .env files. MCP servers receive configuration through environment variables passed by the client.
Cursor Configuration
Create a .cursor/mcp.json file in your project or ~/.cursor/mcp.json in your home directory:
For Development (recommended):
{
"mcpServers": {
"researcher-mcp": {
"command": "npx",
"args": ["ts-node", "--esm", "${workspaceFolder}/researcher-mcp/index.ts"],
"env": {
"GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}",
"GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}",
"WIKIPEDIA_CACHE_MAX": "100",
"WIKIPEDIA_CACHE_TTL": "300000",
"WIKIPEDIA_DEFAULT_LANGUAGE": "en"
}
}
}
}
For Production (after building):
{
"mcpServers": {
"researcher-mcp": {
"command": "node",
"args": ["${workspaceFolder}/researcher-mcp/dist/research-server.js"],
"env": {
"GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}",
"GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}",
"WIKIPEDIA_CACHE_MAX": "100",
"WIKIPEDIA_CACHE_TTL": "300000",
"WIKIPEDIA_DEFAULT_LANGUAGE": "en"
}
}
}
}
For global configuration (~/.cursor/mcp.json), replace ${workspaceFolder} with the full path to your researcher-mcp directory.
Note: After building with npm run build, the server will be available at dist/index.js for production use. The build also compiles the modular tree (src/, 10 Wikipedia tools + 6 Google tools with Sources footers and flag-gated HeLa envelopes), runnable as node dist/src/index.js — Google tools are skipped when GOOGLE_API_KEY/GOOGLE_CSE_ID are unset.
Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
GOOGLE_API_KEY |
Google Custom Search API Key | - | Optional* |
GOOGLE_CSE_ID |
Google Custom Search Engine ID | - | Optional* |
WIKIPEDIA_CACHE_MAX |
Maximum Wikipedia cache entries | 100 |
No |
WIKIPEDIA_CACHE_TTL |
Wikipedia cache TTL (ms) | 300000 |
No |
WIKIPEDIA_DEFAULT_LANGUAGE |
Default Wikipedia language | en |
No |
SERVER_NAME |
Server name for identification | hela-enzyme |
No |
RESEARCHER_GOOGLE_CACHE_TTL_MS |
Google cache TTL (ms) | 1800000 |
No |
RESEARCHER_DEFAULT_LANG |
Default Wikipedia language (overrides WIKIPEDIA_DEFAULT_LANGUAGE) |
en |
No |
RESEARCHER_USER_AGENT |
HTTP User-Agent for fetches | hela-enzyme/1.0 (researcher-mcp; …) |
No |
JINA_API_KEY |
Jina reader quota key (anonymous works, rate-limited) | - | No |
HELA_ENVELOPE |
Set to true to wrap tool results in the canonical HeLaResult envelope (ok/summary/data/artifacts/provenance/warnings/sideEffects/execution) |
unset = off (byte-identical legacy output) | No |
Wikipedia search/getPage/getPageSummary results carry a Sources: footer (canonical page URI, retrieved_at, confidence, freshness) so downstream consumers can cite provenance.
Zero-Key Out of the Box (No API Keys Required). All 24 tools function completely free without requiring GOOGLE_API_KEY or GOOGLE_CSE_ID:
- Dual-Tier Web Search: If Google API keys are unset or exhaust daily quotas, the server transparently falls back to parallel keyless search (DuckDuckGo + Bing + Mojeek + Yep) with secondary Wikipedia encyclopedic fallback.
- Native Academic Search:
academic_searchqueries arXiv's public OpenSearch API (export.arxiv.org), extracting paper titles, authors, summaries, arXiv links, and primary categories. - Live News Monitor:
news_monitorqueries Google News public RSS feeds (news.google.com/rss/search), delivering real-time headlines, source publishers, and timestamps. - Community & Tech Trends:
search_trendsqueries Hacker News Algolia search API in real-time alongside web queries, tracking community upvote points and comment velocity. - Resilient Content Extraction:
extract_contentandcontent_summarizerfall back to Jina Reader (r.jina.ai/{url}) when direct page scraping fails due to anti-bot protection or empty JavaScript SPA shells. - Cached Search Resource:
google://search/{query}serves cached search results or executes keyless search without throwing configuration errors.
Google API Setup
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Custom Search API
- Create credentials (API Key)
- Create a Custom Search Engine at https://cse.google.com/
- Get your Search Engine ID
Usage
The Research MCP Server is designed to be used through MCP clients like Cursor, Claude, or other MCP-compatible applications. Configure it in your MCP client configuration as shown above.
Local Development
For development and testing, you can run the server directly:
# Set environment variables (optional)
export GOOGLE_API_KEY=your_api_key
export GOOGLE_CSE_ID=your_search_engine_id
# Run in development mode
npm run dev
Production Deployment
Build and deploy through your MCP client's configuration system:
npm run build
Then configure in your MCP client using the production configuration above.
Available Tools (29 total)
The server provides the following 29 comprehensive research tools (all available zero-key out of the box):
Enhanced Analysis Tools (8 total - No API Keys Required)
content_sentiment_analysis- Analyze sentiment of text content using built-in sentiment analysiskeyword_extraction- Extract key terms and topics from text contenturl_metadata_extractor- Extract metadata from URLs including title, description, and basic infocitation_formatter- Format citations in APA, MLA, or Chicago styleresearch_session_manager- Manage research sessions, save findings, and organize notescontent_deduplication- Remove duplicate content from search results and consolidate similar itemsarchive_org_search- Search archived web pages on Archive.org (Wayback Machine)data_export- Export research data in various formats (JSON, CSV, Markdown)
Web & Academic Search Tools (11 total - Dual-Tier & Zero-Key Fallback)
google_search- Search the web with Google Custom Search API or keyless parallel fallbackextract_content- Extract main content from web pages (with automatic Jina Reader fallback)search_analytics- Analyze search trends and get domain distribution insightsmulti_site_search- Search across multiple specific websites simultaneouslynews_monitor- Real-time news monitor via Google News public RSS feedsacademic_search- Search academic papers via arXiv OpenSearch APIcontent_summarizer- Summarize content from multiple URLs with Jina reader fallbackfact_checker- Verify claims by searching and cross-referencing verification sourcesresearch_assistant- Comprehensive research assistant with multi-query analysissearch_trends- Track search interest trends and Hacker News community metricsresearch_brief- One-call brief: parallel Google/web + Wikipedia fan-out, cross-source dedup, exact-match ranking
Wikipedia Tools (5 tools)
wikipedia_search- Search byquery, batchqueries, orcoord({lat, lon}plusradius)wikipedia_get- Get bytitle,pageId, or batchtitles;format: summary | fullwikipedia_random- Get a random Wikipedia pagewikipedia_page_languages- Get the languages a Wikipedia page is available inwikipedia_get_pages_in_category- Browse pages within a specific Wikipedia category
Architecture
The Research MCP Server is built with a modular, professional architecture designed for research workflows:
Core Components
ResearchMCPServer- Main MCP server class implementing the Model Context ProtocolGoogleSearchService- Handles Google Custom Search API interactions with cachingWikipediaService- Manages Wikipedia API calls with configurable caching and batch operationsAnalysisEngine- Built-in text analysis engine for sentiment, keywords, and content processingResearchSessionManager- In-memory session storage for organizing research findingsPromptLibrary- Collection of 22 structured prompts covering research methodologies
Key Features
- MCP Protocol compliance with tools, resources, and prompts
- Environment-based configuration system compatible with MCP clients
- Multi-layer LRU caching for performance
- Graceful degradation and error handling
- Modular design with clean separation of concerns
Technology Stack
- Runtime: Node.js ≥20.18.1 with ES modules
- Language: TypeScript for type safety
- HTTP Client: Axios with retry logic for reliable API interactions
- Web Scraping: Cheerio for HTML content extraction and parsing
- Caching: LRU Cache for memory-efficient data storage
- Analysis: Built-in sentiment analysis and text processing libraries
Caching Strategy
The server implements a sophisticated multi-layer caching strategy optimized for research workflows:
Cache Layers:
-
Google Search Cache: LRU cache (500 entries, 30-minute TTL)
- Caches search results to minimize API calls
- Reduces latency for repeated queries
- Automatic invalidation for failed requests
-
Wikipedia Cache: Configurable LRU cache (default: 100 entries, 5-minute TTL)
- Separate cache for encyclopedia content
- Batch operation support for efficiency
- Language-specific caching for multilingual support
-
Analysis Results Cache: Persistent caching for computational results
- Sentiment analysis, keyword extraction, URL metadata
- Reduces processing overhead for repeated analyses
- Memory-efficient storage of processed content
Cache Management
- Automatic invalidation: Failed requests don't populate cache
- TTL management: Configurable time-to-live for different data types
- Memory optimization: Separate caches prevent cross-contamination
- Performance monitoring: Cache hit/miss ratios for optimization
Error Handling
The Research MCP Server implements error handling strategies to ensure reliable operation:
Resilience Features
-
Graceful degradation: Server continues to function when individual services are unavailable
- Google Search can be disabled while Wikipedia functionality remains active
- Analysis tools work independently of external APIs
- Prompts are always available regardless of service status
-
Retry logic: Automatic retry mechanisms for transient failures
- Exponential backoff for API rate limits
- Configurable retry attempts and timeouts
-
Error messages: Detailed error reporting
- Clear indication of which service failed
- Suggestions for resolution when possible
Fallback Strategies
- Service-level fallbacks: Alternative approaches when primary services fail
- Cache-first responses: Serve cached results when live queries fail
- Partial success handling: Return available data even when some operations fail
Development
Prerequisites
- Node.js ≥20.18.1
- npm or yarn package manager
- TypeScript compiler
- Google Custom Search API (optional)
Local Development Setup
# Clone the repository
git clone https://github.com/your-repo/researcher-mcp.git
cd researcher-mcp
# Install dependencies
npm install
# Configure environment (optional)
cp .env.example .env
# Edit .env with your API keys
# Run in development mode
npm run dev
Available Scripts
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build production-ready TypeScript compilation |
npm run start |
Run production server from built files |
npm test |
Run test suite (when implemented) |
npm run lint |
Run ESLint for code quality checks |
npm run clean |
Remove build artifacts and caches |
Code Quality
- TypeScript: Strict type checking enabled
- ESLint: Configured for code consistency
- Prettier: Code formatting standards (recommended)
- Husky: Pre-commit hooks for quality assurance
Testing Strategy
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run specific test file
npm test -- path/to/test/file
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes with proper TypeScript types
- Add tests for new functionality
- Ensure all tests pass:
npm test - Run linting:
npm run lint - Commit with conventional commit messages
- Push to your branch and create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
We welcome contributions to the Research MCP Server. Please see our Contributing Guide for detailed information.
Quick Contribution Guidelines
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Develop with TypeScript best practices
- Test thoroughly - ensure all existing functionality works
- Document new features in the README and code comments
- Submit a Pull Request with a clear description
Development Standards
- TypeScript: Strict typing required for all new code
- Error handling: Comprehensive error handling and user-friendly messages
- Documentation: Clear code comments and README updates
- Testing: Unit tests for new functionality (when implemented)
- Performance: Consider caching and optimization for new features
Support
Getting Help
- Documentation: Check this README and inline code documentation
- Bug reports: Create an issue on GitHub
- Feature requests: Use GitHub issues to suggest new capabilities
- Discussions: Join community discussions for best practices
Common Issues
- Server won't start: Check Node.js version (≥18.0.0) and environment variables
- API errors: Verify Google API keys and network connectivity
- Performance issues: Check cache configuration and available memory
- MCP client issues: Ensure proper
.cursor/mcp.jsonconfiguration
Community Resources
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For questions and community support
- Documentation: Comprehensive guides and API references
