Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
4ad5ab8
Initial commit
yexuanyang May 27, 2025
9730357
WIP: BashServer using Streamable Http connection with MCP Authorization
yexuanyang Jul 3, 2025
8fb7a3e
WIP: Streamable http and oauth bash_server
yexuanyang Jul 3, 2025
1e34034
Change endpoints from /oauth/xx to /xx and use new StreamableHttpService
yexuanyang Jul 3, 2025
c93a091
WIP: Add powershell and script execution capability
yexuanyang Jul 3, 2025
7065185
Set the BIND_ADDRESS from environment variable
yexuanyang Jul 3, 2025
66d4794
Change the description of bash server
yexuanyang Jul 3, 2025
032c1fe
Use config.toml to set the host and port
yexuanyang Jun 27, 2025
cd8f0c6
Clippy fix
yexuanyang Jun 27, 2025
3b740fd
Separate development and production environments and add some preset
yexuanyang Jun 27, 2025
f0daf56
Add all preset tools in unix os observation
yexuanyang Jun 28, 2025
c42f085
Add blacklist for commands and symbols
yexuanyang Jun 28, 2025
a3bc720
Add logs to trace the execution of script or command
yexuanyang Jul 1, 2025
0f410e5
Merge pull request #2 from yexuanyang/dev
yexuanyang Jul 3, 2025
dc4af38
Add 'mcp-servers/mcp-bash-server/' from commit '0f410e5fad6f5b37f9d16…
yexuanyang Jul 4, 2025
05273cb
Add README.md in `mcp-servers` directory
yexuanyang Jul 4, 2025
77eb3e3
Merge branch 'master' into master
Calvin979 Jul 4, 2025
e68e5be
Merge branch 'master' into master
Aias00 Jul 10, 2025
6756b44
Merge branch 'master' into master
yuluo-yx Jul 12, 2025
114fe4c
Update doc comments and use the new version of rust-sdk
yexuanyang Jul 22, 2025
98b66c4
Merge branch 'apache:master' into master
yexuanyang Jul 22, 2025
3d7b20e
Merge branch 'master' of github.com:yexuanyang/hertzbeat
yexuanyang Jul 22, 2025
a654ef0
Validator supports whitelist verification
yexuanyang Jul 22, 2025
0266a15
Add unit tests for MCP Bash Server
yexuanyang Jul 24, 2025
58e7588
Update README.md
yexuanyang Jul 28, 2025
712b2a1
refactor: update blacklist/whitelist config and simplify examples
yexuanyang Jul 28, 2025
0e5d5c5
feat: enhance OAuth server, add Docker support, and improve documenta…
yexuanyang Jul 28, 2025
81fa007
Merge branch 'master' into master
Aias00 Jul 30, 2025
816b401
Update the image name in README.md and add apache.org license in Dock…
yexuanyang Jul 30, 2025
5039ba6
Merge branch 'master' into master
Aias00 Jul 31, 2025
fbd3098
[refactor] format and refactor code in bash_server.rs and oauth.rs
yexuanyang Jul 31, 2025
93afa13
[cleanup] Removed some files that are not related to the project
yexuanyang Jul 31, 2025
2e87608
[doc] Add apache license
yexuanyang Jul 31, 2025
c8b1a03
[refactor] Let some tools can be compiled and run in windows
yexuanyang Aug 2, 2025
3d6349c
Merge branch 'apache:master' into master
yexuanyang Aug 7, 2025
cea3d99
[feature] Update crate rmcp to version `0.4.0`
yexuanyang Aug 7, 2025
c09d96c
Merge branch 'master' into master
Aias00 Aug 17, 2025
fad33d5
[doc] Add license header in config.toml and mcp_oauth_index.html
yexuanyang Aug 17, 2025
ac6f094
[doc] Add license header in mcp_oauth_authorize.html
yexuanyang Aug 17, 2025
0da243b
Apply suggestion from @yexuanyang
Aias00 Aug 19, 2025
abd2fab
Apply suggestion from @yexuanyang
Aias00 Aug 19, 2025
33b36aa
[refactor] Validate &str instead of Vec<&OsStr>
yexuanyang Aug 19, 2025
e505e4e
Merge branch 'master' into master
Aias00 Aug 20, 2025
ab13da7
Merge branch 'master' into master
Aias00 Aug 31, 2025
d597f86
[ci] Add ci test for mcp bashserver
yexuanyang Sep 1, 2025
33944db
[fix] Fix error in unix_execute_script
yexuanyang Sep 1, 2025
78fffb4
[feature] Use shlex to split and build a command from string
yexuanyang Sep 1, 2025
88db929
[format] pass `cargo clippy --all-targets`
yexuanyang Sep 1, 2025
f058fc8
[fix] Add header license in mcp-bashserver-test.yml
yexuanyang Sep 1, 2025
08d96a1
Merge branch 'master' into master
Aias00 Sep 2, 2025
9a3b6d6
Merge branch 'master' into master
Aias00 Sep 2, 2025
7b235a2
Merge branch 'master' into master
Aias00 Sep 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/mcp-bashserver-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: MCP Bash Server CI

on:
push:
paths:
- 'mcp-servers/mcp-bash-server/**'
- '.github/workflows/mcp-bashserver-test.yml'
pull_request:
paths:
- 'mcp-servers/mcp-bash-server/**'
- '.github/workflows/mcp-bashserver-test.yml'

env:
CARGO_TERM_COLOR: always
RUST_VERSION: 1.88.0

jobs:
test:
name: Test MCP Bash Server
runs-on: ubuntu-latest
strategy:
matrix:
profile: [dev, release]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-registry-

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target/
key: ${{ runner.os }}-cargo-build-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-build-${{ matrix.profile }}-
${{ runner.os }}-cargo-build-

- name: Check code format
run: cargo fmt --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml --check

- name: Run cargo check
run: |
if [ "${{ matrix.profile }}" = "release" ]; then
cargo check --release --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml
else
cargo check --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml
fi

- name: Run clippy
run: |
if [ "${{ matrix.profile }}" = "release" ]; then
cargo clippy --release --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml -- -D warnings
else
cargo clippy --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml -- -D warnings
fi

- name: Run tests
run: |
if [ "${{ matrix.profile }}" = "release" ]; then
cargo test --release --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml
else
cargo test --manifest-path ./mcp-servers/mcp-bash-server/Cargo.toml
fi
13 changes: 13 additions & 0 deletions mcp-servers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Introduction
This file has a short description of each mcp server in `mcp-servers` directory

# MCP servers

## mcp-bash-server

This mcp server provide the ability to execute shell command or ASCII text executable
script in the machine running this server.

Use a simple Oauth2.0 for authentication.


2 changes: 2 additions & 0 deletions mcp-servers/mcp-bash-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/target
logs/
Loading
Loading