Model Context Protocol(MCP)는 애플리케이션과 AI 모델 간의 양방향 연결을 표준화한 오픈 프로토콜입니다. MCP 서버는 데이터 소스나 외부 도구를 AI 모델에 안전하게 노출시키는 역할을 하며, 이를 통해 LLM(대형 언어 모델)이 실시간으로 애플리케이션 기능을 호출하거나 추가 정보를 참조할 수 있도록 합니다 AnthropicIBM.
아키텍처
MCP는 클라이언트-서버 구조를 따릅니다.
MCP 서버: 조직 내 데이터베이스, 파일 시스템, API 엔드포인트 등 다양한 리소스를 “프리미티브” 형태로 노출
MCP 클라이언트: AI 애플리케이션(예: Claude Desktop, OpenAI Agents SDK)이 서버에 연결하여 프리미티브를 호출
이 구조를 통해 호스트 애플리케이션 한 곳에서 여러 서버에 동시 연결하거나, 반대로 여러 클라이언트가 동일한 서버를 사용할 수 있습니다 Anthropic.
MCP 서버의 주요 프리미티브
MCP 서버는 언어 모델과의 상호작용을 지원하기 위해 세 가지 기본 프리미티브를 제공합니다 modelcontextprotocol.io:
Prompts: 사용자 제어 인터페이스로서, 슬래시 커맨드나 메뉴 옵션 같은 방식으로 모델에게 명시적 지침을 전달
Resources: 클라이언트가 관리하는 구조화된 데이터(파일 내용, Git 히스토리 등)를 컨텍스트로 첨부
Tools: 언어 모델이 API 호출, 파일 쓰기 등의 행동을 직접 실행할 수 있도록 하는 실행 함수
구현 및 SDK
MCP 서버 구현체는 GitHub 리포지토리(modelcontextprotocol/servers)에 다양한 언어별 SDK와 예제 서버가 공개되어 있습니다 GitHub.
언어 지원: Python, TypeScript, C#, Java, Kotlin, Go, Rust 등
참고 구현: Slack, GitHub, Postgres, Stripe, Google Drive, Puppeteer 등 수십여 개 시스템용 레퍼런스 서버
개발자는 이 SDK를 활용해 자체 시스템과 MCP 서버를 빠르게 연동할 수 있습니다.
활용 및 이점
보안 강화: MCP는 권한 관리와 사용자 동의 절차를 내장하여, AI 모델이 민감 데이터를 오용하지 않도록 제어
확장성: 새로운 서버 구현을 추가하면, 동일한 클라이언트 코드로 다양한 데이터 소스에 접근 가능
생산성 향상: AI 챗봇이 내부 서비스, 문서, 데이터베이스를 직접 조회·수정하므로, 별도 커스텀 통합 작업 최소화
이처럼 MCP 서버는 AI 애플리케이션 개발 시 반복적인 통합 작업을 줄이고, 표준화된 방식으로 도구와 데이터를 제공함으로써 에이전트 기반 애플리케이션의 확장성과 보안을 동시에 높여줍니다.
MCP 서버 대표적인 종류
1. Reference Servers
Everything: 프롬프트, 리소스, 툴을 종합적으로 테스트할 수 있는 샘플 서버
Fetch: 웹 콘텐츠를 가져와서 마크다운으로 변환
Filesystem: 안전한 파일 읽기·쓰기 조작
Git: 로컬 및 원격 Git 리포지토리 조회·검색·조작
Memory: 지식 그래프 기반의 영구 메모리 시스템
Time: 시간대 변환 및 시간 관련 툴 제공 GitHub
2. Archived Popular Servers
GitHub: 저장소 관리, 이슈·PR 조회, 파일 조작
Google Drive: 드라이브 파일 검색·다운로드
PostgreSQL: 데이터베이스 스키마 검사 및 읽기 전용 쿼리
Redis: 키-값 저장소 CRUD
Slack: 채널 메시지 조회·전송
Puppeteer: 브라우저 자동화 및 웹 스크래핑
Sentry: 에러 로그 및 이슈 조회 GitHub
3. Official Integrations
ActionKit by Paragon: 130개 이상의 SaaS(Slack, Salesforce, Gmail 등) 통합
Adfin: 결제·송장·회계 리컨실리에이션 서비스
Algolia: 검색 인덱스 프로비저닝 및 쿼리
Aiven: PostgreSQL, Apache Kafka, ClickHouse, OpenSearch 등 클라우드 데이터 서비스 관리 GitHub
4. 최신·특화 서버
AWS Price List: AWS 제품 가격·가용성 정보를 실시간으로 제공 Amazon Web Services, Inc.
Microsoft 365: Teams, SharePoint, OneDrive, Outlook 등 전반적인 M365 서비스 관리 GitHub
Kubernetes: 클러스터, 파드, 디플로이먼트 조회 및 관리 GitHub
OKX-MCP-Server: 암호화폐 시세, 계좌 내역, 거래 지시 기능
MCP Server 자세한 예시
PostgreSQL MCP 서버는 LLM(대형 언어 모델)에 읽기 전용으로 데이터베이스를 안전하게 노출하고, 애플리케이션이 데이터베이스 스키마를 자동으로 조사하며 SQL 쿼리를 실행할 수 있도록 해 주는 MCP(Server) 구현체입니다 modelcontextprotocol.ioMCP.so.
1. 주요 특징
읽기 전용 트랜잭션
모든 SQL 쿼리는BEGIN TRANSACTION READ ONLY; … COMMIT;형태로 실행되어, 데이터 변경이 불가능합니다 MCP.so.스키마 자동 발견
서버가 시작될 때information_schema.tables및information_schema.columns등을 조회해 데이터베이스 내 모든 테이블과 컬럼 메타데이터를 메모리에 로드합니다 MCP.so.MCP 표준 준수
Tools: 모델이 호출할 수 있는 함수 집합
Resources: 모델이 참조할 수 있는 구조화된 컨텍스트 자료
2. 제공되는 Tools 및 Resources
구분 | 이름 | 설명 |
|---|---|---|
Tool |
| 인수로 받은 SQL 문자열을 읽기 전용 트랜잭션 내에서 실행하고 결과를 반환합니다. |
Resource |
| 각 테이블의 컬럼 이름, 데이터 타입, NULL 허용 여부 등을 담은 JSON 스키마를 제공합니다. |
query 툴 사용 예시:
json복사편집{ "tool": "query", "sql": "SELECT id, name FROM users WHERE active = true;" }schema 리소스 호출 예시:
swift복사편집GET /mcp/resources/postgres/users/schema → { "columns": [ { "name": "id", "type": "integer", "nullable": false }, { "name": "name", "type": "text", "nullable": false }, … ] }
3. 내부 동작 방식
초기 연결 및 메타데이터 로드
서버 구동 시 환경 변수나 명령줄 인자로 받은 커넥션 스트링(
postgresql://…)로 DB에 접속information_schema를 조회하여 스키마 정보를 캐시
쿼리 실행
각
query호출마다 새로운 READ ONLY 트랜잭션을 열어 쿼리를 실행서버 측에서 타임아웃, 최대 반환 행 수 등을 설정하여 과도한 리소스 사용 방지
MCP 입력/출력
stdio 또는 SSE 방식으로 MCP 메시지를 주고받으며, JSON RPC 형태로 Tools와 Resources 프리미티브를 노출
이 과정을 통해 모델은 안전하게 대규모 DB를 탐색하고, 복잡한 분석 쿼리를 실행해 결과를 얻을 수 있습니다 MCP.soAnthropic.
4. 설정 및 활용 예시
json복사편집{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:pass@db-host:5432/mydatabase"
]
}
}
}
Claude Desktop 등 MCP 클라이언트에 위 설정을 추가하면,
“users 테이블 구조를 보여줘.”
“최근 10건의 주문 정보를 가져와.”
같은 자연어 질의만으로 스키마 검사 및 SQL 실행이 가능합니다 MCP.so.
5. 보안 및 권장 사항
DB 사용자 계정에는 SELECT 권한만 부여하세요.
네트워크 레벨 방화벽을 통해 MCP 서버 엔드포인트 접근을 제어하세요.
쿼리 타임아웃, 최대 반환 행 수 등 서버 설정을 통해 잠재적 DoS 공격을 완화하세요.
이처럼 PostgreSQL MCP 서버는 안전한 읽기 전용 접속, 자동화된 스키마 노출, 표준화된 MCP 인터페이스를 통해 LLM 기반 애플리케이션의 데이터 활용을 간소화합니다.
1. MariaDB MCP Server 개요
프로젝트명: MCP MariaDB Server
제공사/저자: MariaDB 재단 및 커뮤니티(해커톤 프로젝트에서 시작)
기능:
2. 주요 특징
READ ONLY 트랜잭션
모든 쿼리는 내부적으로
BEGIN TRANSACTION READ ONLY; … COMMIT;형태로 실행되어 데이터 변경 불가 MCP Market
스키마 자동 로드
시작 시
information_schema.tables및information_schema.columns등을 조회해 메모리에 캐시
벡터 검색 지원
전통적인 SQL 외에도, 텍스트 임베딩을 저장·조회하는 벡터·임베딩 컬렉션 기능 내장
MCP 표준 준수
Tools:
query_database,vector_search등 호출 가능Resources:
/mcp/resources/mariadb/<table>/schema형태로 스키마 JSON 제공 MariaDB
3. 설치 및 실행 예시
bash복사편집# npm 패키지 사용 예시
npx @mariadb/mcp-server \
"mariadb://mcp_user:비밀번호@db-host:3306/mydatabase"
위 명령어로 서버를 기동하면, CLI 또는 MCP 클라이언트에서 자연어로
“users 테이블 스키마 보여줘”
“지난 한 달간 매출 합계 조회해”
같은 요청을 할 수 있습니다.
4. 활용 시나리오
RAG 시스템: 기존 MariaDB에 저장된 문서·로그를 벡터로 임베딩하여 semantic 검색
AI 비서: MariaDB 기반 ERP·CRM 데이터를 자연어 질의로 조회
데이터 분석: LLM이 복잡한 집계(SQL)를 생성·실행하여 보고서 자동화
MariaDB MCP 서버를 도입하면, 기존 MariaDB 데이터를 안전하게 노출하며 LLM 기반 애플리케이션과 원활하게 통합할 수 있습니다. 설치 후에는 앞서 설명한 권한 설정(읽기 전용 사용자)만 해 두시면 바로 활용 가능합니다.