模型上下文协议服务器

一组用TypeScript编写的生产就绪的模型上下文协议(MCP)服务器,用于扩展AI编码助手的功能,包括HTTP检查、浏览器自动化、媒体编辑、图像处理等多种工具。

  • by Ddemon26
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ddemon26/custom-mcp-servers

使用说明

自定义MCP服务器

一组用TypeScript编写的生产就绪模型上下文协议(MCP)服务器,用于使用可复制的工具扩展AI编码助手。每台服务器都通过stdio进行通信,并且可以向任何符合MCP的客户端(Claude Desktop、CLI代理、IDE集成)注册,以添加专注的功能,而不会泄露敏感的工作区数据。

目录

概述

  • 每个服务器都是独立的(自己的 package.json, src,并编译 dist 输出),因此您可以独立构建、部署或版本化它们。
  • 工具包括HTTP检查、浏览器自动化、归档管理、FFmpeg驱动的媒体编辑、ImageMagick驱动的图像处理、通过yt-dlp的大规模媒体下载、掷骰子、只读代码库探索、受控文件下载管理、结构化数据转换(JSON/YAML/XML)、Markdown分析、老派RuneScape数据查找和时区实用程序。
  • 所有服务器都将操作详细信息记录到stderr中,以保持MCP响应的stdout干净。
  • 根据MIT许可证分发,用于不受限制的商业和个人使用。

先决条件

  • Node.js 18 LTS或更新版本(附带npm 9+)。早期的运行时可能缺乏使用的现代ECMAScript API @modelcontextprotocol/sdk.
  • npm(与Node一起安装)或其他Node包管理器(如果你愿意)(pnpm, yarn).下面的命令使用npm。
  • 这 curl 命令行客户端可在您的 PATH 对于HTTP工作台。大多数macOS和Linux发行版都包含它;在Windows上安装curl或通过Windows功能启用它。
  • 支持您调用的脚本的终端。在Windows上,提供 npm run clean 使用Unix rm -rf;或者从Git Bash/WSL运行它,或者替换为 Remove-Item -Recurse -Force dist.
  • MCP兼容客户端(例如,Claude Desktop>=v1.5、支持MCP的IDE或自定义自动化线束)。

快速开始

  1. 克隆或打开存储库。

    git clone https://github.com/Ddemon26/custom-mcp-servers.git
    cd custom-mcp-servers
    
  2. 安装依赖项。 跑 npm install 在每台服务器内部,您第一次克隆仓库时以及每当该服务器 package.json 变化。

  3. 构建TypeScript输出。 从服务器目录中,运行 npm run build 在向MCP客户端注册之前;这将生成 dist/server.js 入口点。

  4. 在本地运行服务器(手动验证)。

    npm run start
    

    该进程绑定stdio,并将等待来自MCP客户端的请求。停止 Ctrl+C 在确认构建后。

  5. (可选)迭代时使用实时重新加载。

    npm run dev
    

    ts-node 直接从启动服务器 src/server.ts,每次发射时重新编译。非常适合在生成发布版本之前进行调试。

与MCP客户端集成

所有服务器通过stdio与MCP通信。您通常在客户端的配置中注册它们,以便它自动生成流程并代理请求/响应。

  1. 构建服务器(npm run build) 你想曝光。

  2. 在MCP客户端配置中添加条目。 下面是Windows的Claude Desktop示例;调整macOS的路径(~/Library/Application Support/Claude/claude_desktop_config.json)或Linux(~/.config/Claude/claude_desktop_config.json).

    {
      "mcpServers": {
        "archive-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/archive-mcp/src/server.js"]
        },
        "browser-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/browser-mcp/src/server.js"]
        },
        "curl-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/curl/src/server.js"]
        },
        "diceroll-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/dice-roll/src/server.js"]
        },
        "easyview-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/easy-view/src/server.js"]
        },
        "filedownload-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/file-download/src/server.js"]
        },
        "ffmpeg-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/ffmpeg-mcp/src/server.js"]
        },
        "ytdlp-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/yt-dlp-mcp/src/server.js"]
        },
        "html-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/html-mcp/src/server.js"]
        },
        "imagemagick-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/imagemagick-mcp/src/server.js"]
        },
        "json-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/json-mcp/src/server.js"]
        },
        "markdown-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/markdown-mcp/src/server.js"]
        },
        "osrs-lookup": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/osrs-lookup/src/server.js"]
        },
        "time-mcp": {
          "command": "node",
          "args": ["/your/path/to/custom-mcp-servers/time/src/server.js"]
        }
      }
    }
    
    • 在JSON中使用正斜杠以避免转义反斜杠。
    • 确保工作目录与项目根目录匹配,以便正确解析相对路径(例如,易视图索引)。
  3. 重新启动客户端 因此它重新加载MCP配置。

  4. 按名称调用工具 在你的客户内部(navigate, create_zip, convert_video, download_video, parse_html, resize_image, curl_execute, roll_d100, scan_directory, save_text_file, format_json, markdown_to_html, get_current_time等等)。服务器响应显示在助手面板中。

开发工作流程

  • 跑 npm run dev 用于快速实验;使用 ts-node 因此TypeScript的更改会立即生效(编辑后重新启动该过程)。
  • 跑 npm run build 在发货或注册服务器之前,确保编译的JavaScript是最新的。
  • 使用 npm run start 执行编译后的构建,就像客户端运行它一样。
  • 如果需要清除Windows上的构建工件,请运行 powershell -Command "Remove-Item dist -Recurse -Force" 而不是 npm run clean,或安装跨平台清洁器(例如,添加 rimraf).
  • 类型定义存在 dist/server.d.ts 建成后;如果将这些服务器作为库在其他地方使用,请将其包括在内。

故障排除

  • curl_execute 失败与“curl 未被识别”: 安装curl或将其添加到系统中 PATH。在Windows上,获取官方安装程序或启用可选的Windows功能。
  • list_files 或 search_files 不返回任何内容: 跑 scan_directory 第一次或通过 { "refresh": true } 如果您最近更改了工作区。
  • view_file 报告“文件太大”: 安全上限为10 MB。在请求完整内容之前,请在本地打开或缩小文件。
  • save_binary_file 抛出“Base64内容是必需的”: 确保内容字符串是有效的base64,而不是JSON转义(删除换行符或用正确的JSON包装)。
  • npm run clean 在Windows上失败: 使用PowerShell Remove-Item 从Git Bash/WSL命令或运行脚本,其中 rm 存在。

许可证

根据 MIT许可证。您可以使用自己的MCP工具自由地分叉、扩展和捆绑这些服务器。