MCP 구성
모델 컨텍스트 프로토콜(MCP)을 사용하면 Sidian이 외부 도구 및 서비스에 연결하여 AI의 기능을 코드 편집 이상으로 확장할 수 있습니다. 이 가이드에서는 MCP 서버를 구성하고 관리하는 방법을 다룹니다.
MCP란 무엇인가요?
MCP는 AI 어시스턴트가 외부 도구 및 데이터 소스에 안전하게 연결할 수 있도록 하는 표준화된 프로토콜입니다:
기능
- 파일 시스템 작업
- Git 리포지토리 관리
- 데이터베이스 쿼리
- API 통합
- 메모리 및 컨텍스트 저장
이점
- 안전한 샌드박스 실행
- 표준화된 프로토콜
- 확장 가능한 아키텍처
- 커뮤니티 기반 서버
- 쉬운 구성
구성 위치
Sidian은 다음 위치에서 MCP 구성을 읽습니다:
구성 파일
- Windows:
C:\Users\{YourUsername}\.sidian\mcp.json
- macOS:
~/.sidian/mcp.json
- Linux:
~/.sidian/mcp.json
기본 구성
MCP 구성 파일은 다음 구조의 JSON 형식을 사용합니다:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/workspace"],
"env": {}
},
"git": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/your/git/repository"],
"env": {}
},
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": {}
}
}
}
인기 있는 MCP 서버
다음은 일반적으로 사용되는 몇 가지 MCP 서버와 그 구성입니다:
파일 시스템 서버
파일 읽기, 쓰기 및 관리를 위한 파일 시스템 접근을 제공합니다:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/workspace"],
"env": {}
}
}
}
Git 서버
Git 작업 및 리포지토리 관리를 활성화합니다:
json
{
"mcpServers": {
"git": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/your/git/repo"],
"env": {}
}
}
}
메모리 서버
AI 대화를 위한 영구 메모리를 제공합니다:
json
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": {}
}
}
}
데이터베이스 서버
쿼리 및 작업을 위해 데이터베이스에 연결합니다:
json
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "your-brave-api-key-here"
}
}
}
}
고급 구성
환경 변수
MCP 서버에 대한 환경 변수를 설정합니다:
json
{
"mcpServers": {
"custom-server": {
"command": "node",
"args": ["/path/to/custom-server.js"],
"env": {
"API_KEY": "your-api-key",
"DEBUG": "true",
"TIMEOUT": "30000"
}
}
}
}
서버 옵션
서버별 옵션을 구성합니다:
json
{
"mcpServers": {
"web-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-web"],
"options": {
"timeout": 30000,
"retries": 3,
"logLevel": "info"
}
}
}
}
조건부 구성
환경에 따라 다른 구성을 사용합니다:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
" "${SIDIAN_PROJECT_ROOT:-/default/path}""
]
}
}
}
보안 고려 사항
샌드박싱
- MCP 서버는 격리된 프로세스에서 실행됩니다
- 시스템 리소스에 대한 접근이 제한됩니다
- 구성 가능한 권한 경계
- 모든 작업에 대한 감사 로깅
접근 제어
- 허용된 디렉토리 및 파일 화이트리스트
- 네트워크 접근 제한
- 명령 실행 제한
- 리소스 사용량 모니터링
모범 사례
- 최소한의 필요한 권한 사용
- MCP 서버 패키지 정기적 업데이트
- 의심스러운 활동에 대한 서버 로그 모니터링
- 민감한 데이터에 환경 변수 사용
문제 해결
서버가 시작되지 않음
- Node.js가 설치되어 있고 접근 가능한지 확인
- 서버 패키지가 설치되었는지 확인:
npm list -g
- MCP 구성 파일 구문 확인
- 특정 오류 메시지에 대한 서버 로그 확인
- 터미널에서 서버 명령을 수동으로 실행해보기
권한 오류
- Sidian이 구성된 디렉토리에 대한 읽기/쓰기 권한이 있는지 확인
- 프로젝트 폴더의 파일 시스템 권한 확인
- 필요한 경우 Sidian을 관리자 권한으로 실행 (Windows)
- MCP 구성 파일이 읽기 가능한지 확인
서버가 계속 충돌함
- MCP 서버 패키지를 최신 버전으로 업데이트
- 충돌하는 Node.js 버전 확인
- 구성에서 타임아웃 값 증가
- 시스템 리소스(CPU, 메모리) 모니터링
- 오류 패턴에 대한 서버 로그 확인
성능 문제
- 활성 MCP 서버 수 줄이기
- 서버 구성 최적화
- 원격 서버 대신 로컬 서버 사용
- 원격 서버의 네트워크 지연 시간 모니터링
- 캐싱 전략 고려
사용자 정의 MCP 서버
사용자 정의 서버 만들기
특정 요구에 맞는 사용자 정의 MCP 서버를 만들 수 있습니다:
javascript
// custom-server.js
const { Server } = require('@modelcontextprotocol/sdk/server/index.js');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js');
const server = new Server({
name: 'custom-server',
version: '1.0.0'
});
// 여기에 사용자 정의 도구 및 리소스를 추가하세요
server.setRequestHandler('tools/list', async () => {
return {
tools: [
{
name: 'custom-tool',
description: 'A custom tool for specific operations',
inputSchema: {
type: 'object',
properties: {
input: { type: 'string' }
}
}
}
]
};
});
const transport = new StdioServerTransport();
server.connect(transport);
사용자 정의 서버 구성
json
{
"mcpServers": {
"custom": {
"command": "node",
"args": ["/path/to/custom-server.js"]
}
}
}
모니터링 및 로깅
서버 상태
Sidian에서 MCP 서버 상태를 모니터링합니다:
- 설정에서 서버 연결 상태 확인
- 출력 패널에서 서버 로그 보기
- 리소스 사용량 모니터링
- 오류율 및 성능 추적
디버깅
문제 해결을 위해 디버그 로깅을 활성화합니다:
json
{
"mcpServers": {
"debug-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"],
"env": {
"DEBUG": "*",
"LOG_LEVEL": "debug"
}
}
}
}
MCP 구성을 사용하면 Sidian의 AI 기능을 크게 확장할 수 있습니다. 기본 서버로 시작하여 필요에 따라 점차 더 복잡한 구성을 추가하세요.