구성MCP
MCP
Bob Shell은 Model Context Protocol (MCP)을 지원하여 외부 서비스 및 도구에 연결하여 Bob의 기능을 확장할 수 있습니다. 이 가이드는 Bob Shell에서 MCP 서버를 구성하고 사용하는 방법을 설명합니다.
MCP란?
MCP (Model Context Protocol) 서버는 Bob과 데이터베이스, API 또는 사용자 정의 스크립트와 같은 외부 서비스 간의 브리지 역할을 합니다. MCP를 사용하면 Bob의 기본 제공 기능을 넘어 기능을 확장할 수 있습니다.
MCP 서버는 Bob에게 다음을 제공합니다:
- 도구 검색: 설명 및 매개변수와 함께 사용 가능한 도구에 대한 액세스
- 도구 호출: 인수로 특정 도구를 호출하고 구조화된 응답을 받는 기능
- 리소스 액세스: 특정 리소스에서 데이터를 읽는 기능
MCP를 사용하는 이유는?
- 기능 확장: 기본 제공되지 않는 사용자 정의 기능을 Bob에 추가
- 서비스 통합: Bob을 데이터베이스, API 및 기타 시스템에 연결
- 워크플로우 자동화: 특정 요구 사항에 맞는 전문 도구 생성
- 기능 공유: 팀 전체에 유용한 도구 배포
MCP 서버 구성
두 가지 수준에서 MCP 서버 구성을 관리할 수 있습니다:
- 전역 구성:
<USER_HOME>/.bob/mcp_settings.json의 설정은 모든 작업 공간에 적용 - 프로젝트 수준 구성:
.bob/mcp.json의 설정은 현재 프로젝트에만 적용
서버 이름이 전역 및 프로젝트 구성 모두에 존재하는 경우 프로젝트 수준 구성이 우선합니다.
MCP 설정 파일 편집
Bob IDE 또는 다른 텍스트 편집기를 사용하여 MCP 설정 파일을 수정하세요.
다음 예제를 참조하세요:
{
"mcpServers": {
"server1": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"API_KEY": "your_api_key"
},
"alwaysAllow": ["tool1", "tool2"],
"disabled": false
}
}
}구성 속성
각 서버 구성에는 다음 속성 중 하나가 필요합니다:
command: Stdio 전송을 위한 실행 파일 경로url: 원격 서버를 위한 SSE 엔드포인트 URLhttpURL: 스트리밍 가능한 http를 위한 HTTP 엔드포인트 URL
선택적 속성은 다음과 같습니다:
args: Stdio 전송을 위한 명령줄 인수headers: SSE 전송을 위한 사용자 정의 HTTP 헤더env: 서버 프로세스를 위한 환경 변수cwd: Stdio 전송을 위한 작업 디렉토리timeout: 요청 시간 제한(밀리초) (기본값: 600,000ms; 10min)alwaysAllow: 자동으로 승인할 도구 이름. Bob Shell은mcp.json에서 이 항목을 읽어 각 작업 시작 시 적용하므로, 목록에 있는 도구는 승인을 요청하지 않습니다.disabled: 서버를 비활성화하려면true로 설정
전송 유형
MCP는 서버와 통신하는 두 가지 방법을 지원합니다:
STDIO 전송
STDIO 전송은 로컬 머신에서 서버를 실행합니다:
- 통신을 위해 표준 입력/출력 스트림 사용
- 더 낮은 지연 시간과 더 나은 보안 제공
- 머신에서 자식 프로세스로 실행
구성 예제:
{
"mcpServers": {
"local-server": {
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/project/Bob",
"env": {
"API_KEY": "your_api_key"
},
"alwaysAllow": ["tool1", "tool2"]
}
}
}SSE 전송
SSE 전송은 HTTP/HTTPS를 통해 원격 서버에 연결합니다:
- Server-Sent Events 프로토콜 사용
- 다른 머신에 호스팅된 서버와 작동
- 네트워크 액세스 필요
구성 예제:
{
"mcpServers": {
"remote-server": {
"url": "https://your-server-url.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"alwaysAllow": ["tool3"]
}
}
}Streamable HTTP 전송
Streamable HTTP 전송은 HTTP를 사용하여 원격 서버에 연결합니다:
- 양방향 HTTP 연결을 사용합니다
- 요청/응답 및 서버 푸시 메시지를 모두 지원합니다
- 다른 컴퓨터에 호스팅된 서버와 작동합니다
예시 구성:
{
"mcpServers": {
"remote-server": {
"httpURL": "https://your-server-url.com/mcp"
}
}
}플랫폼별 예제
Windows 구성
{
"mcpServers": {
"puppeteer": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}macOS 및 Linux 구성
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}런타임 버전 관리자 구성
{
"mcpServers": {
"mcp-batchit": {
"command": "mise",
"args": [
"x",
"--",
"node",
"/Users/myself/workspace/mcp-batchit/build/index.js"
],
"alwaysAllow": [
"search",
"batch_execute"
]
}
}
}이 주제는 어떤가요?