项目简介

'jsboige-mcp-servers' 是一个包含多个基于 Model Context Protocol (MCP) 构建的后端服务器的集合。这些服务器旨在扩展大型语言模型 (LLM) 的能力,使其能够与外部工具和资源进行交互。每个服务器都提供特定的功能,例如文件管理、Jupyter Notebook 交互、网页内容转换、GitHub 项目管理或 VSCode Roo 任务状态管理。

主要功能点

该仓库提供了多个独立的MCP服务器,每个服务器都实现了特定的功能:

  1. QuickFiles Server:

    • 文件和目录管理:支持快速读取多个文件内容、提取文件特定部分、详细列出目录内容(支持行号、行数限制、深度限制、排序、过滤)。
    • 文件操作:可进行文件删除、文件内容批量编辑(支持差异应用)、文件复制和移动(支持模式匹配和冲突解决)、文件内容搜索与替换、Markdown结构提取。
    • 工具:'read_multiple_files', 'list_directory_contents', 'delete_files', 'edit_multiple_files', 'extract_markdown_structure', 'copy_files', 'move_files', 'search_in_files', 'search_and_replace', 'restart_mcp_servers'。
  2. GitHub Projects MCP Server:

    • GitHub 项目管理:作为资源提供 GitHub 项目列表和单个项目详情。
    • GitHub API 交互:允许LLM调用外部功能来创建/管理项目、任务、字段、问题、仓库等,并分析任务复杂性。
    • 工具:'list_projects', 'create_project', 'get_project', 'list_repositories', 'get_project_items', 'add_item_to_project', 'update_project_item_field', 'delete_project_item', 'delete_project', 'update_project', 'create_issue', 'update_issue_state', 'create_project_field', 'update_project_field', 'delete_project_field', 'convert_draft_to_issue', 'archive_project', 'unarchive_project', 'archive_project_item', 'unarchive_project_item', 'analyze_task_complexity', 'search_repositories'。
  3. Jupyter MCP Server:

    • Jupyter Notebooks 和 Kernels 管理:支持Notebook的读取、创建、修改;Kernels的启动、停止、中断。
    • 代码执行:允许LLM执行单个单元格或整个Notebook的代码,并获取输出(文本、图片、HTML等)。
  4. JinaNavigator Server:

    • 网页内容转换:使用 Jina API 将网页内容转换为 Markdown 格式,并支持内容截取和过滤。
  5. Roo State Manager Server:

    • VSCode Roo 任务状态管理:提供浏览任务树、搜索对话、分析任务关系、生成任务摘要等工具,用于管理LLM在VSCode Roo中的会话和任务状态。

安装步骤

在开始使用任何MCP服务器之前,您需要先克隆整个仓库并安装必要的依赖。

  1. 克隆仓库:

    git clone https://github.com/jsboige/jsboige-mcp-servers.git
    cd jsboige-mcp-servers
  2. 安装主仓库依赖:

    npm install
  3. 安装所有MCP服务器依赖并编译: 这将安装并编译所有位于 'servers/' 目录下的MCP服务器。

    npm run install-all
    npm run build-all

    或者,您可以进入特定服务器的目录单独安装和编译,例如 QuickFiles Server:

    cd servers/quickfiles-server
    npm install
    npm run build
  4. 配置服务器: 执行以下命令以创建所有服务器的默认配置文件。

    npm run setup-config

    您可能需要手动编辑位于项目根目录 'config/' 目录下的相应 'config.json' 文件,以根据您的需求配置特定服务器(例如 Jupyter MCP Server 的 'baseUrl' 和 'token')。

服务器配置(LLM客户端使用)

MCP客户端(例如Roo)通常需要配置每个MCP服务器的名称、启动命令、参数和传输类型。以下是每个服务器的典型配置信息示例(LLM客户端应根据其配置界面进行设置):

  • QuickFiles Server

    • 名称:'quickfiles-server'
    • 启动命令:'node'
    • 启动参数:'servers/quickfiles-server/build/index.js' (请将此路径替换为服务器脚本的实际绝对路径或相对于MCP客户端启动目录的路径)
    • 传输类型:'stdio'
  • Jupyter MCP Server

    • 名称:'jupyter-mcp-server'
    • 启动命令:'node'
    • 启动参数:'servers/jupyter-mcp-server/build/index.js' (请将此路径替换为服务器脚本的实际绝对路径或相对于MCP客户端启动目录的路径)
    • 传输类型:'stdio'
    • 注意:在启动此服务器之前,请确保 Jupyter Notebook 服务器已运行,并且在 'servers/jupyter-mcp-server/config.json' 中配置的 'baseUrl' 和 'token' 与您的 Jupyter 实例匹配。
  • JinaNavigator Server

    • 名称:'jinavigator-server'
    • 启动命令:'node'
    • 启动参数:'servers/jinavigator-server/build/index.js' (请将此路径替换为服务器脚本的实际绝对路径或相对于MCP客户端启动目录的路径)
    • 传输类型:'stdio'
  • GitHub Projects MCP Server

    • 名称:'github-projects-mcp'
    • 启动命令:'node'
    • 启动参数:'servers/github-projects-mcp/build/index.js' (请将此路径替换为服务器脚本的实际绝对路径或相对于MCP客户端启动目录的路径)
    • 传输类型:'stdio'
    • 注意:您需要在服务器运行环境中配置 'GITHUB_ACCOUNTS_JSON' (推荐) 或 'GITHUB_TOKEN' 环境变量以进行GitHub认证。'GITHUB_ACCOUNTS_JSON' 应是一个JSON字符串数组,包含 '{"owner": "your_owner", "token": "your_pat_token"}' 等账户信息。
  • Roo State Manager Server

    • 名称:'roo-state-manager'
    • 启动命令:'node'
    • 启动参数:'servers/roo-state-manager/build/index.js' (请将此路径替换为服务器脚本的实际绝对路径或相对于MCP客户端启动目录的路径)
    • 传输类型:'stdio'

基本使用方法

  1. 启动 MCP 服务器(通常由LLM客户端自动完成): 通常情况下,您的LLM客户端(如支持MCP协议的Roo)会根据您在客户端界面中配置的 'command' 和 'args' 自动启动和连接到MCP服务器。 如果您需要手动测试,可以进入您想要使用的服务器目录,然后运行启动命令。例如,启动 QuickFiles Server:

    cd servers/quickfiles-server
    npm start

    服务器通常会在 'stdio' 模式下启动,这意味着它会监听标准输入/输出进行MCP协议通信。

  2. 通过 LLM 调用工具和资源: 一旦MCP客户端与服务器连接成功,您就可以通过LLM客户端向MCP服务器发送请求,调用其注册的工具或访问其托管的资源。以下是一些示例(LLM客户端的伪代码调用):

    • QuickFiles Server - 读取文件: LLM 可能会这样调用 'read_multiple_files' 工具:

      LLM: 使用 quickfiles-server.read_multiple_files 工具读取 'README.md' 和 'package.json' 的前20行,并显示行号。

      其背后对应的 MCP 请求示例 (伪代码):

      <use_mcp_tool>
      <server_name>quickfiles</server_name>
      <tool_name>read_multiple_files</tool_name>
      <arguments>
      {
        "paths": ["./README.md", "./package.json"],
        "show_line_numbers": true,
        "max_lines_per_file": 20
      }
      </arguments>
      </use_mcp_tool>
    • GitHub Projects MCP Server - 列出项目: LLM 可能会这样调用 'list_projects' 工具:

      LLM: 使用 github-projects-mcp.list_projects 工具,列出用户 'jsboige' 的所有开放项目。

      其背后对应的 MCP 请求示例 (伪代码):

      <use_mcp_tool>
      <server_name>github-projects-mcp</server_name>
      <tool_name>list_projects</tool_name>
      <arguments>
      {
        "owner": "jsboige",
        "type": "user",
        "state": "open"
      }
      </arguments>
      </use_mcp_tool>

请参考每个服务器目录下的 'README.md' 文件获取更详细的特定服务器功能和使用示例。

信息

分类

AI与计算