bash MCP

MCP开发工具

提供方 gorban

开发工具 未标注 无需鉴权 社区 / 第三方

一个基于Bash实现的轻量级动态MCP协议服务器,支持运行时发现并执行tools/目录下的工具,通过JSON-RPC 2.0接口提供服务。

一句话选型结论

按资料字段整理

bash MCP 属于开发工具类 MCP 服务器,传输方式未标注,无需鉴权,没有现成安装命令,需按官方文档接入。接入前先确认权限范围;涉及写入、删除或付款的操作,建议先在测试环境验证。

分类开发工具 传输方式未标注 鉴权无需鉴权 部署方式未标注
GitHub 星标 0 仓库热度,无公开仓库时显示未标注
工具数 未标注 暴露给模型的工具数量
资源 / 提示词 0 / 0 资源与提示词模板数量
维护方 社区 / 第三方 核验等级 仅资料核对

工具与能力

开发工具
数量来自来源目录的标注,具体工具清单以官方文档为准
工具数量未标注暴露给模型可调用的工具个数
资源数量0可读取的资源条目
提示词数量0内置提示词模板数量

能力标签

适用场景

Shell本地部署MCP协议JSON-RPC动态工具发现Bash脚本

安装与配置

未标注 无需鉴权
上游未给出传输方式
  1. 1
    准备运行环境

    按官方文档确认运行环境(常见为 Node.js 或 Python),装好后再执行安装命令。

  2. 2
    安装服务

    复制上面的安装命令执行;命令里带占位符的位置,换成自己的密钥或路径。

  3. 3
    写入客户端配置

    在客户端的 MCP 配置里填好启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4
    验证是否可用

    连接成功后随便调一个只读工具,确认能返回结果,再接入正式流程。

典型使用场景

3 类
按分类与标签整理的常见用法,具体以官方文档为准
代码与仓库操作

在对话里直接查代码、提 issue、走 PR,省掉来回切工具。

本地命令与脚本

把构建、测试、格式化这类重复命令交给模型执行。

接口联调与测试

让模型调你的接口、跑一遍用例,快速定位问题。

选择建议

选之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 资料标注无需鉴权,装好就能连。

先想清楚的地方

  • 没有现成安装命令,需要按官方文档自己填启动命令和参数。
  • 资料没标注工具数量,实际能力要装好后确认。
  • 版本更新与行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地或自有环境跑服务的人。

不太适合

  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
MCP 服务器工具数传输方式部署方式安装命令最后核验
bash MCP当前 未标注 未标注 未标注 无 2026-05-17
Git 838e2ec1 12 stdio · 本地进程 本地部署 有 2026-05-17
Markitdown MCP 2c653a5f 1 stdio · 本地进程 本地部署 有 2026-05-17
JavaGuide 未标注 stdio · 本地进程 本地部署 有 2026-04-11
awesome-claude-skills 未标注 stdio · 本地进程 本地部署 有 2026-04-26
Context7 831acf40 未标注 stdio · 本地进程 本地部署 有 2026-05-17

服务器档案

开发工具
字段来自项目仓库与公开索引,中文说明由本站标注
提供方gorban上游标注的维护方 gorban
分类开发工具本站按上游分类展示
连接方式未标注上游未给出传输方式
鉴权方式无需鉴权远程服务建议用最小权限凭据
维护方社区 / 第三方核验等级 仅资料核对
包名 / 运行时未标注 · 未标注本地安装时用到的包标识与运行时
部署类型未标注上游给出的部署形态
最近核验2026-05-17上游最后核验时间

详细介绍

8.1 KB
来自项目仓库与上游目录的原文,未做删改

MCP Bash服务器团队

最小的、动态的 模型上下文协议 (MCP)服务器在便携式Bash中实现(用macOS默认Bash 3.2测试)。它发现放置在 tools/ 并按照MCP工具契约通过JSON-RPC 2.0接口公开它们。


先决条件

  • Bash shell\
    测试方法:
  • macOS默认Bash 3.2
  • Windows上的Git Bash
  • 如果你还没有 "C:\Program Files\Git\bin\bash.exe",\
    从以下位置安装Git for Windows:\

  • 应该在Linux上工作

  • jq 命令行JSON处理器:
  • Linux/macOS:
  • 填写您的\<\>并运行:\
    &lt;&gt; install jq\
    例如,对于macOS: brew install jq
  • 窗户:
    1. 首选 jq GitHub发布页面:\
  1. 在“资产”下,下载 jq-win64.exe\
    注: 如果看不到,请单击“显示所有##资产”以首先展开完整列表。
  2. 将文件重命名为 jq.exe 并将其精确地放置在:\
    C:\Program Files\Git\usr\bin\jq.exe

主要特点

  • Bash(无关联数组;可移植到旧shell)。
  • 但不是“纯bash”:依赖于 jq 用于JSON解析/验证。
  • 动态工具发现:中的任何可执行文件 tools/ 支持a list 子命令已加载。
  • 重复工具名称检测,错误报告清晰。
  • 使用JSON-RPC错误代码的结构化错误响应。
  • 从工具执行中稳健地捕获stdout/stderr/exit代码。
  • 使用以下工具验证JSON输出 jq 为了正确。
  • 将活动记录到 /tmp/mcp_server.log.
  • 与MCP协议版本兼容 2025-06-18.

使用

修改您的MCP JSON。

  1. 对于JetBrains IDE:
  2. 在CoPilot聊天中,选择代理模式,然后单击“设置”齿轮图标。
  3. 单击“添加更多工具…”
  4. 对于VS代码:
  5. 打开命令面板,搜索“MCP:添加服务器…”。
  6. 选择“命令(stdio)”。
  7. 选择bash_mcp.sh的完整路径。
  8. 对于Visual Studio:
  9. 点击打开顶部菜单“查看”下拉菜单,然后点击“GitHub Copilot聊天”。
  10. 在“GitHub Copilot Chat”窗格的底部提示框中,单击扳手图标。
  11. 在右上角的“选择工具”模式弹出窗口中,单击“+”按钮。
  12. 在“配置MCP服务器”窗口中,填写:
  13. 目的地:确保 Global ... 已选择(默认)
  14. 服务器ID:输入 team
  15. 类型:确保 stdio 已选择(默认)
  16. 命令(带可选参数):enter```sh
    "C:\Program Files\Git\bin\bash.exe" "/full/path/to/bash_mcp.sh"
**例子:** Windows样式路径的转换 `C:\Users\MyName\bash_mcp\bash_mcp.sh` 转换为MinGW目录样式: `/c/Users/MyName/bash_mcp/bash_mcp.sh`
1. 点击 `Save`.

确保 `&quot;servers&quot;` JSON数组包含如下条目:```json
{
&quot;name&quot;: &quot;team&quot;,
&quot;command&quot;: [&quot;/full/path/to/bash_mcp.sh&quot;],
&quot;args&quot;: []
}
  • 注: 除了在Windows中,shebang.sh脚本需要显式bash:```
    ...
    "command": "C:\Program Files\Git\bin\bash.exe",
    "args": [
    "/full/path/to/bash_mcp.sh"
    ],
    ...

然后,在代理模式下,从CoPilot聊天中检查设置齿轮图标是否显示“团队”服务器已连接
可用工具。

______________________________________________________________________

## 缺少功能

- 没有资源或提示支持(占位符返回空列表)。
- 文件系统更改时不热重新加载工具(TODO:需要发送工具更改通知)。

______________________________________________________________________

## 文件布局

- `bash_mcp.sh` –MCP服务器主循环和工具运行时。
- `tools/test.sh` –工具提供商实施示例 `echo` 和 `add`.
- `README.md` –本文件。
- (您可以向添加更多可执行文件 `tools/`).

______________________________________________________________________

## 协议摘要

服务器从stdin读取换行符分隔的JSON-RPC 2.0请求,并将响应写入stdout。

主 `method`s

- `initialize`
- `tools/list`
- `tools/call`

每个工具的名称 `N` 发现于 `tools/` 支持:

- `list` (列出支持的任何其他主要论点)
- `X args` (调用工具 `X` 使用JSON `arg`文件)
- **备注**:如果两个不同的可执行文件宣传同一个工具 `name`,服务器将拒绝 `tools/list` 并返回
复制错误。

还有一些方法返回占位符或空列表(例如,与资源和提示相关的方法)
为了满足MCP合规性:

- `notifications/initialized` (除日志记录外忽略)
- `resources/list` (返回空列表)
- `resources/templates/list` (返回空列表)
- `prompts/list` (返回空列表)

______________________________________________________________________

## 示例工具提供程序已包含(`tools/test.sh`)

`list` 输出(两个对象):```json
{ &quot;name&quot;: &quot;echo&quot;, &quot;title&quot;: &quot;Echo Tool&quot;, &quot;description&quot;: &quot;Echoes the input text.&quot;, &quot;inputSchema&quot;: { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;text&quot;: { &quot;type&quot;: &quot;string&quot; } }, &quot;required&quot;: [&quot;text&quot;] } }
{ &quot;name&quot;: &quot;add&quot;, &quot;title&quot;: &quot;Addition Tool&quot;, &quot;description&quot;: &quot;Adds two numbers.&quot;, &quot;inputSchema&quot;: { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;a&quot;: { &quot;type&quot;: &quot;number&quot; }, &quot;b&quot;: { &quot;type&quot;: &quot;number&quot; } }, &quot;required&quot;: [&quot;a&quot;,&quot;b&quot;] } }

直接运行工具:```bash
./tools/test.sh echo '{"text":"Hello"}'
./tools/test.sh add '{"a":4,"b":4}'


成功调用将返回MCP工具结果形状,例如:```json
{
&quot;jsonrpc&quot;: &quot;2.0&quot;,
&quot;result&quot;: {
&quot;content&quot;: [
{
&quot;type&quot;: &quot;text&quot;,
&quot;text&quot;: &quot;8&quot;
}
],
&quot;isError&quot;: false
},
&quot;id&quot;: 1
}

错误的请求示例(缺少参数):```json
{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Tool 'add' failed (exit 1): <>"
},
"id": 1
}


您还可以通过完整的MCP规范调用该工具:```bash
jq -cn &#x27;{
jsonrpc: &quot;2.0&quot;,
method: &quot;tools/call&quot;,
params: {
name: &quot;add&quot;,
arguments: {
a: 40,
b: 2
}
},
id: 1
}&#x27; | ./bash_mcp.sh

使用的错误代码:

  • -32700 解析错误(JSON行无效)
  • -32600 请求结构无效
  • -32601 找不到方法或工具
  • -32602 参数无效(JSON参数格式错误)
  • -32603 内部/工具执行/重复/工具JSON无效

日志记录

操作日志和stderr副本将附加到 /tmp/mcp_server.log。工具stderr也记录为级别1。


添加新工具

  1. 在中创建可执行文件 tools/ (脚本或二进制)并使其可执行(chmod +x).
  2. 实施a list 每个工具定义行打印一个JSON对象的子命令。
  3. 为每个广告实现一个子命令 name.
  4. 确保每次工具调用都将有效的JSON打印到stdout(工具结果)。非零退出代码会触发服务器错误包装。
  5. 必须在所有工具中使用唯一的工具名称 全部 /工具;重复项将被阻止 tools/list.

模板最小化工具:```bash

!/usr/bin/env bash

set -Eeuom pipefail
case "$1" in
list)
jq -cn '{name:"mytool",description:"Does X",inputSchema:{type:"object",properties:{},required:[]}}'
;;
mytool)
jq -cn '{content:[{type:"text",text:"done"}],isError:false}'
;;
*) echo '{"error":{"message":"Unknown"}}' ; exit 1 ;;
esac


______________________________________________________________________

## 重复工具处理

如果两个可执行文件通告相同 `name`, `tools/list` 返回错误:```
{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;error&quot;:{&quot;code&quot;:-32603,&quot;message&quot;:&quot;Duplicate tool names: name:fileNew,fileExisting&quot;},&quot;id&quot;:2}

通过重命名或删除一个定义进行修复。


开发说明

  • 用途 jq 广泛;确保已安装(brew install jq 在macOS上)。
  • 避免3.2不支持的抨击(例如,关联数组)。取而代之的是使用并行数组。
  • set -Eeuom pipefail 用于严格的错误处理。
  • JSON验证发生在接受工具输出之前。

未来改进(想法)

  • 文件系统更改时的热重新加载(inotify/polling)。
  • 可选资源和即时支持。
  • 限制工具输出大小,允许参数限制N个顶部/尾部结果。
  • 刀具执行超时控制。
  • 安全沙盒(二进制文件的chroot/seccomp)。

常见问题

5 问
答案由本站依据条目字段整理,不引用上游原文
bash MCP 怎么安装?

资料没有给出安装命令,请到官方仓库或文档按说明接入;这类条目多数是生态应用,或尚未发布可安装包。

bash MCP 怎么在客户端里配置?

它的传输方式未标注,在客户端 MCP 配置里按官方文档填写启动命令和参数,保存后重启客户端生效。

bash MCP 收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

bash MCP 需要 API Key 吗?

资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

bash MCP 能提供哪些能力?

资料显示能力标签包括 Shell、本地部署、JSON-RPC。具体工具清单以官方文档为准。

热门专题

按标签挑服务器
全部专题 →

服务器信息以作者仓库与官方文档为准;分类、传输方式与鉴权方式的中文说明为中文整理,最近核验 2026-05-17。