Claude TS MCPS 工具组
一组模型上下文协议服务器,使克劳德桌面能够提供开发辅助功能,包括文件系统、Git、shell命令和网络搜索功能,而不会产生API使用费用。
服务介绍
Claude TypeScript MCP 服务器
这是一个面向使用大型语言模型(LLMs)进行开发辅助的软件开发者的 Model Context Protocol (MCP) 服务器集合。尽管许多开发者更倾向于 Cline,因为它可以直接与 VSCode 集成,但它的按需付费 API 在大量使用时会变得非常昂贵。这个项目通过将 Claude 桌面应用程序与自定义的 MCP 服务器连接起来,利用了固定费率的 Claude Pro 订阅服务,提供了类似的开发辅助功能而无需承担可变成本。
日语解说文章: Cline委托でコードを書いていたらAPIクレジットが爆散したのでClaude Desktop + MCPをいい感じにしてサブスクだけで無双する
概览
此项目实现了几个可以与 Claude 桌面应用程序一起使用的 MCP 服务器,以增强其软件开发能力:
- Brave Search:使用 Brave Search API 提供网络搜索和本地搜索功能
- Filesystem:启用带有安全限制的文件系统操作
- Git:提供用于管理仓库的 Git 功能
- GitHub:允许与 GitHub 仓库、问题、拉取请求等进行交互
- Shell:在受控环境中执行 shell 命令
- Puppeteer:通过 Puppeteer 实现浏览器自动化和网页交互
- Fetch:从 URL 获取内容并将 HTML 转换为 Markdown 以提高可读性
需求
- Node.js (v18+)
- Bun 作为 JavaScript/TypeScript 运行环境
- Claude Desktop 应用程序
安装
-
克隆仓库:
git clone https://github.com/yourusername/claude-ts-mcps.git cd claude-ts-mcps -
安装依赖项:
bun install
配置
要使这些 MCP 服务器与 Claude 桌面应用程序配合使用,你需要创建一个配置文件来告诉 Claude 如何连接到它们。以下是一个示例配置:
{
"mcpServers": {
"brave-search": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/brave-search.ts"
],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
},
"filesystem": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/filesystem.ts",
"/Users/username"
]
},
"git": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/git.ts"
]
},
"github": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/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"
}
},
"shell": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/shell.ts"
]
},
"puppeteer": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/puppeteer.ts"
]
},
"fetch": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/fetch.ts"
],
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional
"IGNORE_ROBOTS_TXT": "false" // Optional, set to true to ignore robots.txt
}
}
}
}
将此配置保存为 claude_desktop_config.json 并配置 Claude 桌面应用程序以使用它。
多个 GitHub 账户支持
GitHub MCP 服务器支持在多个 GitHub 账户之间切换。你可以通过配置环境变量来设置多个账户配置文件:
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN", // Default account (backward compatible)
"GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN", // Work account profile
"GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN" // Personal account profile
}
要在你的请求中使用特定的账户配置文件,请向任何 GitHub API 调用添加 account_profile 参数:
{
"owner": "username",
"repo": "repo-name",
"path": "path/to/file.txt",
"account_profile": "work" // Will use the GITHUB_TOKEN_WORK environment variable
}
如果没有指定 account_profile,则默认使用 GITHUB_PERSONAL_ACCESS_TOKEN。
Fetch 服务器配置
Fetch MCP 服务器通过环境变量提供了定制选项:
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional: Specify a custom User-Agent header
"IGNORE_ROBOTS_TXT": "false" // Optional: Set to "true" to bypass robots.txt rules
}
CUSTOM_USER_AGENT:允许你为 HTTP 请求定义特定的 User-Agent 字符串,当某些网站基于客户端标识限制访问时这可能很有用。IGNORE_ROBOTS_TXT:默认情况下(false),fetch 服务器遵循网站设置的 robots.txt 规则来控制网络爬虫。将其设置为 "true" 可禁用这一限制,但应负责任地使用。
使用方法
- 启动 Claude 桌面版
- 加载配置文件
- Claude 现在可以访问这些 MCP 服务器提供的额外工具
开发
每个 MCP 服务器都作为一个独立的 TypeScript 文件在 src 目录中实现:
src/brave-search.ts: Brave Search API 集成src/filesystem.ts: 文件系统操作src/git.ts: Git 操作src/github.ts: GitHub API 集成,用于仓库管理、问题、拉取请求等src/shell.ts: Shell 命令执行src/puppeteer.ts: 浏览器自动化和网页交互src/fetch.ts: URL 内容检索和 HTML 到 Markdown 的转换
GitHub MCP 服务器具有模块化结构:
src/github/common/: 公用工具、接口和类型src/github/operations/: 各种 GitHub API 操作的实现src/github/tools/: MCP 服务器的工具定义
要添加新功能:
- 在
src目录中创建一个新的 TypeScript 文件 - 使用
@modelcontextprotocol/sdk实现 MCP 服务器 - 将新的服务器添加到您的 Claude Desktop 配置中
安全注意事项
- 文件系统和 shell 服务器包括防止未经授权访问的安全措施
- 在执行命令前始终验证用户输入
- 在配置允许的目录以供文件系统访问时要小心
- 使用 shell 服务器的命令白名单来限制可执行命令
- fetch 服务器默认尊重 robots.txt 指令,以防止抓取受限制的站点
- 安全存储您的 GitHub 个人访问令牌,并使用适当的令牌权限