返回市场
克劳德TS MCP服务器

克劳德TS MCP服务器

作者:ukkz19 星标更新:2025-06-19

项目介绍

Claude TypeScript MCP Servers (面向软件开发者)

一个全面的模型上下文协议(MCP)服务器集合,将Claude Desktop转变为强大的开发助手。该项目利用您的固定费率Claude Pro/Max订阅,提供类似于Cline的功能,但无需支付每令牌的API费用。

🚀 特性

  • 文件系统操作 - 在安全限制下读取、写入和管理文件
  • Git集成 - 完整的Git工作流支持,包括提交、分支和差异
  • GitHub API - 多账户支持下的仓库、问题、PR管理和更多
  • 网络搜索 - 基于Sonar的AI驱动搜索和基于Brave的传统关键词搜索
  • 浏览器自动化 - 30多种Puppeteer工具用于网页抓取和自动化
  • Shell命令 - 在受控环境中执行开发命令
  • URL内容提取 - 从网页中提取内容,并转换为Markdown

📋 要求

  • Node.js v18或更高版本
  • Bun 运行时
  • Claude Desktop 应用程序
  • 第三方服务的API密钥(Brave Search, Perplexity/Sonar)

🛠️ 安装

# 克隆仓库
git clone https://github.com/yourusername/claude-ts-mcps.git
cd claude-ts-mcps

# 安装依赖
bun install

⚙️ 配置

为Claude Desktop创建一个包含所有MCP服务器的配置文件:

{
  "mcpServers": {
    "filesystem": {
      "command": "/Users/username/.bun/bin/bun",
      "args": [
        "run",
        "/path/to/claude-ts-mcps/src/filesystem.ts",
        "/Users/username"
      ]
    },
    "git": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/git.ts"]
    },
    "github": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/github.ts"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN",
        "GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN",
        "GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN"
      }
    },
    "brave-search": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/brave-search.ts"],
      "env": {
        "BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
      }
    },
    "sonar": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/sonar.ts"],
      "env": {
        "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY"
      }
    },
    "puppeteer": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/puppeteer/index.ts"]
    },
    "shell": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/shell.ts"]
    },
    "fetch": {
      "command": "/Users/username/.bun/bin/bun",
      "args": ["run", "/path/to/claude-ts-mcps/src/fetch.ts"],
      "env": {
        "CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT",
        "IGNORE_ROBOTS_TXT": "false"
      }
    }
  }
}

🔧 可用工具

文件系统操作 (filesystem)

  • 安全性:仅限指定目录,带有符号链接保护
  • 核心操作
    • 支持编码的文件读写(utf-8, base64, hex)
    • 按字节范围或行范围部分读取文件
    • 移动、复制、删除、追加文件
    • 创建目录并管理文件树
  • 高级编辑
    • 文本替换,带差异预览
    • 行级操作(替换、插入、删除特定行)
    • 带捕获组的正则表达式替换
  • 搜索能力
    • 按名称模式搜索文件
    • 搜索文件内容(纯文本或正则表达式)
    • 排除模式支持
  • 批量操作
    • 高效执行多个文件操作
    • 读取操作的并行执行
    • 支持回滚的事务模式
  • 归档管理
    • 压缩文件(zip, tar, tar.gz)
    • 提取归档,带覆盖控制
  • 文件监控
    • 检查自特定时间以来的文件更改
    • 支持更改、重命名和删除事件
  • 使用场景:代码编辑、项目管理、文件分析、批量操作

Git集成 (git)

  • 完整的Git工作流:初始化、添加、提交、分支、检出、差异、日志
  • 仓库管理:状态跟踪、历史查看
  • 标签管理
    • 创建轻量级和注释标签
    • 列出标签,支持模式过滤
    • 显示标签详情和消息
    • 删除不需要的标签
  • 使用场景:版本控制、代码审查、项目历史、发布管理

GitHub API (github)

  • 仓库管理:创建、搜索、管理仓库
  • 问题与PR:创建、更新、合并拉取请求和问题
  • 发布管理:创建、更新和管理发布
  • 多账户支持:在工作和个人账户之间切换
  • 文件操作:通过API直接创建和更新文件

网络搜索工具

AI驱动搜索 (sonar)

  • 自然语言理解:以普通语言询问复杂问题
  • 合成答案:获得带有引用的综合响应
  • 多种模型
    • sonar:快速通用搜索
    • sonar-pro:具有20万上下文的复杂查询
    • sonar-reasoning:链式思维推理
    • sonar-deep-research:全面研究模式
  • 使用场景:研究、事实核查、学习复杂主题

传统搜索 (brave-search)

  • 网络搜索:基于关键词返回多个结果
  • 本地搜索:查找企业和服务
  • 使用场景:快速查找、寻找多个来源、本地信息

浏览器自动化 (puppeteer)

我们最全面的工具,包含30多种按类别组织的功能:

🧭 导航与基本交互

  • 导航到URL,截屏
  • 点击元素,填写表单,选择选项
  • 鼠标悬停,执行JavaScript

⏳ 等待操作

  • 等待元素、超时、导航
  • 等待自定义JavaScript条件

⌨️ 键盘操作

  • 按键和组合键
  • 类似人类延迟的文本输入

📄 页面管理

  • 设置视口大小,前进/后退,重新加载
  • 生成PDF,模拟设备

🍪 Cookie与认证

  • 设置/获取Cookie,HTTP认证

ℹ️ 信息检索

  • 获取页面标题、URL、HTML内容
  • 提取文本和详细的元素信息

🖼️ 框架操作(高级)

  • 列出所有框架,切换框架
  • 在特定框架中执行JavaScript
  • 在所有框架中搜索元素

🔧 杂项

  • 添加脚本标签,清除输入字段

Shell命令 (shell)

  • 受控执行:基于允许列表的命令限制
  • 开发工具:npm, yarn, bun, git, node, python, tsc
  • 安全性:防止危险操作,目录限制
  • 特性:自动解析命令字符串,输出大小限制,超时控制
  • 流模式:现在默认启用!捕捉长时间运行进程的输出
    • 超时(默认:10秒)或缓冲区限制(100KB)后自动返回部分输出
    • 正常命令如常完成;仅影响长时间运行的进程
    • 流模式超时后自动终止进程(安全默认值)
    • 使用killOnStreamingTimeout: false保持进程运行
    • 完美适用于:开发服务器、构建监视器、交互式命令
    • 如需禁用,请设置streaming: false
  • 使用场景:包管理、构建过程、脚本执行、服务器监控

URL内容提取 (fetch)

  • 内容提取:将HTML转换为干净的Markdown
  • 定制化:自定义用户代理,robots.txt处理
  • 使用场景:阅读文档、内容分析

💡 使用示例

开发流程

您: "创建一个新的React组件用于用户身份验证"
Claude: *使用文件系统创建组件文件,使用npm安装依赖*

您: "在GitHub上查找OAuth实现的例子"
Claude: *使用GitHub搜索和提取来查找和分析实现*

您: "测试我们的暂存站点上的登录表单"
Claude: *使用Puppeteer导航、填写表单并验证功能*

研究与分析

您: "Next.js 14 App Router的最新最佳实践是什么?"
Claude: *使用Sonar进行带有引用的综合研究*

您: "比较我们的package.json与其他类似项目"
Claude: *使用GitHub查找类似项目,使用文件系统读取本地文件*

自动化

您: "从这个电子商务网站提取所有产品价格"
Claude: *使用Puppeteer导航页面、提取数据并编译结果*

您: "监控我们的GitHub问题并创建总结"
Claude: *使用GitHub API获取问题、分析模式并生成报告*

🔒 安全考虑

  • 文件系统:仅限指定目录
  • Shell:命令必须在允许列表中
  • 凭证:安全存储API密钥,使用环境变量
  • GitHub:使用最小权限的令牌
  • Fetch:默认尊重robots.txt

🏗️ 项目结构

claude-ts-mcps/
├── src/
│   ├── filesystem.ts      # 文件操作
│   ├── git.ts             # Git集成
│   ├── github.ts          # GitHub API(主要入口)
│   ├── github/            # GitHub实现
│   ├── brave-search.ts    # Brave搜索API
│   ├── sonar.ts           # Perplexity Sonar API
│   ├── sonar/             # Sonar类型和实用工具
│   ├── puppeteer/         # 浏览器自动化
│   │   ├── index.ts       # 主入口点
│   │   ├── tools/         # 工具定义
│   │   ├── handlers/      # 实现
│   │   └── state.ts       # 状态管理
│   ├── shell.ts           # Shell命令(入口)
│   ├── shell/             # Shell实现
│   │   ├── index.ts       # 主逻辑
│   │   ├── executor.ts    # 命令执行
│   │   ├── types.ts       # 类型定义
│   │   └── ...            # 其他模块
│   └── fetch.ts           # URL提取
└── package.json

🚧 开发

要添加新功能:

  1. src/中创建一个新的TypeScript文件
  2. 使用@modelcontextprotocol/sdk实现MCP服务器
  3. 添加工具定义,附带清晰描述
  4. 包含适当的错误处理和验证
  5. 更新配置文件

测试您的更改

# 直接运行特定的MCP服务器
bun run src/your-new-server.ts

# 使用Claude Desktop测试
# 更新您的配置并重启Claude

类型检查

此项目使用TypeScript进行类型安全。有几种类型检查命令可用:

# 标准类型检查(启用所有严格检查)
bun run type-check

# 开发时文件监视类型检查
bun run type-check:watch

# 不发出未使用变量警告的类型检查(适合开发)
bun run check:loose

# 严格类型检查(与type-check相同)
bun run check:strict

当前类型问题

项目可以正常运行,但有一些类型问题正在解决:

  • 一些Puppeteer API需要正确的类型导入
  • 几个潜在的未定义值需要防护
  • 一些文件中的未使用变量(开发期间可忽略)

这些问题不影响运行时功能,但会随着时间清理。

代码格式化

此项目使用Prettier进行一致的代码格式化。以下命令可用:

# 格式化所有文件
bun run format

# 检查格式而不做更改
bun run format:check

# 仅格式化源文件(src目录)
bun run format:src

# 仅检查源文件的格式
bun run format:check:src

# 同时运行格式化检查和类型检查
bun run lint

# 修复格式化并运行类型检查
bun run lint:fix

Prettier配置

项目使用以下Prettier设置(.prettierrc):

  • 打印宽度:100字符(JSON/Markdown为80)
  • 制表符宽度:2个空格
  • 分号:始终
  • 引号:双引号
  • 尾随逗号:所有(ES5+)
  • 箭头函数括号:始终包含括号

保存时格式化

为了获得最佳开发体验,请配置您的编辑器在保存时进行格式化:

VS Code:在.vscode/settings.json中添加:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}

其他编辑器:查阅您的编辑器文档以了解Prettier集成。

📚 资源

📄 许可证

MIT许可证