使用说明

项目简介

senpai.nvim 是一个 Neovim 插件,它集成了 AI 功能,例如聊天、检索增强生成(RAG)、Prompt Launcher 和生成提交消息等。其核心特色之一是实现了 Model Context Protocol (MCP),允许 Neovim 编辑器作为 MCP 客户端,与 MCP 服务器进行通信,从而扩展 AI 功能和上下文信息处理能力。插件本身也内嵌了一个轻量级的 MCP 服务器,用于管理和协调各种 AI 功能。

主要功能点

  • 聊天功能 (Chat): 与 AI 进行对话,支持上下文历史记录,方便继续之前的对话。
  • MCP (Model Context Protocol): 内置 MCP 客户端和服务端,可以连接外部 MCP 服务器,扩展工具和资源。
  • RAG (Retrieval Augmented Generation): 支持检索增强生成,可以从 URL 注册知识库,让 AI 能够基于检索到的信息生成回复。
  • Prompt Launcher: 允许用户使用预定义的 Prompt 模板启动聊天,快速定制 AI 的行为模式。
  • 生成 Commit Message: 可以根据 Git 暂存区的代码变更,自动生成符合 Conventional Commits 规范的提交消息。

安装步骤

  1. 确保已安装 Neovim: senpai.nvim 需要 Neovim 环境。

  2. 安装 Bun: senpai.nvim 依赖 Bun 作为构建和运行环境,请确保已安装 Bun

  3. 安装插件: 使用 Neovim 插件管理器(如 lazy.nvim 或 packer.nvim)安装 senpai.nvim。

    以 lazy.nvim 为例:

    {
        "eetann/senpai.nvim",
        build = "bun install",
        dependencies = {
            "MunifTanjim/nui.nvim",
            "nvim-lua/plenary.nvim",
            "nvim-treesitter/nvim-treesitter",
        },
        opts = {}
    }

    以 packer.nvim 为例:

    {
        "eetann/senpai.nvim",
        run = "bun install",
        requires = {
            "MunifTanjim/nui.nvim",
            "nvim-lua/plenary.nvim",
            "nvim-treesitter/nvim-treesitter",
        },
        opt = true,
        config = function()
            require("senpai").setup({})
        end
    }
  4. 安装依赖插件: senpai.nvim 依赖 'nui.nvim', 'plenary.nvim', 'nvim-treesitter',插件管理器会自动安装。

服务器配置

senpai.nvim 作为一个 Neovim 插件,其 MCP 服务器配置主要体现在如何让它连接和使用 外部 的 MCP 服务器,例如 Mastra 提供的文档服务器。你需要在 'senpai.setup' 函数中配置 'mcp.servers' 选项。

配置示例 (Lua):

require("senpai").setup({
    mcp = {
        servers = {
            sequential = { -- 服务器名称,可以自定义
                command = "bunx", -- 启动服务器的命令
                args = { "-y", "@modelcontextprotocol/server-sequential-thinking" }, -- 启动参数
            },
            mastra = { -- 服务器名称,可以自定义
                command = "bunx", -- 启动服务器的命令
                args = { "-y", "@mastra/mcp-docs-server" } -- 启动参数
            },
        },
    },
})

配置说明:

  • 'servers': 一个表格,用于配置多个 MCP 服务器连接。
  • 'server name': 服务器的名称,例如 'sequential' 或 'mastra',可以自定义,用于在插件内部引用。
  • 'command': 启动 MCP 服务器的命令行命令。 例如 'bunx' 通常用于运行 Node.js 或 Bun 相关的包。
  • 'args': 传递给 'command' 的命令行参数,以列表形式提供。例如,'"-y", "@modelcontextprotocol/server-sequential-thinking"' 是 'bunx' 命令的参数,用于指定要运行的包。

注意: 上述配置是让 'senpai.nvim' 连接 外部 MCP 服务器的配置,而不是配置 'senpai.nvim' 自身的 MCP 服务器。 'senpai.nvim' 内置的 MCP 服务器主要用于插件内部功能管理,无需用户直接配置启动命令和参数。

基本使用方法

  1. 打开聊天窗口: 在 Neovim 中输入命令 ':Senpai toggleChat' 或配置快捷键来打开聊天窗口。
  2. 开始聊天: 在聊天输入区域输入消息,按 '<CR>' 发送给 AI。
  3. 使用 Prompt Launcher: 输入命令 ':Senpai promptLauncher' 选择并启动预定义的 Prompt。
  4. 查看历史记录: 输入命令 ':Senpai loadThread' 加载之前的聊天记录。
  5. 生成 Commit Message: 在 '.git/COMMIT_EDITMSG' 文件中,输入命令 ':Senpai commitMessage' 或 ':Senpai commitMessage Japanese' 生成提交消息。

更多详细使用方法和配置选项,请参考仓库 README.md 文件和插件文档。

信息

分类

开发者工具