MM

muthuishere/mcp-server-bash-sdk

Analytics & monitoring

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

516 stars 49 forks 품질 67 트렌드 28MIT

MCP 서버 SDK/예제는 전적으로 bash로 구현됨 — POSIX 셸 외에는 런타임 의존성이 없는 모델 컨텍스트 프로토콜 서버를 구축합니다.

개요

순수 Bash로 구현된 모델 컨텍스트 프로토콜(MCP) 서버의 경량, 무오버헤드 구현. 대부분의 MCP 서버는 스키마 변환이 가능한 API 래퍼입니다. 이 구현은 Node.js, Python 또는 기타 무용량 런타임에 대한 무오버헤드 대안을 제공합니다. * ✅ 표준 프로토콜을 통한 완전한 JSON-RPC 2.0 프로토콜 * ✅ 완전한 MCP 프로토콜 구현 * ✅ 함수 명명 규칙을 통한 동적 도구 탐색 * ✅ JSON 파일을 통한 외부 구성 * ✅ 맞춤형 도구로 확장하기 쉽다 - Bash shell - JSON 처리용 jq (macOS에서 jq 설치 추출) - : JSON-RPC 및 MCP 프로토콜 처리 - : 비즈니스 로직 함수 포함 - : JSON 구성 파일 MCP 서버용 도구 기능을 구현할 때는 다음 지침을 따르세요: 1. : 모든 도구 함수는 tool_ 접두사로 붙이고, tools_list.json에서 정의된 동일한 이름을 붙여야 합니다. 2. : 각 함수는 JSON 인자를 포함하는 단일 매개변수 $1을 수용해야 합니다. 3. : 성공적인 연산을 위해서는 결과를 에코링하고 0 4를 반환하세요.

개요(AI 번역)

순수 Bash로 된 모델 컨텍스트 프로토콜(MCP) 서버의 경량, 무오버헤드 구현 — 현재 2026-07-28 개정판을 목표로 합니다.

📖 문서 사이트 · 🧩 예시 · 🧠 아키텍처 결정 · 🔬 스파이크

왜? 대부분의 MCP 서버는 스키마 변환이 가능한 API 래퍼일 뿐입니다. 이 구현은 Node.js, Python 또는 기타 무거운 런타임에 대한 무오버헤드 대안을 제공합니다.

왜 지금인가요? 2026-07-28 개정판으로 MCP는 상태 없음으로 변경되었습니다: initialize 핸드셰이크, 세션, 서버 시작 요청 금지. 한 줄은 들어오고, 한 줄은 나오는데 — 이는 셸 리드 루프의 형태와 정확히 일치합니다. Bash는 어색한 맞춤에서 자연스러운 맞춤으로 바뀌었습니다.


📋 특징

  • ✅ MCP 2026-07-28 — 비상태 요청별 버전 협상
  • ✅ **두 표준 전송 모두 **: stdio와 Streamable HTTP, 동일한 서버 파일에서 전송됩니다
  • ✅ server/discover, tools/list, tools/call
  • ✅ 함수 명명 규칙을 통한 동적 도구 발견
  • ✅ JSON 파일을 통한 외부 구성
  • ✅ 출력은 공식 발표된 JSON 스키마와 대조하여 검증됨

🔧 요구 사항

  • Bash 3.2 또는 그 이후 버전(macOS에서 /bin/bash로 3.2를 출시)

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

🐚 MCP Server in Bash

A lightweight, zero-overhead implementation of the Model Context Protocol (MCP) server in pure Bash — targeting the current 2026-07-28 revision.

📖 Documentation site · 🧩 Examples · 🧠 Architecture decisions · 🔬 Spikes

Why? Most MCP servers are just API wrappers with schema conversion. This implementation provides a zero-overhead alternative to Node.js, Python, or other heavy runtimes.

Why now? The 2026-07-28 revision made MCP stateless: no initialize handshake, no sessions, no server-initiated requests. One line in, one line out — which is exactly the shape of a shell read loop. Bash went from an awkward fit to a natural one.


📋 Features

  • ✅ MCP 2026-07-28 — stateless, per-request version negotiation
  • ✅ Both standard transports: stdio and Streamable HTTP, from the same server file
  • ✅ server/discover, tools/list, tools/call
  • ✅ Dynamic tool discovery via function naming convention
  • ✅ External configuration via JSON files
  • ✅ Output validated against the official published JSON Schema

🔧 Requirements

  • Bash 3.2 or newer (3.2 is what macOS ships as /bin/bash)
  • jq for JSON processing (brew install jq / apt install jq / apk add jq)
  • (HTTP transport only) socat preferred, or netcat — see the note under Transports
  • (optional) Python with jsonschema, only to run the schema conformance test

Supported platforms

Verified by running the real test suites on each, not by inspection — ./scripts/test-linux.sh all reproduces the Linux rows on any machine with Docker.

Platform Shell Unit HTTP
macOS bash 3.2 (/bin/bash) and 5.x 31/31 19/19
Debian / Ubuntu bash 5.2 31/31 19/19
Alpine (musl + busybox) bash 5.3 31/31 19/19

Docker is needed only to verify other platforms — never to run a server.


🚀 Quick Start

  1. Clone the repo
git clone https://github.com/muthuishere/mcp-server-bash-sdk
cd mcp-server-bash-sdk
  1. Make scripts executable
chmod +x mcpserver_core.sh moviemcpserver.sh
GitHub에서 전체 README 보기

설치

This server does not publish a one-line install command.

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →