search-fetch-server MCP Server logo

search-fetch-server MCP Server

by nexon33

This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing resources representing text notes, tools for creating notes and fetching URLs, and prompts for generating summaries.

View on GitHub

Last updated: N/A

search-fetch-server MCP Server

A Model Context Protocol server

This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing:

  • Resources representing text notes with URIs and metadata
  • Tools for creating new notes, fetching URLs, and performing searches
  • Prompts for generating summaries of notes

Features

Resources

  • List and access notes via note:// URIs
  • Each note has a title, content and metadata
  • Plain text mime type for simple content access

Tools

  • create_note - Create new text notes
    • Takes title and content as required parameters
    • Stores note in server state
  • fetch_url - Fetch content from a URL and optionally convert to markdown using Puppeteer
    • Takes a URL as a required parameter
    • Takes an optional use_puppeteer boolean parameter. If true, it will use puppeteer with waitUntil set to networkidle2 and a timeout of 30 seconds. Otherwise, it will use axios.
    • Returns the content of the URL as markdown if using puppeteer, otherwise returns the content as is.
  • duckduckgo_search - Perform a DuckDuckGo search
    • Takes a query as a required parameter
    • Returns search results as a JSON string

Prompts

  • summarize_notes - Generate a summary of all stored notes
    • Includes all note contents as embedded resources
    • Returns structured prompt for LLM summarization

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "search-fetch-server": {
      "command": "node",
      "args": ["/path/to/search-fetch-server/build/index.js"]
    }
  }
}

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.