Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for fetching web resources with content extraction and anti-bot bypass.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
FIRECRAWL_API_KEY, BRIGHTDATA_API_KEY, STRATEGY_CONFIG_PATH, OPTIMIZE_FOR, MCP_RESOURCE_STORAGE, MCP_RESOURCE_FILESYSTEM_ROOT, SKIP_HEALTH_CHECKS, LLM_PROVIDER, LLM_API_KEY, LLM_API_BASE_URL, LLM_MODELค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"pulse-fetch": {
"command": "npx",
"args": [
"-y",
"@pulsemcp/pulse-fetch"
],
"env": {
"FIRECRAWL_API_KEY": "ใส่ค่าของคุณ",
"BRIGHTDATA_API_KEY": "ใส่ค่าของคุณ",
"STRATEGY_CONFIG_PATH": "ใส่ค่าของคุณ",
"OPTIMIZE_FOR": "ใส่ค่าของคุณ",
"MCP_RESOURCE_STORAGE": "ใส่ค่าของคุณ",
"MCP_RESOURCE_FILESYSTEM_ROOT": "ใส่ค่าของคุณ",
"SKIP_HEALTH_CHECKS": "ใส่ค่าของคุณ",
"LLM_PROVIDER": "ใส่ค่าของคุณ",
"LLM_API_KEY": "ใส่ค่าของคุณ",
"LLM_API_BASE_URL": "ใส่ค่าของคุณ",
"LLM_MODEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add pulse-fetch --env FIRECRAWL_API_KEY='ใส่ค่าของคุณ' --env BRIGHTDATA_API_KEY='ใส่ค่าของคุณ' --env STRATEGY_CONFIG_PATH='ใส่ค่าของคุณ' --env OPTIMIZE_FOR='ใส่ค่าของคุณ' --env MCP_RESOURCE_STORAGE='ใส่ค่าของคุณ' --env MCP_RESOURCE_FILESYSTEM_ROOT='ใส่ค่าของคุณ' --env SKIP_HEALTH_CHECKS='ใส่ค่าของคุณ' --env LLM_PROVIDER='ใส่ค่าของคุณ' --env LLM_API_KEY='ใส่ค่าของคุณ' --env LLM_API_BASE_URL='ใส่ค่าของคุณ' --env LLM_MODEL='ใส่ค่าของคุณ' -- npx -y @pulsemcp/pulse-fetchเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"pulse-fetch": {
"command": "npx",
"args": [
"-y",
"@pulsemcp/pulse-fetch"
],
"env": {
"FIRECRAWL_API_KEY": "ใส่ค่าของคุณ",
"BRIGHTDATA_API_KEY": "ใส่ค่าของคุณ",
"STRATEGY_CONFIG_PATH": "ใส่ค่าของคุณ",
"OPTIMIZE_FOR": "ใส่ค่าของคุณ",
"MCP_RESOURCE_STORAGE": "ใส่ค่าของคุณ",
"MCP_RESOURCE_FILESYSTEM_ROOT": "ใส่ค่าของคุณ",
"SKIP_HEALTH_CHECKS": "ใส่ค่าของคุณ",
"LLM_PROVIDER": "ใส่ค่าของคุณ",
"LLM_API_KEY": "ใส่ค่าของคุณ",
"LLM_API_BASE_URL": "ใส่ค่าของคุณ",
"LLM_MODEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"pulse-fetch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@pulsemcp/pulse-fetch"
],
"env": {
"FIRECRAWL_API_KEY": "ใส่ค่าของคุณ",
"BRIGHTDATA_API_KEY": "ใส่ค่าของคุณ",
"STRATEGY_CONFIG_PATH": "ใส่ค่าของคุณ",
"OPTIMIZE_FOR": "ใส่ค่าของคุณ",
"MCP_RESOURCE_STORAGE": "ใส่ค่าของคุณ",
"MCP_RESOURCE_FILESYSTEM_ROOT": "ใส่ค่าของคุณ",
"SKIP_HEALTH_CHECKS": "ใส่ค่าของคุณ",
"LLM_PROVIDER": "ใส่ค่าของคุณ",
"LLM_API_KEY": "ใส่ค่าของคุณ",
"LLM_API_BASE_URL": "ใส่ค่าของคุณ",
"LLM_MODEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
STRATEGY_CONFIG_PATH envOPTIMIZE_FOR envMCP_RESOURCE_STORAGE envMCP_RESOURCE_FILESYSTEM_ROOT envSKIP_HEALTH_CHECKS envLLM_PROVIDER envLLM_API_BASE_URL envLLM_MODEL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน pulsemcp.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: FIRECRAWL_API_KEY, BRIGHTDATA_API_KEY, LLM_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.3) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Python MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Haven't heard about MCP yet? The easiest way to keep up-to-date is to read our weekly newsletter at PulseMCP.
This is an MCP (Model Context Protocol) Server that pulls specific resources from the open internet into context, designed for agent-building frameworks and MCP clients that lack built-in fetch capabilities.
Pulse Fetch is purpose-built for extracting clean, structured content from web pages while minimizing token usage and providing reliable access to protected content through advanced anti-bot bypassing capabilities.
This project is built and maintained by PulseMCP.
Clean content extraction: Strips out HTML noise using Mozilla's Readability algorithm to minimize token usage during MCP Tool calls.
Intelligent caching: Automatically caches scraped content as MCP Resources. Subsequent requests for the same URL return cached content instantly without network calls, dramatically improving performance.
Anti-bot bypass: Integrates with Firecrawl and BrightData APIs to reliably work around anti-scraping technology.
Smart strategy selection: Automatically learns and applies the best scraping method for specific URL patterns, improving performance over time.
LLM-optimized: Offers MCP Prompts and descriptive Tool design for better LLM interaction reliability.
Flexible formats: Supports multiple output formats including clean markdown, HTML, screenshots, and structured data extraction.
Intelligent extraction: Extract specific information using natural language queries powered by LLMs.
This server is built and tested on macOS with Claude Desktop. It should work with other MCP clients as well.
| Tool Name | Description |
|---|---|
scrape | Scrape a single webpage with advanced content extraction options and multiple output formats. |
scrape tool handles all web content extraction needs and automatically bypasses anti-bot protection when necessaryresultHandling parameter:saveAndReturn (default): Saves content as MCP Resource AND returns it - best for reusereturnOnly: Returns content without saving - use when you only need content oncesaveOnly: Saves content as MCP Resource, returns only resource link - efficient for large contentforceRescrape: true to bypass the cache and get fresh content when you know the page has changedmaxChars and startIndex parameters to handle large content that exceeds token limitsextract parameter with natural language queries to extract specific information from pages (requires LLM configuration)User: "Get the main content from this article: https://example.com/article"
Assistant: I'll extract the content from that article for you.
[Uses scrape tool with onlyMainContent: true]
I've extracted the main article content. The article is titled "Example Article Title" and contains approximately 2,500 words discussing...
User: "Extract the product information from this e-commerce page: https://shop.example.com/product/123"
Assistant: I'll extract the structured product data from that page.
[Uses scrape tool with format: 'extract' and appropriate schema]
I've extracted the product information:
User: "This page is blocking me with CAPTCHA. Can you get the content from https://protected.example.com/data"
Assistant: I'll extract the content from that protected page for you.
[Uses scrape tool with automatic anti-bot bypass]
I successfully bypassed the protection and extracted the content from the page using BrightData's Web Unlocker capabilities.
User: "Get the content from https://example.com/article again"
Assistant: I'll retrieve that content for you.
[Uses scrape tool - automatically returns cached content]
I've retrieved the content from cache (originally scraped 2 hours ago). The article contains...
User: "Actually, I think that article was updated. Can you get the latest version?" Assistant: I'll fetch a fresh copy of the article for you.
[Uses scrape tool with forceRescrape: true]
I've fetched the latest version of the article. I can see it was indeed updated with new information about...
User: "I need to archive this entire article: https://example.com/long-article"
Assistant: I'll save that article as a resource for you.
[Uses scrape tool with resultHandling: 'saveOnly']
I've successfully archived the article. It's now saved as an MCP Resource that you can access later.
User: "Can you extract just the summary from https://example.com/report without saving it?" Assistant: I'll extract just the summary without saving the full content.
[Uses scrape tool with resultHandling: 'returnOnly' and extract parameter]
Here's the summary I extracted from the report: [summary content]
If our Design Principles resonate with you, you should consider using our server.
The official reference implementation of fetch is the closest alternative. However:
fetch has no mechanisms for bypassing anti-scraping technology, meaning attempts may randomly fail. We integrate with third-party services for reliable access.fetch is maintained by volunteers, so bugs or edge cases are less likely to be addressed quickly.Pulse Fetch caches responses as Resources, allowing easy inspection and re-use of Tool call outcomes.Pulse Fetch has more descriptive Tool design that more reliably triggers and completes desired tasks.Most other alternatives fall short on one or more vectors:
| Environment Variable | Description | Required | Default Value | Example |
|---|---|---|---|---|
FIRECRAWL_API_KEY | API key for Firecrawl service to bypass anti-bot measures | No | N/A | fc-abc123... |
BRIGHTDATA_API_KEY | Bearer token for BrightData Web Unlocker service | No | N/A | Bearer bd_abc123... |
STRATEGY_CONFIG_PATH | Path to markdown file containing scraping strategy configuration | No | OS temp dir | /path/to/scraping-strategies.md |
OPTIMIZE_FOR | Optimization strategy for scraping: cost or speed | No | cost | speed |
MCP_RESOURCE_STORAGE | Storage backend for saved resources: memory or filesystem | No | memory | filesystem |
MCP_RESOURCE_FILESYSTEM_ROOT | Directory for filesystem storage (only used with filesystem type) | No | /tmp/pulse-fetch/resources | /home/user/mcp-resources |
SKIP_HEALTH_CHECKS | Skip API authentication health checks at startup | No | false | true |
The extract feature provides an alternative to MCP's native sampling capability for clients that don't support it. When configured, it enables intelligent information extraction from scraped content using LLMs. If neither LLM configuration nor MCP sampling is available, the extract parameter will not be shown in the tool.
| Environment Variable | Description | Required | Default Value | Example |
|---|---|---|---|---|
LLM_PROVIDER | LLM provider: anthropic, openai, openai-compatible | No | N/A | anthropic |
LLM_API_KEY | API key for the chosen LLM provider | No | N/A | sk-abc123... |
LLM_API_BASE_URL | Base URL for OpenAI-compatible providers | No | N/A | https://api.together.xyz/v1 |
LLM_MODEL | Specific model to use for extraction | No | See defaults below | gpt-4-turbo |
Default Models:
claude-sonnet-4-20250514 (Claude Sonnet 4 - latest and most capable)gpt-4.1-mini (GPT-4.1 Mini - latest and most capable)You'll need Node.js installed on your machine to run the local version.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this configuration to your Claude Desktop config file:
Minimal configuration (uses native fetch only):
{
"mcpServers": { "pulse-fetch": { "command": "npx", "args": ["-y", "@pulsemcp/pulse-fetch"] } } }
Full configuration (with all optional environment variables):
{
"mcpServers": { "pulse-fetch": { "command": "npx", "args": ["-y", "@pulsemcp/pulse-fetch"], "env": { "FIRECRAWL_API_KEY": "your-firecrawl-api-key", "BRIGHTDATA_API_KEY": "your-brightdata-bearer-token", "STRATEGY_CONFIG_PATH": "/path/to/your/scraping-strategies.md", "OPTIMIZE_FOR": "cost", "MCP_RESOURCE_STORAGE": "filesystem", "MCP_RESOURCE_FILESYSTEM_ROOT": "/path/to/resource/storage" } } } }
To set up the local version:
cd pulse-fetch/localnpm installnpm run buildตัดมาแค่ช่วงต้น อ่านต่อใน repo