whistle-mcp
Whistle MCP Server
영어 | 中文
프로젝트 소개
Whistle MCP Server는 모델 컨텍스트 프로토콜(MCP)을 기반으로 하는 Whistle 프록시 관리 도구로, AI 어시스턴트가 로컬 Whistle 프록시 서버를 직접 조작하고 제어할 수 있게 해줍니다. 이 도구를 통해 AI는 사용자가 Whistle 인터페이스를 수동으로 조작할 필요 없이 규칙, 그룹, 값을 관리하고, 네트워크 요청을 모니터링하며, 요청을 재전송 및 수정하도록 도울 수 있습니다. 이는 네트워크 디버깅, API 테스트 및 프록시 규칙 관리 과정을 크게 단순화하여, 사용자가 AI와의 자연어 상호작용을 통해 복잡한 네트워크 프록시 구성 작업을 완료할 수 있도록 합니다.
Related MCP server: MCP Server
주요 기능
규칙 관리: Whistle 규칙 생성, 업데이트, 이름 변경, 삭제 및 활성화/비활성화
그룹 관리: 그룹 생성, 이름 변경, 삭제 및 규칙과 그룹 간의 작업 연결
값 관리: 값 생성, 업데이트, 이름 변경 및 삭제, 값 그룹 관리 지원
프록시 제어: 프록시 활성화/비활성화, HTTP/HTTPS 가로채기, HTTP/2 프로토콜 등 제어
요청 가로채기: URL 필터링을 지원하는 가로채기된 네트워크 요청 정보 보기
요청 재전송: 사용자 지정 요청 매개변수를 사용하여 캡처된 요청 재전송 지원
다중 규칙 모드: 다중 규칙 모드 활성화/비활성화 지원
설치
요구 사항
Node.js 18.20.0 이상이 필요합니다 (package.json의 engines 참조). 이전 버전은 지원되지 않습니다.
Smithery를 통한 설치
Smithery를 통해 Claude Desktop용 Whistle MCP Server를 자동으로 설치하려면:
npx -y @smithery/cli install @7gugu/whistle-mcp --client claude수동 설치
npm을 통해 Whistle MCP Server를 전역으로 설치할 수 있습니다:
npm install -g whistle-mcp-tool소스에서 빌드
저장소 루트에서:
npm install
npm run build빌드 출력 항목은 **dist/index.js**입니다(전역 설치 후 whistle-mcp CLI에서 사용하는 파일과 동일). node와 dist/index.js 경로를 사용하여 MCP 구성에서 이를 가리킬 수도 있습니다.
MCP 구성
전송 방식 (stdio vs HTTP)
기본적으로 서버는 **stdio**를 사용합니다(Cursor와 같은 로컬 MCP 클라이언트에 적합).
동일한 프로세스에서 Streamable HTTP 및 SSE를 노출하려면(원격 또는 HTTP 지원 클라이언트의 경우) **--transport http-stream**을 사용하세요. FastMCP는 --mcp-host / **--mcp-port**에서 수신 대기하며 다음을 제공합니다:
Streamable HTTP:
http://<mcp-host>:<mcp-port><mcp-endpoint>(기본 경로/mcp)SSE:
http://<mcp-host>:<mcp-port>/sse
http-stream의 별칭: sse, streamable-http (동일 모드; 두 URL 모두 사용 가능).
플래그 / 환경 변수 | 의미 |
|
|
| MCP HTTP 포트 (HTTP 전송 사용 시 기본값 8085) |
| 바인딩 주소 (기본값 0.0.0.0) |
| Streamable HTTP 경로 (기본값 |
| 상태 비저장 HTTP 모드 (선택 사항) |
Whistle 연결 옵션은 변경되지 않습니다: --host, --port, --username / --password (또는 -n / -w).
예시 (HTTP 전송 + 8899 포트의 로컬 Whistle; MCP는 기본적으로 8085에서 수신 대기):
whistle-mcp --transport http-stream --host 127.0.0.1 --port 8899기본값 8085를 재정의하려면 --mcp-port <port>를 사용하세요.
설치 후 MCP JSON 구성 파일에서 Whistle MCP를 구성할 수 있습니다:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=<whistle server IP address>",
"--port=<whistle server port number>"
]
}
}
}기본 인증을 사용하여 Whistle을 시작한 경우(Whistle CLI와 동일한 플래그: w2 start -n <username> -w <password>), Whistle의 API에 대한 HTTP 요청이 성공하도록 이 MCP 서버에도 동일한 자격 증명을 전달하세요:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=localhost",
"--port=8899",
"--username=<username>",
"--password=<password>"
]
}
}
}단축 옵션(w2와 정렬됨): -n / -w는 --username / --password와 동일합니다.
whistle-mcp --host localhost --port 8899 -n myuser -w mypass구성 세부 정보
host: Whistle 서버 IP 주소; 생략 시
localhost로 기본 설정port: Whistle 서버 포트; 생략 시
8899로 기본 설정username (
-n/--username): Whistle이-n으로 시작되었을 때의 기본 인증 사용자 이름; Whistle에 로그인이 없는 경우 생략password (
-w/--password): Whistle이-w로 시작되었을 때의 기본 인증 비밀번호; 사용자 이름은 설정되었으나 비밀번호가 생략된 경우 빈 비밀번호가 전송됨
AI 클라이언트에서 MCP JSON 구성하기
Claude 클라이언트: https://modelcontextprotocol.io/quickstart/user
Raycast: MCP 플러그인 설치 필요
Cursor: https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers
MCP 도구 설명
Whistle MCP Server는 MCP 프로토콜을 통해 호출할 수 있는 다음 도구들을 제공합니다:
규칙 관리
도구 이름 | 설명 | 기능 |
getRules | 모든 규칙 가져오기 | 생성된 모든 규칙과 그 내용을 나열 |
createRule | 새 규칙 생성 | 지정된 이름으로 새 규칙 생성 |
updateRule | 규칙 내용 업데이트 | 지정된 규칙의 내용 수정 |
renameRule | 규칙 이름 변경 | 규칙의 이름을 새 이름으로 변경 |
deleteRule | 규칙 삭제 | 지정된 이름의 규칙 삭제 |
enableRule | 규칙 활성화 | 지정된 이름의 규칙 활성화 |
disableRule | 규칙 비활성화 | 지정된 이름의 규칙 비활성화 |
setAllRulesState | 모든 규칙 상태 설정 | 모든 규칙을 한 번에 활성화 또는 비활성화 |
그룹 관리
도구 이름 | 설명 | 기능 |
createGroup | 그룹 생성 | 지정된 이름으로 새 규칙 그룹 생성 |
renameGroup | 그룹 이름 변경 | 규칙 그룹의 이름을 새 이름으로 변경 |
deleteGroup | 그룹 삭제 | 지정된 이름의 규칙 그룹 삭제 |
addRuleToGroup | 규칙을 그룹에 추가 | 지정된 규칙을 특정 그룹에 추가 |
removeRuleFromGroup | 규칙을 그룹에서 제거 | 규칙을 그룹에서 제거하여 최상위 레벨로 이동 |
값 관리
도구 이름 | 설명 | 기능 |
getAllValues | 모든 값 가져오기 | 생성된 모든 값과 값 그룹 나열 (참고: 데이터가 클 수 있으므로 먼저 getValueList 사용 고려) |
getValueList | 값 목록 가져오기 | 인덱스와 이름만 포함된 값 목록 가져오기 (큰 페이로드를 피하기 위해 데이터 필드 제외) |
getValue | 단일 값 가져오기 | 이름으로 단일 값의 전체 정보 가져오기 (데이터 필드 포함) |
createValue | 새 값 생성 | 지정된 이름으로 새 값 생성 |
updateValue | 값 내용 업데이트 | 지정된 값의 내용 수정 |
renameValue | 값 이름 변경 | 값의 이름을 새 이름으로 변경 |
deleteValue | 값 삭제 | 지정된 이름의 값 삭제 |
createValuesGroup | 값 그룹 생성 | 지정된 이름으로 새 값 그룹 생성 |
renameValueGroup | 값 그룹 이름 변경 | 값 그룹의 이름을 새 이름으로 변경 |
deleteValueGroup | 값 그룹 삭제 | 지정된 이름의 값 그룹 삭제 |
addValueToGroup | 값을 그룹에 추가 | 지정된 값을 특정 그룹에 추가 |
removeValueFromGroup | 값을 그룹에서 제거 | 값을 그룹에서 제거하여 최상위 레벨로 이동 |
프록시 제어
도구 이름 | 설명 | 기능 |
getWhistleStatus | 서버 상태 가져오기 | Whistle 서버의 현재 상태 정보 가져오기 |
toggleProxy | 프록시 활성화/비활성화 | Whistle 프록시의 활성화 상태 전환 |
toggleHttpInterception | HTTP 가로채기 활성화/비활성화 | HTTP 요청 가로채기의 활성화 상태 전환 |
toggleHttpsInterception | HTTPS 가로채기 활성화/비활성화 | HTTPS 요청 가로채기의 활성화 상태 전환 |
toggleHttp2 | HTTP2 활성화/비활성화 | HTTP/2 프로토콜 지원의 활성화 상태 전환 |
toggleMultiRuleMode | 다중 규칙 모드 활성화/비활성화 | 여러 규칙을 동시에 활성화할 수 있는지 여부 전환 |
요청 관리
도구 이름 | 설명 | 기능 |
getInterceptInfo | 가로채기 정보 가져오기 | URL 필터링 및 정규식 지원을 통해 Whistle이 가로챈 네트워크 요청 정보 가져오기 |
replayRequest | 요청 재전송 | 사용자 지정 가능한 매개변수를 사용하여 지정된 네트워크 요청 재전송 |
유틸리티
도구 이름 | 설명 | 기능 |
getCurrentTimestamp | 현재 타임스탬프 가져오기 | 현재 로컬 타임스탬프 가져오기 |
연락처 정보
이메일: gz7gugu@qq.com
블로그: https://7gugu.com
Maintenance
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/7gugu/whistle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server