Skip to main content
Glama
liuqihonggit

@jingjingbox/mcp-cli-bridge

by liuqihonggit

@jingjingbox/mcp-cli-bridge

Мост MCP-CLI — вызывает CLI-инструменты через протокол MCP, предоставляя ИИ-ассистентам мощные возможности работы с графами знаний и чтения файлов.

Введение

@jingjingbox/mcp-cli-bridge — это сервер-мост, основанный на Model Context Protocol (MCP), который предоставляет возможности CLI-инструментов ИИ-ассистентам (таким как TraeCN) через протокол MCP.

Основные характеристики

  • Управление графом знаний: создание сущностей, установление связей, поиск узлов для построения полноценной сети знаний

  • Чтение файлов: эффективное чтение начала или конца файлов, поддержка обработки больших файлов

  • Изоляция процессов: CLI-плагины работают в отдельных процессах, сбои не влияют на основной сервис

  • Компиляция NativeAOT: максимальная производительность, минимальный размер, быстрый запуск

  • Постепенная загрузка: инструменты загружаются по мере необходимости, не занимая место в контексте

Related MCP server: mcp_server_for_claudes_toolbox

Системные требования

  • ОС: Windows x64

  • Node.js: >= 14.0.0

  • Среда выполнения: .NET 10.0 Runtime (включена в пакет)

Установка

Глобальная установка

npm install -g @jingjingbox/mcp-cli-bridge

Использование npx (рекомендуется)

Не требует установки, запускается напрямую:

npx @jingjingbox/mcp-cli-bridge

Конфигурация

Переменные окружения

Переменная

Описание

Обязательно

MCP_MEMORY_PATH

Директория хранения данных графа знаний MemoryCli

Да

Файлы данных создаются автоматически:

  • memory.jsonl - данные сущностей

  • memory_relations.jsonl - данные связей

Пример конфигурации TraeCN

Добавьте в конфигурацию MCP в TraeCN:

{
  "mcpServers": {
    "cli-bridge": {
      "type": "stdio",
      "command": "npx",
      "args": ["@jingjingbox/mcp-cli-bridge"],
      "enabled": true,
      "env": {
        "MCP_MEMORY_PATH": "D:\\MCP\\Memory"
      }
    }
  }
}

Конфигурация глобальной установки

{
  "mcpServers": {
    "cli-bridge": {
      "type": "stdio",
      "command": "mcp-cli-bridge",
      "enabled": true,
      "env": {
        "MCP_MEMORY_PATH": "D:\\MCP\\Memory"
      }
    }
  }
}

Список инструментов

Инструменты уровня Host (прямое предоставление)

Название инструмента

Описание

tool_search

Поиск доступных CLI-инструментов

tool_execute

Выполнение указанной команды CLI-инструмента

tool_describe

Получение описания инструмента

tool_list

Список всех доступных инструментов

package_status

Проверка статуса установки пакета

package_install

Установка указанного пакета

Инструменты MemoryCli (граф знаний)

Вызываются через tool_execute, префикс команды memory_:

Название инструмента

Описание

memory_create_entities

Создание нескольких сущностей в графе знаний

memory_create_relations

Создание связей между сущностями

memory_read_graph

Чтение всего графа знаний

memory_search_nodes

Поиск узлов в графе знаний

memory_add_observations

Добавление записей наблюдений к сущности

memory_delete_entities

Удаление сущностей и их связей

memory_open_nodes

Получение конкретных узлов по имени

Инструменты FileReaderCli (чтение файлов)

Вызываются через tool_execute, префикс команды file_reader_:

Название инструмента

Описание

file_reader_read_head

Чтение первых N строк файла

file_reader_read_tail

Чтение последних N строк файла

Примеры использования

Создание сущности знаний

{
  "command": "memory_create_entities",
  "entities": [
    {
      "name": "React",
      "entityType": "Framework",
      "observations": ["用于构建用户界面的 JavaScript 库", "由 Meta 维护"]
    },
    {
      "name": "TypeScript",
      "entityType": "Language",
      "observations": ["JavaScript 的超集", "添加了静态类型检查"]
    }
  ]
}

Установление связей между сущностями

{
  "command": "memory_create_relations",
  "relations": [
    {
      "from": "React",
      "to": "TypeScript",
      "relationType": "supports"
    }
  ]
}

Поиск узлов знаний

{
  "command": "memory_search_nodes",
  "query": "React"
}

Чтение начала файла

{
  "command": "file_reader_read_head",
  "filePath": "C:\\project\\logs\\app.log",
  "lineCount": 20
}

Чтение конца файла

{
  "command": "file_reader_read_tail",
  "filePath": "C:\\project\\logs\\error.log",
  "lineCount": 50
}

Архитектура

McpHost/
├── McpHost.exe          # MCP 主机服务
├── MemoryCli.exe        # 知识图谱 CLI 插件
├── FileReaderCli.exe    # 文件读取 CLI 插件
└── index.js             # npm 入口文件
  • McpHost: сервер протокола MCP, отвечающий за предоставление инструментов и управление процессами CLI

  • MemoryCli: управление графом знаний, поддержка CRUD для сущностей, связей и записей наблюдений

  • FileReaderCli: эффективное чтение файлов, поддержка чтения начала/конца больших файлов

Технологический стек

  • .NET 10.0 - платформа выполнения

  • NativeAOT - нативная компиляция, максимальная производительность

  • C# 13 - язык программирования

  • JSON-RPC 2.0 - протокол связи CLI

  • MCP Protocol - протокол связи с ИИ-ассистентом

Разработка

Репозиторий исходного кода

git clone https://gitee.com/JJbox/memory.git

Сборка

# 使用 PowerShell
.\build.ps1

Тестирование

# 单元测试
dotnet test McpHost.slnx

# E2E 测试
dotnet run --project tests\E2E\MyMemoryServer.E2E.csproj -c Release

Подробная документация

Лицензия

MIT

Автор

JJbox

Related MCP Connectors

Related MCP Servers