Web search MCP server with intelligent content extraction for AI coding tools, supporting Serper, Tavily, and SearXNG with specialized parsers for StackOverflow, GitHub, Wikipedia, and arXiv.
Web search MCP server with intelligent content extraction for AI coding tools, supporting Serper, Tavily, and SearXNG with specialized parsers for StackOverflow, GitHub, Wikipedia, and arXiv.
triggers
["search the web for","find documentation about","look up recent discussions on","get content from this URL","search StackOverflow for","find GitHub issues about","retrieve article content from","search for API documentation"]
Kindly Web Search is an MCP server that provides intelligent web search and content extraction for AI coding assistants. Unlike basic search wrappers, it returns full structured content in a single call—including StackOverflow answers, GitHub issue comments, Wikipedia articles, and arXiv papers—eliminating the need for separate scraping tools.
Key differentiator: When searching for solutions, Kindly fetches the entire conversation (questions + answers + comments) in one request, not just a title and URL snippet.
Eliminates need for:
Generic web search MCP servers
Separate StackOverflow/GitHub/Wikipedia MCP servers
Search the web and return results with full page content.
Parameters:
query (string, required): Search query
num_results (integer, optional): Number of results (default: 3, max: 10)
Returns:
title: Page title
link: URL
snippet: Brief excerpt
page_content: Full page content in Markdown (extracted intelligently based on source)
Example usage in prompt:
Search for "FastAPI async database connection pooling best practices"
What happens behind the scenes:
# The MCP server executes:
results = web_search(
query="FastAPI async database connection pooling best practices",
num_results=5
)
# Returns structured results with full content:# - StackOverflow threads include all answers and comments# - GitHub issues include full conversation threads# - Documentation pages return clean Markdown# - arXiv papers return full text content
get_content
Extract content from a specific URL.
Parameters:
url (string, required): URL to extract content from
Returns:
page_content: Full page content in Markdown
Example usage in prompt:
Get the full content from https://github.com/tiangolo/fastapi/issues/12345
What happens behind the scenes:
# The MCP server executes:
content = get_content(url="https://github.com/tiangolo/fastapi/issues/12345")
# Returns full GitHub issue with:# - Issue description# - All comments# - Reactions and metadata# - Code snippets in proper format
Specialized Content Extraction
Kindly automatically detects and optimally extracts content from:
StackOverflow / StackExchange
Returns complete Q&A threads with:
Question body with code examples
All answers (sorted by votes/acceptance)
Comments on questions and answers
Vote counts and acceptance status
GitHub Issues & Discussions
Returns full conversation threads:
Issue/discussion body
All comments chronologically
Reactions and labels
State (open/closed) and metadata
Requires GITHUB_TOKEN for best results (avoids rate limits, returns richer structure).
Wikipedia
Returns clean article content:
Main article text
Section structure preserved
Links converted to references
Tables formatted in Markdown
arXiv Papers
Returns full paper content:
Abstract
Full paper text
Mathematical equations preserved
References and citations
Generic Webpages
Uses headless browser (nodriver) to:
Handle JavaScript-heavy sites
Extract main content area
Convert to clean Markdown
Remove navigation/ads/clutter
Configuration
Search Provider Priority
Kindly checks providers in this order:
Serper (if SERPER_API_KEY set) — recommended, most reliable
Tavily (if TAVILY_API_KEY set)
SearXNG (if SEARXNG_BASE_URL set)
Environment Variables
# Search providers (set ONE)
SERPER_API_KEY= # Google Serper API key
TAVILY_API_KEY= # Tavily API key
SEARXNG_BASE_URL= # Self-hosted SearXNG instance URL# Content extraction
GITHUB_TOKEN= # GitHub personal access token (read-only)
KINDLY_BROWSER_EXECUTABLE_PATH= # Custom browser path (auto-detected)# SearXNG advanced config
SEARXNG_HEADERS_JSON= # JSON string with custom headers
SEARXNG_USER_AGENT= # Custom user agent for SearXNG
Search for the latest FastAPI dependency injection documentation and examples.
Result:
Returns official docs with:
Full API reference
Complete code examples
Best practices sections
Version-specific notes
Research Paper Content
Prompt:
Get the full content of the attention mechanism paper from arXiv.
Result:
Returns complete paper text with:
Abstract and introduction
Full methodology section
Equations and formulas
References
GitHub Issue Investigation
Prompt:
Find GitHub issues about memory leaks in Langchain streaming responses.
Result:
Returns relevant issues with:
Full issue descriptions
All community comments
Proposed solutions and workarounds
Current status and fixes
Real-World Examples
Example 1: Debugging Cloud Infrastructure
Prompt:
Search for solutions to "GCP Cloud Batch fails with GPU instance template"
What you get:
# StackOverflow Result 1## Question (Score: 15)
I am trying to run a GCP Cloud Batch job with K80 GPU...
[full question with code]
## Answer (Accepted, Score: 23)
The issue is related to GPU quota limits...
[complete solution with configuration examples]
## Comments- User123: "This also works for T4 GPUs"
- OP: "Confirmed, this fixed it. Also needed to..."
# GitHub Issue Result 2## googleapis/python-batch #145 - GPU instance template failures
[Full issue thread with 12 comments and resolution]
Example 2: Library Usage Pattern
Prompt:
Search for best practices on using SQLAlchemy async sessions with FastAPI
What you get:
Multiple results including:
Official FastAPI documentation on async DB
StackOverflow threads with production patterns
GitHub discussions with real codebases
All with complete code examples inline
Troubleshooting
"No search provider configured"
Problem: None of the search provider env vars are set.