项目简介
search-fetch-server-mcp 是一个使用 TypeScript 开发的 Model Context Protocol (MCP) 服务器示例,旨在演示 MCP 协议的核心概念。它实现了一个简单的笔记系统,并集成了网页抓取和 DuckDuckGo 搜索工具,可以通过 Claude Desktop 等 MCP 客户端进行连接和使用。
主要功能点
- 资源 (Resources):
- 以 'note://' URI 格式管理和访问文本笔记。
- 每个笔记包含标题、内容和元数据。
- 提供纯文本 MIME 类型访问笔记内容。
- 工具 (Tools):
- 'create_note': 创建新的文本笔记,需要提供标题和内容。
- 'fetch_url': 抓取指定 URL 的网页内容,并可选择使用 Puppeteer 转换为 Markdown 格式。
- 'duckduckgo_search': 使用 DuckDuckGo 搜索引擎进行搜索,返回 JSON 格式的搜索结果。
- Prompt 模板 (Prompts):
- 'summarize_notes': 生成所有笔记的摘要 Prompt,用于指导 LLM 总结笔记内容。
安装步骤
-
安装依赖: 确保已安装 Node.js 和 npm,然后在仓库根目录下运行以下命令安装项目依赖:
npm install -
构建服务器: 运行以下命令编译 TypeScript 代码,生成可执行的 JavaScript 文件:
npm run build构建后的文件位于 'build/index.js'。
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要配置客户端以连接到此服务器。以下是 Claude Desktop 的配置示例,您需要将配置信息添加到 Claude Desktop 的配置文件中。
配置文件路径:
- MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%/Claude/claude_desktop_config.json'
配置内容 (json):
{ "mcpServers": { "search-fetch-server": { // 服务器名称,客户端配置中引用此名称 "command": "node", // 启动服务器的命令,这里使用 node 运行 JavaScript 文件 "args": ["/path/to/search-fetch-server/build/index.js"] // 命令参数,指定服务器入口文件路径。请将 "/path/to/search-fetch-server" 替换为您的实际仓库路径 } } }
注意:
- 请将 '"/path/to/search-fetch-server/build/index.js"' 替换为 'build/index.js' 文件在您本地文件系统中的绝对路径。
- 'server name' 可以自定义,客户端通过此名称引用服务器。
基本使用方法
-
启动服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,会自动尝试连接到配置的 MCP 服务器。服务器将在后台运行,并通过标准输入/输出 (stdio) 与客户端通信。
-
客户端交互: 在 MCP 客户端中,您可以:
- 使用 'note://' URI 访问和读取服务器上存储的笔记资源。
- 调用 'create_note' 工具创建新的笔记。
- 调用 'fetch_url' 工具抓取网页内容。
- 调用 'duckduckgo_search' 工具进行 DuckDuckGo 搜索。
- 使用 'summarize_notes' Prompt 模板生成笔记摘要。
-
调试: 如果需要调试 MCP 服务器,可以使用仓库提供的 MCP Inspector 工具,运行命令 'npm run inspector' 启动 Inspector,它会在浏览器中提供调试界面。
开发者提示
- 仓库中包含一个 Python 脚本 'src/exampleapicalls.py',但这似乎是一个独立的 Streamlit 应用示例,与 MCP 服务器的实现无关,可以忽略。
- 服务器代码主要在 'src/index.ts' 中,可以参考此文件了解资源、工具和 Prompt 的具体实现方式。
信息
分类
网页与API