Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
5.1 KiB
MCP 서버
MCP란?
Model Context Protocol(MCP)은 AI 모델이 외부 도구 및 데이터 소스와 상호 작용할 수 있게 하는 오픈 표준입니다. BoosApi은 MCP 클라이언트 역할을 합니다 — MCP 서버를 추가하면 AI가 대화 중에 해당 서버가 노출하는 도구를 호출할 수 있습니다.
전송 프로토콜
BoosApi은 MCP 서버와의 통신을 위해 3가지 전송 프로토콜을 지원합니다:
| 프로토콜 | 연결 | 사용 사례 | 구성 |
|---|---|---|---|
| Stdio | 로컬 프로세스 | npx, uvx, python 등으로 시작하는 머신에 설치된 도구 |
command + args + 선택적 env |
| SSE | 원격 서버 | 원격 머신이나 클라우드 서비스에서 호스팅되는 Server-Sent Events 엔드포인트 | url |
| StreamableHTTP | 원격 서버 | HTTP 스트리밍 엔드포인트(SSE의 새로운 대안) | url |
MCP 서버 추가
폼으로 만들기
- 설정 → MCP 서버로 이동합니다.
- MCP 서버 추가를 클릭합니다.
- 이름을 입력하고 전송 프로토콜을 선택합니다.
- 선택한 프로토콜의 필드를 입력합니다:
- Stdio — 실행할 명령, 인수(JSON 배열), 환경 변수(JSON 객체), 타임아웃.
- SSE — 엔드포인트 URL, 타임아웃.
- StreamableHTTP — 엔드포인트 URL, 타임아웃.
- 저장을 클릭합니다.
JSON 가져오기
JSON 가져오기를 클릭하고 구성 객체를 붙여넣습니다. BoosApi은 표준 MCP JSON 형식을 허용합니다:
Stdio 서버
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
SSE 서버
{
"mcpServers": {
"remote-tools": {
"type": "sse",
"url": "https://example.com/sse"
}
}
}
StreamableHTTP 서버
{
"mcpServers": {
"remote-http": {
"type": "streamablehttp",
"url": "https://example.com/mcp"
}
}
}
여러 서버 한 번에
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
},
"remote": {
"type": "sse",
"url": "https://example.com/sse"
}
}
}
구성 예시
웹 가져오기 — mcp-server-fetch
웹 페이지를 가져와 AI를 위한 읽기 쉬운 텍스트로 변환합니다.
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
파일 작업 — @modelcontextprotocol/server-filesystem
AI에게 머신의 특정 디렉토리에 대한 읽기/쓰기 액세스를 제공합니다.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/me/documents",
"/Users/me/projects"
]
}
}
}
원격 SSE 서버
Server-Sent Events를 통해 원격 도구 서버에 연결합니다.
{
"mcpServers": {
"cloud-tools": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
}
환경 변수가 있는 Stdio
환경 변수를 통해 API 키나 구성을 서버 프로세스에 전달합니다.
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["-m", "weather_server"],
"env": {
"WEATHER_API_KEY": "your-api-key"
}
}
}
}
내장 도구
BoosApi에는 외부 MCP 서버를 추가하지 않고도 사용 가능한 내장 도구가 포함되어 있습니다:
| 도구 | 설명 |
|---|---|
| @boosapi/fetch | 웹 페이지 및 HTTP 리소스 가져오기 |
| @boosapi/search-file | 로컬 파일 시스템에서 파일 검색 |
내장 도구는 사용자 지정 서버와 함께 MCP 서버 설정에 나열되며 개별적으로 활성화 또는 비활성화할 수 있습니다.
도구 실행 패널
AI가 대화 중에 MCP 도구를 호출하면 BoosApi은 채팅에 인라인으로 도구 실행 패널을 표시합니다. 패널에는 다음이 표시됩니다:
- 도구 이름과 해당 서버.
- 도구에 전송된 입력 인수.
- 도구에 의해 반환된 출력.
- 실행 상태(실행 중, 성공 또는 실패).
대화의 임의의 도구 호출을 클릭하여 세부 정보를 확장합니다. 이를 통해 AI가 무엇을 했는지 확인하고 예상치 못한 결과를 디버그하는 것이 쉬워집니다.
도구 루프 제한
Settings -> MCP에서 MCP-enabled response의 consecutive tool-call iterations 최대값을 설정할 수 있습니다. unknown servers를 테스트할 때는 낮추고, 여러 도구를 의도적으로 chaining하는 workflows에서는 높일 수 있습니다.