这是一个包含多个MCP(Model Context Protocol)服务器实现的仓库。这些服务器作为独立的进程运行,通过标准协议(通常是Stdio)与兼容的LLM客户端(如Claude Code、Cursor IDE)通信,为LLM赋予访问本地文件系统、执行Git命令、与GitHub交互、进行网页搜索、运行Shell命令等能力。

项目简介

本项目旨在提供一系列预先构建好的、功能丰富的MCP服务器,让LLM客户端能够与外部环境和服务进行更深入的交互。它使用Bun运行时和TypeScript开发,通过Makefile简化了构建和安装流程。

主要功能点

该仓库提供了以下功能的MCP服务器实现:

  • 文件系统操作: 允许LLM读、写、编辑、移动、删除文件和目录,以及列出目录内容和获取文件信息(在指定的安全目录范围内)。
  • Git版本控制: 允许LLM检查仓库状态、查看差异、添加/提交更改、查看日志、创建/切换分支、查看提交详情等。
  • GitHub集成: 提供与GitHub API交互的能力,包括搜索仓库、创建仓库、获取文件内容、创建/更新/推送文件、管理Issue和Pull Request等。
  • Brave搜索: 使用Brave搜索API进行网络搜索和本地(地理位置)搜索,为LLM提供实时信息。
  • Shell命令执行: 允许LLM在受控的安全环境中执行一系列预定义或允许的Shell命令。
  • Puppeteer网页自动化: 控制一个无头(或有头)浏览器,执行网页导航、截图、点击、填写表单、执行JavaScript等操作。
  • 网页内容抓取: 使用Fetch API获取网页内容,并将HTML转换为Markdown格式以便LLM理解。
  • Obsidian笔记操作: 允许LLM读、写、删除和搜索Obsidian笔记库中的笔记。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/drapon/claude-mcp-servers.git
    cd claude-mcp-servers # README中使用 claude-ts-mcps,但实际仓库名是 claude-mcp-servers
  2. 创建.env文件: 在仓库根目录创建'.env'文件,并根据需要配置API密钥和路径。参考'.env.template'(假定存在)或README中的示例。例如:
    BRAVE_API_KEY=your_brave_api_key
    GITHUB_PERSONAL_ACCESS_TOKEN=your_github_personal_access_token
    OBSIDIAN_VAULT_DIR=/path/to/your/Obsidian/Vault
    # 对于文件系统服务器,需要指定允许访问的目录,这通常作为服务器启动参数传递,而不是在.env中
    # 对于shell服务器,可以指定一个基础目录,这也可以作为参数传递
  3. 安装Bun和Make: 确保您的系统安装了Bun运行时和Make工具。
  4. 安装依赖并设置:
    • 对于Claude Desktop或Cursor IDE,可以运行:
      make select-mcps # 交互式选择并配置服务器
      # 或者
      make setup # 传统自动设置
      make cursor-setup # 针对Cursor IDE
    • 对于Claude Code,推荐运行:
      make reset-and-setup-claude-code # 重置并交互式设置个体MCP服务器
    这些命令将安装TypeScript依赖,构建各个服务器脚本,并生成客户端所需的配置文件或引导您完成配置过程。

服务器配置(客户端视角)

这些服务器被设计为由LLM客户端按需启动的独立进程。配置信息通常在LLM客户端的应用设置中完成(例如,在Claude Code中使用'/mcp'命令或编辑配置文件)。配置的核心是告知客户端如何启动每个MCP服务器进程。

典型的MCP服务器配置(JSON格式,位于客户端配置文件中)应包含以下字段:

  • 'name': 服务器的标识名称(例如: "Filesystem MCP", "Git MCP", "Brave Search MCP", "GitHub MCP", "Shell MCP", "Puppeteer MCP", "Fetch MCP", "Obsidian MCP", "Shadcn UI MCP")。
  • 'command': 用于启动服务器的可执行文件路径。通常是'bun'的路径,例如 '/opt/homebrew/bin/bun' 或您系统中Bun的安装路径。
  • 'args': 传递给'command'的参数列表(字符串数组)。通常以 'run' 开头,后接MCP服务器脚本的路径,以及该特定服务器所需的任何参数。
    • Filesystem MCP: '["run", "/path/to/claude-mcp-servers/ts/src/filesystem.ts", "/path/to/allowed/dir1", "/path/to/another/allowed/dir2"]' (允许访问的目录列表)
    • Git MCP: '["run", "/path/to/claude-mcp-servers/ts/src/git.ts", "-r", "/path/to/default/repo"]' (可选,指定默认仓库路径)
    • Shell MCP: '["run", "/path/to/claude-mcp-servers/ts/src/shell.ts", "-d", "/path/to/base/directory"]' (可选,指定命令执行的基础目录)
    • Obsidian MCP: '["run", "/path/to/claude-mcp-servers/ts/src/obsidian.ts", "/path/to/your/Obsidian/Vault"]' (Obsidian库路径,也可以通过'OBSIDIAN_VAULT_DIR'环境变量传递)
    • Brave Search MCP, GitHub MCP, Fetch MCP, Puppeteer MCP, Shadcn UI MCP: 通常只需要 '["run", "/path/to/claude-mcp-servers/ts/src/<server-file>.ts"]' 这样的基本参数。
  • 'env': 可选,一个键值对对象,用于设置服务器进程所需的环境变量(例如API密钥)。
    • Brave Search MCP: '{"BRAVE_API_KEY": "your_key"}'
    • GitHub MCP: '{"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token"}' (或特定账户的TOKEN)
    • Fetch MCP: '{"CUSTOM_USER_AGENT": "...", "IGNORE_ROBOTS_TXT": "true"}' (可选)
    • Obsidian MCP: '{"OBSIDIAN_VAULT_DIR": "/path/to/your/Obsidian/Vault"}' (如果不用命令行参数传递路径)

请注意: 上述路径和环境变量名称是示例,您需要根据您的实际安装位置、'.env'文件内容以及LLM客户端的具体配置方式进行调整。MCP客户端配置界面(如Claude Code的'/mcp')通常会引导您完成这些设置。

基本使用方法

  1. 启动并配置MCP服务器: 按照上述“安装步骤”和“服务器配置”部分,在您的LLM客户端应用程序中配置并启用您希望使用的MCP服务器。
  2. 与LLM互动: 在LLM客户端的聊天界面中,像往常一样与AI模型对话。根据您配置并启用的MCP服务器,模型将识别其具备的新工具能力(例如,如果您启用了文件系统服务器,模型会知道它可以调用'read_file'等工具)。
  3. LLM调用工具: 当您提出需要外部信息的请求(例如“帮我读一下项目根目录下的README.md文件”)时,LLM可能会自动或在您的确认下调用相应的MCP工具(例如'read_file')。
  4. 获取结果: MCP服务器执行工具操作后,会将结果返回给LLM客户端。LLM会利用这些结果来回答您的问题或完成任务。

通过这种方式,您可以赋予LLM强大的本地及网络互动能力。

信息

分类

开发者工具