ask-qwksearch-mcp-server

Exposes QwkSearch web search, page extraction, and JavaScript rendering as MCP tools over stdio.

74|11|Updated Jul 4, 2024
One-click install
npx skills add https://github.com/OpenSourceAGI/qwksearch-research-agent --skill ask-qwksearch-mcp-server-opensourceagi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ask-qwksearch-mcp-server
Source: https://github.com/OpenSourceAGI/qwksearch-research-agent/tree/main/skills/ask-qwksearch-mcp-server
Command: npx skills add https://github.com/OpenSourceAGI/qwksearch-research-agent --skill ask-qwksearch-mcp-server-opensourceagi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @modelcontextprotocol/sdk, zod.

What problem does it solve? It lets any MCP client such as Claude Desktop or Claude Code call QwkSearch capabilities—web search, webpage/PDF/YouTube content extraction, and JavaScript page rendering—through a stdio MCP server without writing integration code. ## Core Features & Use Cases - Three MCP tools: web_search (12 search categories backed by 71 engines), extract_page (pages, PDFs, YouTube), and render_page_with_javascript (via a remote scraper worker). - Guided development: Recipes for adding new tools with zod input schemas, the shared lazily-created Search instance, and the isError error convention that keeps the stdio session alive. - Troubleshooting table: Covers SCRAPER_API_KEY misconfiguration, node-vs-bun runtime issues, empty search categories, and stdout protocol corruption. - Use Case: Register the server in claude_desktop_config.json with bunx qwksearch-mcp and immediately ask Claude to search the web or extract an article's content. ## Quick Start Register the qwksearch-mcp-server in my MCP client configuration with bunx and the SCRAPER_API_KEY environment variable so I can use its web search tool.

Frequently Asked Questions about ask-qwksearch-mcp-server

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new tool to an MCP server?

Create a file in src/tools exporting a register function that calls server.registerTool with a description, zod inputSchema, and handler, then import it in src/index.ts. Return isError content instead of throwing, since a thrown error kills the stdio session.

How do I register an MCP server with Claude Desktop?

Add an entry to claude_desktop_config.json under mcpServers with command bunx and args qwksearch-mcp, plus an env block for SCRAPER_URL and SCRAPER_API_KEY. The client must use bun, not node, because the entry point is TypeScript.

Why does render_page_with_javascript report it is unavailable?

The tool refuses unauthenticated calls when SCRAPER_API_KEY is not set. Define it in the MCP client's env block rather than only in your shell, and ensure it matches the worker's SCRAPER_API_KEY binding to avoid 401 responses.

Why does the MCP server exit immediately when launched by a client?

The client is running node against a TypeScript entry file. The server has no build step or dist output, so it must be executed with bun or bunx, which run TypeScript directly.

Why does web_search return no results for a valid query?

The category parameter maps to engine groups, and some enum values like science or files have no engines registered under them. Retry with general or academic, which have registered engines.

Can I get structured JSON from the MCP tools instead of text?

No, all three tools return a single pre-formatted text block by design. If you need structured objects, import the underlying search-web-api or extract-webpage packages directly instead of going through the MCP layer.