그림: MCP 도입 전(왼쪽)과 도입 후(오른쪽) 비교. 표준이 없으면 각 AI 모델이 Slack, Google Drive, GitHub 등 도구마다 각각 고유한 방식(Unique API)으로 연결해야 합니다. MCP를 도입하면 하나의 표준화된 인터페이스(MCP)를 통해 여러 도구에 접속할 수 있어 통합이 훨씬 간단해집니다.
인공지능 챗봇이나 비서로 불리는 **대형 언어 모델(LLM)**들은 똑똑하지만, 종종 외부 세계와 단절되어 있다는 한계를 갖고 있습니다. 쉽게 말해 아무리 똑똑한 AI라도, 인터넷이나 회사 내부 데이터베이스 등 필요한 데이터에 직접 접근하지 못하면 한계가 있을 수밖에 없습니다. 예를 들어 현재의 AI에게 "우리 회사 판매 데이터로 그래프를 그려줘"라고 하면, AI는 그 데이터에 직접 접근할 방법이 없어 곤란해지는 식입니다. 이 때문에 AI를 외부 도구나 데이터 소스와 연결하려는 시도가 예전부터 많았습니다. 하지만 기존 방식은 각 AI와 각 도구를 일일이 커스텀 코드로 이어 붙이는 작업이었고, 새로운 도구를 붙일 때마다 매번 복잡한 개발이 필요했습니다. 마치 예전에 프린터, 키보드마다 다른 케이블을 써야 했던 것처럼, AI와 도구 사이에도 제각기 다른 “규격”들이 난립했던 셈입니다.
Anthropic이 제안한 **MCP(Model Context Protocol)**는 이러한 문제를 해결하기 위해 등장한 공개 표준 프로토콜입니다
. 한 마디로 **“AI용 USB-C 포트”**라고 비유할 수 있습니다. USB-C가 다양한 기기를 하나의 통일된 포트로 연결해주듯이, MCP는 AI 애플리케이션과 각종 외부 시스템을 하나의 통일된 방식으로 이어주는 규격입니다. 이를 통해 AI와 도구를 연결하는 방식을 표준화하여 중복 작업을 줄이고, 서로 다른 시스템 간 연동을 더 쉽게 만들 수 있습니다. 예를 들어 3개의 AI 앱과 3개의 도구를 연동해야 한다면, MCP 없이 각각 연결하려면 3×3, 즉 9개의 별도 연동을 만들어야 합니다. 하지만 MCP를 도입하면 3+3, 즉 6개의 표준 연결만 구성하면 되죠. 이렇게 MCP는 AI와 도구 간 연결을 효율화하여, 더 나은 답변을 위해 AI가 필요한 데이터를 쉽게 가져다 쓸 수 있도록 돕습니다
AI 모델을 외부 도구와 연계하려는 흐름은 Anthropic만의 이야기가 아닙니다. 2023년부터 OpenAI의 ChatGPT도 플러그인이나 함수 호출 기능을 통해 외부 웹사이트 검색, 계산기 사용 등의 연동을 도모해왔습니다. 마이크로소프트 역시 Bing에 ChatGPT를 붙여 웹 검색 기능을 제공하는 등, 여러 기업들이 AI를 실용적으로 활용하기 위해 도구 연결을 연구하고 있습니다. 이런 가운데 Anthropic은 MCP를 2024년 11월에 공개하면서, 업계 표준으로 자리잡을 만한 접근법을 제시했습니다. 특히 Anthropic의 AI 비서 Claude에는 MCP 클라이언트 기능이 내장되어 있어, Claude를 활용하는 애플리케이션은 손쉽게 MCP 서버들과 연결할 수 있습니다. 예를 들어 Claude용 데스크톱 앱에서는 몇 클릭만으로 다양한 MCP 서버(구글 드라이브, 슬랙, 깃허브 등 커넥터)를 추가해 Claude가 해당 서비스의 정보를 가져오도록 할 수 있습니다
MCP가 공개되자 여러 개발 도구와 서비스들이 앞다투어 이를 지원하기 시작했습니다. 실제로 발표 직후에 GitHub의 코파일럿(Copilot), 개발용 IDE인 Cursor 등 다양한 도구들이 MCP 연동을 발표했습니다 . 또한 Zed 에디터, Replit, Codeium, Sourcegraph 같은 기업들도 자신들의 플랫폼에 MCP를 접목해, AI 비서가 코드 작업 시 맥락을 더 잘 파악하도록 개선하고 있습니다. 요약하면, AI 모델과 외부 시스템 연결은 업계의 거대한 흐름이며, MCP는 그중에서도 개방형 표준으로서 빠르게 주목받고 있는 방법입니다. 일부 전문가는 MCP가 사실상 2023-2025년 사이 “AI 에이전트 표준” 경쟁의 우승 후보가 될 정도로 모멘텀을 얻었다고 평가하기도 합니다
. 그만큼 여러 곳에서 MCP를 채택하거나 유사한 시도를 하면서, AI를 더 유용하게 만드는 실험들이 활발하게 이루어지고 있습니다.
MCP가 주목받는 이유는 여러 가지 장점을 갖고 있기 때문입니다. 우선 AI와 도구 연결의 표준화라는 가장 큰 이점이 있습니다. 개발자 입장에서는 새로운 AI 서비스가 나오더라도 MCP 규격에 맞춰 한 번만 연결해두면 여러 곳에서 재사용할 수 있으니 개발 생산성이 높아집니다 . 또한 코드 구현이 일관되게 되므로 서비스 안정성과 유지보수성도 좋아집니다. 사용자의 입장에서도, 다양한 애플리케이션에서 AI 기능을 사용할 때 경험이 일관되게 이어질 가능성이 높아집니다.
두 번째로, 특정 AI 모델이나 벤더에 종속되지 않는 유연성입니다. MCP 자체는 어느 한 AI 모델 전용이 아니라 여러 종류의 LLM을 아우르는 범용 프로토콜입니다. 예를 들어 Anthropic의 Claude는 물론, OpenAI의 GPT계열, 혹은 오픈소스 LLM까지도 MCP 규격만 맞추면 연결해 활용할 수 있습니다. 실제로 MCP를 활용하면 Llama 2나 DeepSeek 같은 오픈소스 기반 LLM도 사용할 수 있어 특정 기업의 API에 의존하지 않을 수 있습니다 . 이 말은 기업 내부에 완전히 폐쇄망(인터넷이 차단된 내부망) 환경을 쓰더라도, 내부에 설치한 오픈소스 AI 모델과 MCP 커넥터를 통해 AI 비서 기능을 제공할 수 있다는 뜻입니다. 인터넷이 안 되는 환경에서도 표준만 맞으면 AI와 각종 시스템을 연동할 수 있으니, 보안상 외부 접속이 어려운 경우에도 AI 도입이 가능해지는 것이죠.
세 번째로, 다양한 인프라 환경을 포괄할 수 있다는 장점입니다. MCP는 클라우드든 온프레미스든 가리지 않고 쓸 수 있고, 그 위에서 돌아가는 모든 종류의 하이퍼바이저(가상화 플랫폼)를 지원합니다. 예를 들어 Vmware, Proxmox, OpenStack처럼 서로 다른 가상화 솔루션이 있더라도, MCP를 통해 한꺼번에 AI가 제어할 수 있습니다. 이처럼 인프라 종속성 없이 범용적으로 동작하기 때문에, 기업 입장에서는 기존 시스템을 크게 바꾸지 않고도 MCP를 도입해 AI 기능을 붙일 수 있습니다. 이 밖에도 MCP는 양방향 통신을 염두에 둔 구조라서, AI가 툴에게 질문을 보내는 것뿐만 아니라 반대로 이벤트가 발생하면 AI가 알림을 받을 수도 있습니다. 또한 보안 측면에서도 MCP 서버를 통해 접근 권한을 세분화하고 통제를 할 수 있어, AI에게 필요한 정보만 안전하게 제공하는 설계가 가능합니다. 정리하자면, MCP는 유연성, 범용성, 보안성 면에서 모두 고려된 새로운 표준이라 할 수 있습니다.
OpsNow에서는 두가지 케이스를 가지고 MCP 을 활용한 연동에 대하여 설명해보겠습니다. 실제 MCP에 대한 기본은 다음과 같이 쉽게 만들 수 있습니다
기존 FinOps의 서비스 및 리소스들이 OpsNow Resources 라고 할때 녹색 부분을 쉽게 개발해 보면서 MCP 의 활용성을 살펴보겠습니다.
현재는 실제 데이타 환경이 아닌, 테스트 목적의 더미 데이타를 통한 동작을 수행 하도록 하겠습니다.
OpsNow MCP Provider
이 프로젝트는 Claude가 OpsNow의 자산(Asset)과 비용(Cost) 정보를 조회할 수 있도록 MCP 서버와 통신하는 Provider 역할을 합니다. 전체 시스템은 다음과 같이 구성됩니다:
FastAPI 기반의 비동기 웹 서버
main.py: MCP 요청을 처리하는 진입점
Python
from fastapi import FastAPI
from asset_api_client import get_assets
from cost_api_client import get_costs
app = FastAPI()
@app.get("/health")
async def health_check():
return {"status": "ok"}
@app.get("/assets")
async def get_assets_data():
return await get_assets()
@app.get("/costs")
async def get_costs_data():
return await get_costs()
cost_api_client.py: 비용 데이터 제공
Python
async def get_costs():
return {
"costs": [
{
"cloud_provider": "<CSP_NAME>", # 예: AWS, Azure, GCP 등
"monthly_costs": [
{
"month": "<YYYY-MM>", # 예: 2025-03
"total": "<TOTAL_COST>",
"by_service": {
"<SERVICE_NAME_1>": "<COST_1>",
"<SERVICE_NAME_2>": "<COST_2>",
# ...
}
},
# ...다수의 월별 비용 정보
]
},
# ...다수의 CSP
]
}
asset_api_client.py: 비용 데이터 제공
Python
async def get_assets():
return {
"AWS": [
{
"id": "<RESOURCE_ID>",
"type": "<RESOURCE_TYPE>", # 예: EC2, RDS 등
"region": "<REGION_CODE>",
"status": "<STATUS>" # 예: running, stopped 등
},
# ...다수의 자산
]
}
실행 방법
# 의존성 설치
pip install -r requirements.txt
# 서버 실행
python main.py
전체 소스코드 : opsnow-mcp-provider
OpsNow MCP Server
OpsNow Cost MCP Server
이제부터 Claude MCP 연동 구조에서 “OpsNow Cost MCP Server” 역할을 수행하는 부분을 자세히 살펴보겠습니다. 해당 컴포넌트는 Claude 데스크톱 애플리케이션으로부터의 요청을 받아, OpsNow 비용 데이터를 MCP 프로토콜로 응답해주는 서버입니다.
이 부분을 시작 하기전 다음 문서를 살펴볼 것을 강력히 권고 합니다.
주요 기술 스택
src/index.ts: MCP 서버 초기화
JavaScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create server instance
const server = new McpServer({
name: "cloud-cost",
version: "1.0.0",
});
입력 스키마 정의 및 Tool 등록
JavaScript
server.tool(
"get-cost",
"Get cloud cost summary for multiple vendors and months",
{
vendors: z.array(z.string()).optional().describe("List of cloud vendor names"),
months: z.array(z.string()).optional().describe("List of months in YYYY-MM format"),
},
async ({ vendors, months }) => {
...
}
);
Provider API로부터 비용 데이터 가져오기
JavaScript
async function readCostData(): Promise<any | null> {
const response = await fetch('http://localhost:8000/api/v1/costs/info');
...
return data;
}
빌드
# 의존성 설치
npm install
# 빌드
npm run build
전체 소스코드 : opsnow-mcp-cost-server
OpsNow Asset MCP Server
OpsNow Cost MCP Server 와 구성이 동일하기 때문에 설명은 생략 합니다.
전체 소스코드 : opsnow-mcp-asset-server
Claude Desktop 에서의 활용
환경설정
1.Claude Desktop 설정 > 개발자 > 설정 편집
2.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server 설정 등록
JavaScript
{
"mcpServers": {
"cloud-cost-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-cost-server/build/index.js"
]
},
"cloud-asset-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-asset-server/build/index.js"
]
}
}
}
3.정상등록 확인
프롬프트 입력창에 망치2 확인
클릭 시 MCP server 목록 확인 가능합니다.
활용예제
Claude Desktop Agent 의 강력한 성능을 기반으로 꽤 유용한 활용 가능성을 보여줍니다.
1. 4월 클라우드 비용 얼마야?
2. 3월 보다 많이 나온거야? 만약 그렇다면 이유는?
3.클라우드 사용량 어떻게 되지?
4.시각화 시켜
나의 MCP Server 배포
Smithery.ai는 대형 언어 모델(LLM)의 기능을 확장하기 위한 Model Context Protocol(MCP) 서버를 검색, 설치 및 관리할 수 있는 중앙 허브입니다. 개발자들은 Smithery를 통해 다양한 외부 도구와 데이터를 LLM에 통합하여 보다 강력한 AI 시스템을 구축할 수 있습니다.
Smithery.ai의 주요 기능
배포된 MCP Server 등록
1.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server MCP Server 정보 등록
{
"mcpServers": {
"opsnow-mcp-cost-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-cost-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
},
"opsnow-mcp-asset-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-asset-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
}
}
}
향후 확장 방향 제안: Claude MCP 기반 OpsNow 통합 구조
2.OpsNow Prime과 MCP 결합
2025년 상반기에 출시될 예정인 설치형 CMP 솔루션인 OpsNow Prime에도 MCP 기술을 접목하여, AI를 통한 인프라 작업의 자동화를 가능하게 하고, 사용자가 간단한 명령만으로 복잡한 작업을 수행할 수 있게 도와줍니다.OpsNow Prime는 기업의 IT 인프라와 클라우드 자원을 관리해주는 Private & OnPrem Cloud Management Platform인데, 여기에 MCP를 접목해 AI 비서가 인프라 작업을 쉽게 도와 주는 예제를 보여드리겠습니다. 쉽게 말해, 채팅하듯이 명령하면 가상머신(VM)을 생성하거나 종료하는 일을 AI가 대신 처리해주는 것입니다. 예를들어 관리자가 OpsNow의 AI 챗봇에게 “새로운 가상 서버 하나 만들어줘”라고 요청하면, AI가 알아서 해당 가상화 플랫폼(API)을 호출해 VM을 생성하고 결과를 알려주게 됩니다. 이전에는 이런 서비스를 개발하기 위해서는 많은 시간과 노력, 자원이 필요했지만 개방형 표준인 MCP를 통하면 쉽고, 편하게 연동하여 보다 효율적으로 서비스를 제공할 수 있게 되었습니다.OpsNow 팀은 자체 MCP 서버를 구축하여, 내부 시스템(예: 가상화 하이퍼바이저들의 API)을 MCP 규격으로 엮어놓았습니다. 그리고 Anthropic Claude 같은 LLM을 OpsNow에 연동해 MCP 클라이언트로 활용했습니다. 그 결과 Claude와 같은 AI 모델이 OpsNow MCP 서버를 통해 Proxmox나 VMware 같은 하이퍼바이저에 접속하여, 사용자의 명령을 실제 인프라 작업으로 실행할 수 있게 되었습니다. OpsNow 내부에는 MCP Provider 라는 모듈도 있는데, 이것은 여러 종류의 하이퍼바이저와 OpsNow 자체 API들을 연결해주는 어댑터 역할을 합니다. 즉, AI가 "VM을 삭제해줘"라고 하면 MCP Provider가 해당 VM이 있는 플랫폼을 알아내 **적절한 명령(API 호출)**을 수행하고, 결과를 다시 MCP를 통해 AI에게 전달해 줍니다. 덕분에 사용자는 번거롭게 콘솔에 들어갈 필요 없이 AI에게 말로 지시하는 것만으로도 인프라를 제어할 수 있습니다.Claude Desktop 에서 OpsNow Prime MCP 서버를 활용하여 Proxmox 의 VM을 쉽게 생성/활성화 하고 OpsNow Prime 에서 관리되는 사례를 소개하도록 하겠습니다.MCP 서버 학습부터 생성, 구동까지에 대한 과정에 대한 설명입니다. MCP 서버 학습은 Cursor를 활용하였습니다. node를 활용하는 서버로 기본 구조는 github의 MCP 링크에서 얻을 수 있습니다.
먼저 기본 구조를 활용하기 위해 MCP 서버 예제 git repo 에서 clone 으로 소스를 다운받고 Postman의 collection 파일과 ts파일을 통해 학습을 진행한 뒤 OpsNow Prime MCP 서버를 생성하였습니다.
postman collection file
JavaScript
"item":[
{
"name":"Proxmox",
"item":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
"request":{
"auth":{
"type":"bearer",
... 중략
},
... 중략
},
"response":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
... 중략
],
... 중략
route.ts
JavaScript
import { Express, Request, Response } from 'express';
import { ProxmoxApiManager } from './proxmox/proxmoxApiManager';
import { getLogger } from './utils/logger';
const logger = getLogger('Routes');
const proxmoxManager = ProxmoxApiManager.getInstance();
export const setupRoutes = (app: Express) => {
// 기본 헬스 체크 엔드포인트
app.get('/api/health', (req: Request, res: Response) => {
res.status(200).json({ status: 'ok', message: 'Prime MCP 서버가 정상 동작 중입니다.' });
});
// 노드 관련 엔드포인트
app.get('/api/nodes', async (req: Request, res: Response) => {
try {
const result = await proxmoxManager.getNodes();
res.status(200).json(result);
} catch (error) {
logger.error('노드 목록 조회 실패:', error);
res.status(500).json({ error: '노드 목록을 조회하는 중 오류가 발생했습니다.' });
}
});
// ....(중략)
학습을 진행 한 후 OpsNow Prime MCP 서버에 학습된 결과로 소스파일이 생성이 되고 이를 빌드하기 위해 아래와 같이 명령어를 입력합니다. 현재 node 버전은 20 이상을 사용하였습니다. 서버 실행에 필요한 모듈을 설치하고 빌드를 진행한 뒤 서버가 정상적으로 구동 되는지 확인합니다. OpsNow Prime MCP 서버의 경우 LLM 모델별로 차이가 존재 했지만, 정확도를 높이기 위해 재 학습과 테스트를 하였습니다.
## node 버전 확인
node -version
## 프로젝트 build
npm install & npm run build
## 프로젝트 정상기동 확인
node dist/index.js
cursor 에서 OpsNow Prime MCP 서버 테스트를 실행하라고 하면 api 호출 테스트가 진행이 되고 문제가 생기면 스스로 수정을 합니다. 오류가 없는것을 확인하고 방금만든 MCP 서버를 등록하기 위해 cursor 상단 세팅버튼을 눌러 등록을 진행합니다.
좌측의 MCP 클릭하여 MCP 관리 화면으로 이동합니다.
위 화면에서 add new global MCP server를 클릭 후 args에 build 후 생성된 index.js 파일의 절대경로를 지정해줍니다.
이후에는 cursor 또는 Claude 를 통해 서버 생성 및 인스턴스 정보 호출 명령을 하면 관련된 API를 호출하여 요청한 작업을 수행하게 됩니다. 이 과정에서, api의 정의 또는 인증정보가 정확하지 않다면 여러번 오류가 생길 수 있으며, cursor를 통해 자동으로 재학습 및 재빌드 과정을 거치게 됩니다.
Cursor에서도 해당 MCP 서버를 활용할 수 있지만, MCP 서버가 실제로 cross platform에서도 동작을 잘하는지, 테스트 해볼겸 생성된 MCP 서버를 Claude Desktop 에서 기능테스트를 진행했습니다. Claude에서 MCP를 등록하는 방법은 아래와 같습니다
이제 학습된 MCP 서버를 활용하여 자원을 관리하기 위한 준비를 마쳤습니다. 이제 Claude Desktop 에서 간단하게 “Prime Proxmox에 VM을 1대 생성해줘.” 라고 입력만 하면 OpsNow Prime MCP 서버를 연동해서 VM 을 생성하게 됩니다.
화면과 같이 쉽고 빠르게 Proxmox 에 VM 이 생성되는것을 확인할 수 있고, OpsNow Prime 에서도 생성된 VM 과 상태를 확인할 수 있습니다. 주목할 점은 진행도중 스토리지 연결 오류등이 발생해도 다른 가능한 방안을 스스로 판단하여 VM 생성을 문제없이 완료 하였습니다. 생성된 화면은 Proxmox 콘솔에서도 실시간으로 조회가 가능하고, OpsNow Prime 의 VM 관리 메뉴에서도 실시간으로 생성된 VM 과 상태를 확인할 수 있습니다.
이제 생성된 자원을 중단/삭제 하도록 하겠습니다. Claude Desktop 에서 “방금 생성한 VM을 삭제해줘.” 라고 입력하면 방금 생성된 VM을 알아서 중지하는 API 를 호출한 뒤 삭제까지 진행이 됩니다.
Proxmox 콘솔에서 실시간으로 삭제된 것을 확인할 수 있습니다.
OpsNow의 MCP 활용은 이미 일부 기능을 통해 증명되고 있습니다. 현재 Proxmox 가상화 환경을 대상으로 VM 생성, 조회, 삭제 등의 기능을 MCP를 통해 구현하여 개발 및 테스트를 완료했습니다
이어서 VM 종료 등 추가 기능도 확장해 나가고 있습니다. 예를 들어 기존에는 관리자가 Proxmox 웹 인터페이스에 들어가 수동으로 VM을 만들었다면, 이제는 OpsNow AI 비서에게 명령하는 것으로 같은 작업이 자동화되는 것입니다.
흥미로운 점은, 이런 기능이 특정 가상화 제품에 한정되지 않고 VMware, OpenStack 등으로 쉽게 범용화될 수 있다는 점입니다. OpsNow 팀이 한 번 MCP 표준에 맞춰 연결을 구현해두었기 때문에, 새로운 플랫폼을 붙이는 것도 비교적 수월합니다. 또한 앞서 언급한대로, 폐쇄망으로 운용되는 데이터 센터 환경에서도 오픈소스 LLM과 MCP 서버를 배포하면 이러한 AI 기능을 동일하게 제공할 수 있습니다.
또한 OpsNow Prime은 On-Premise 인프라 운영의 관점에서 자원의 생성/삭제 등의 관리를 넘어, 미사용/이상자원에 대한 탐지 및 자동화 대처, 자원최적화 자동화, 시스템 장애에 대한 자동화 대처, ITSM(자원신청/승인)에 대한 부분에도 MCP 서버를 지원하는 로드맵을 갖고 기능개발을 진행중입니다.
OpsNow 사례에서 볼 수 있듯이, MCP를 도입하면 AI가 데이터 센터의 손과 발의 역할을 할 수 있게 되고, 인프라 운영에 새로운 자동화의 바람을 불러일으킬 것으로 기대됩니다.
_______________________________________________________________________________________________________________________________________
이처럼 Anthropic의 MCP는 고립된 AI에게 세상의 정보를 가져다 주는 만능 커넥터로서 등장하였고, 점점 그 활용 범위를 넓혀가고 있습니다. 초기 단계이긴 하지만 업계의 많은 관심을 받고 있으며, OpsNow와 같은 사례를 통해 현실적인 이점도 속속 증명되고 있습니다. 앞으로 MCP가 얼마나 빠르게 표준으로 자리잡고 우리 일상 속 서비스에 녹아들지 지켜볼 만한 대목입니다. 데이터와 AI를 잇는 **“MCP 시대”**가 성큼 다가오고 있습니다.
그림: MCP 도입 전(왼쪽)과 도입 후(오른쪽) 비교. 표준이 없으면 각 AI 모델이 Slack, Google Drive, GitHub 등 도구마다 각각 고유한 방식(Unique API)으로 연결해야 합니다. MCP를 도입하면 하나의 표준화된 인터페이스(MCP)를 통해 여러 도구에 접속할 수 있어 통합이 훨씬 간단해집니다.
인공지능 챗봇이나 비서로 불리는 **대형 언어 모델(LLM)**들은 똑똑하지만, 종종 외부 세계와 단절되어 있다는 한계를 갖고 있습니다. 쉽게 말해 아무리 똑똑한 AI라도, 인터넷이나 회사 내부 데이터베이스 등 필요한 데이터에 직접 접근하지 못하면 한계가 있을 수밖에 없습니다. 예를 들어 현재의 AI에게 "우리 회사 판매 데이터로 그래프를 그려줘"라고 하면, AI는 그 데이터에 직접 접근할 방법이 없어 곤란해지는 식입니다. 이 때문에 AI를 외부 도구나 데이터 소스와 연결하려는 시도가 예전부터 많았습니다. 하지만 기존 방식은 각 AI와 각 도구를 일일이 커스텀 코드로 이어 붙이는 작업이었고, 새로운 도구를 붙일 때마다 매번 복잡한 개발이 필요했습니다. 마치 예전에 프린터, 키보드마다 다른 케이블을 써야 했던 것처럼, AI와 도구 사이에도 제각기 다른 “규격”들이 난립했던 셈입니다.
Anthropic이 제안한 **MCP(Model Context Protocol)**는 이러한 문제를 해결하기 위해 등장한 공개 표준 프로토콜입니다
. 한 마디로 **“AI용 USB-C 포트”**라고 비유할 수 있습니다. USB-C가 다양한 기기를 하나의 통일된 포트로 연결해주듯이, MCP는 AI 애플리케이션과 각종 외부 시스템을 하나의 통일된 방식으로 이어주는 규격입니다. 이를 통해 AI와 도구를 연결하는 방식을 표준화하여 중복 작업을 줄이고, 서로 다른 시스템 간 연동을 더 쉽게 만들 수 있습니다. 예를 들어 3개의 AI 앱과 3개의 도구를 연동해야 한다면, MCP 없이 각각 연결하려면 3×3, 즉 9개의 별도 연동을 만들어야 합니다. 하지만 MCP를 도입하면 3+3, 즉 6개의 표준 연결만 구성하면 되죠. 이렇게 MCP는 AI와 도구 간 연결을 효율화하여, 더 나은 답변을 위해 AI가 필요한 데이터를 쉽게 가져다 쓸 수 있도록 돕습니다
AI 모델을 외부 도구와 연계하려는 흐름은 Anthropic만의 이야기가 아닙니다. 2023년부터 OpenAI의 ChatGPT도 플러그인이나 함수 호출 기능을 통해 외부 웹사이트 검색, 계산기 사용 등의 연동을 도모해왔습니다. 마이크로소프트 역시 Bing에 ChatGPT를 붙여 웹 검색 기능을 제공하는 등, 여러 기업들이 AI를 실용적으로 활용하기 위해 도구 연결을 연구하고 있습니다. 이런 가운데 Anthropic은 MCP를 2024년 11월에 공개하면서, 업계 표준으로 자리잡을 만한 접근법을 제시했습니다. 특히 Anthropic의 AI 비서 Claude에는 MCP 클라이언트 기능이 내장되어 있어, Claude를 활용하는 애플리케이션은 손쉽게 MCP 서버들과 연결할 수 있습니다. 예를 들어 Claude용 데스크톱 앱에서는 몇 클릭만으로 다양한 MCP 서버(구글 드라이브, 슬랙, 깃허브 등 커넥터)를 추가해 Claude가 해당 서비스의 정보를 가져오도록 할 수 있습니다
MCP가 공개되자 여러 개발 도구와 서비스들이 앞다투어 이를 지원하기 시작했습니다. 실제로 발표 직후에 GitHub의 코파일럿(Copilot), 개발용 IDE인 Cursor 등 다양한 도구들이 MCP 연동을 발표했습니다 . 또한 Zed 에디터, Replit, Codeium, Sourcegraph 같은 기업들도 자신들의 플랫폼에 MCP를 접목해, AI 비서가 코드 작업 시 맥락을 더 잘 파악하도록 개선하고 있습니다. 요약하면, AI 모델과 외부 시스템 연결은 업계의 거대한 흐름이며, MCP는 그중에서도 개방형 표준으로서 빠르게 주목받고 있는 방법입니다. 일부 전문가는 MCP가 사실상 2023-2025년 사이 “AI 에이전트 표준” 경쟁의 우승 후보가 될 정도로 모멘텀을 얻었다고 평가하기도 합니다
. 그만큼 여러 곳에서 MCP를 채택하거나 유사한 시도를 하면서, AI를 더 유용하게 만드는 실험들이 활발하게 이루어지고 있습니다.
MCP가 주목받는 이유는 여러 가지 장점을 갖고 있기 때문입니다. 우선 AI와 도구 연결의 표준화라는 가장 큰 이점이 있습니다. 개발자 입장에서는 새로운 AI 서비스가 나오더라도 MCP 규격에 맞춰 한 번만 연결해두면 여러 곳에서 재사용할 수 있으니 개발 생산성이 높아집니다 . 또한 코드 구현이 일관되게 되므로 서비스 안정성과 유지보수성도 좋아집니다. 사용자의 입장에서도, 다양한 애플리케이션에서 AI 기능을 사용할 때 경험이 일관되게 이어질 가능성이 높아집니다.
두 번째로, 특정 AI 모델이나 벤더에 종속되지 않는 유연성입니다. MCP 자체는 어느 한 AI 모델 전용이 아니라 여러 종류의 LLM을 아우르는 범용 프로토콜입니다. 예를 들어 Anthropic의 Claude는 물론, OpenAI의 GPT계열, 혹은 오픈소스 LLM까지도 MCP 규격만 맞추면 연결해 활용할 수 있습니다. 실제로 MCP를 활용하면 Llama 2나 DeepSeek 같은 오픈소스 기반 LLM도 사용할 수 있어 특정 기업의 API에 의존하지 않을 수 있습니다 . 이 말은 기업 내부에 완전히 폐쇄망(인터넷이 차단된 내부망) 환경을 쓰더라도, 내부에 설치한 오픈소스 AI 모델과 MCP 커넥터를 통해 AI 비서 기능을 제공할 수 있다는 뜻입니다. 인터넷이 안 되는 환경에서도 표준만 맞으면 AI와 각종 시스템을 연동할 수 있으니, 보안상 외부 접속이 어려운 경우에도 AI 도입이 가능해지는 것이죠.
세 번째로, 다양한 인프라 환경을 포괄할 수 있다는 장점입니다. MCP는 클라우드든 온프레미스든 가리지 않고 쓸 수 있고, 그 위에서 돌아가는 모든 종류의 하이퍼바이저(가상화 플랫폼)를 지원합니다. 예를 들어 Vmware, Proxmox, OpenStack처럼 서로 다른 가상화 솔루션이 있더라도, MCP를 통해 한꺼번에 AI가 제어할 수 있습니다. 이처럼 인프라 종속성 없이 범용적으로 동작하기 때문에, 기업 입장에서는 기존 시스템을 크게 바꾸지 않고도 MCP를 도입해 AI 기능을 붙일 수 있습니다. 이 밖에도 MCP는 양방향 통신을 염두에 둔 구조라서, AI가 툴에게 질문을 보내는 것뿐만 아니라 반대로 이벤트가 발생하면 AI가 알림을 받을 수도 있습니다. 또한 보안 측면에서도 MCP 서버를 통해 접근 권한을 세분화하고 통제를 할 수 있어, AI에게 필요한 정보만 안전하게 제공하는 설계가 가능합니다. 정리하자면, MCP는 유연성, 범용성, 보안성 면에서 모두 고려된 새로운 표준이라 할 수 있습니다.
OpsNow에서는 두가지 케이스를 가지고 MCP 을 활용한 연동에 대하여 설명해보겠습니다. 실제 MCP에 대한 기본은 다음과 같이 쉽게 만들 수 있습니다
기존 FinOps의 서비스 및 리소스들이 OpsNow Resources 라고 할때 녹색 부분을 쉽게 개발해 보면서 MCP 의 활용성을 살펴보겠습니다.
현재는 실제 데이타 환경이 아닌, 테스트 목적의 더미 데이타를 통한 동작을 수행 하도록 하겠습니다.
OpsNow MCP Provider
이 프로젝트는 Claude가 OpsNow의 자산(Asset)과 비용(Cost) 정보를 조회할 수 있도록 MCP 서버와 통신하는 Provider 역할을 합니다. 전체 시스템은 다음과 같이 구성됩니다:
FastAPI 기반의 비동기 웹 서버
main.py: MCP 요청을 처리하는 진입점
Python
from fastapi import FastAPI
from asset_api_client import get_assets
from cost_api_client import get_costs
app = FastAPI()
@app.get("/health")
async def health_check():
return {"status": "ok"}
@app.get("/assets")
async def get_assets_data():
return await get_assets()
@app.get("/costs")
async def get_costs_data():
return await get_costs()
cost_api_client.py: 비용 데이터 제공
Python
async def get_costs():
return {
"costs": [
{
"cloud_provider": "<CSP_NAME>", # 예: AWS, Azure, GCP 등
"monthly_costs": [
{
"month": "<YYYY-MM>", # 예: 2025-03
"total": "<TOTAL_COST>",
"by_service": {
"<SERVICE_NAME_1>": "<COST_1>",
"<SERVICE_NAME_2>": "<COST_2>",
# ...
}
},
# ...다수의 월별 비용 정보
]
},
# ...다수의 CSP
]
}
asset_api_client.py: 비용 데이터 제공
Python
async def get_assets():
return {
"AWS": [
{
"id": "<RESOURCE_ID>",
"type": "<RESOURCE_TYPE>", # 예: EC2, RDS 등
"region": "<REGION_CODE>",
"status": "<STATUS>" # 예: running, stopped 등
},
# ...다수의 자산
]
}
실행 방법
# 의존성 설치
pip install -r requirements.txt
# 서버 실행
python main.py
전체 소스코드 : opsnow-mcp-provider
OpsNow MCP Server
OpsNow Cost MCP Server
이제부터 Claude MCP 연동 구조에서 “OpsNow Cost MCP Server” 역할을 수행하는 부분을 자세히 살펴보겠습니다. 해당 컴포넌트는 Claude 데스크톱 애플리케이션으로부터의 요청을 받아, OpsNow 비용 데이터를 MCP 프로토콜로 응답해주는 서버입니다.
이 부분을 시작 하기전 다음 문서를 살펴볼 것을 강력히 권고 합니다.
주요 기술 스택
src/index.ts: MCP 서버 초기화
JavaScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create server instance
const server = new McpServer({
name: "cloud-cost",
version: "1.0.0",
});
입력 스키마 정의 및 Tool 등록
JavaScript
server.tool(
"get-cost",
"Get cloud cost summary for multiple vendors and months",
{
vendors: z.array(z.string()).optional().describe("List of cloud vendor names"),
months: z.array(z.string()).optional().describe("List of months in YYYY-MM format"),
},
async ({ vendors, months }) => {
...
}
);
Provider API로부터 비용 데이터 가져오기
JavaScript
async function readCostData(): Promise<any | null> {
const response = await fetch('http://localhost:8000/api/v1/costs/info');
...
return data;
}
빌드
# 의존성 설치
npm install
# 빌드
npm run build
전체 소스코드 : opsnow-mcp-cost-server
OpsNow Asset MCP Server
OpsNow Cost MCP Server 와 구성이 동일하기 때문에 설명은 생략 합니다.
전체 소스코드 : opsnow-mcp-asset-server
Claude Desktop 에서의 활용
환경설정
1.Claude Desktop 설정 > 개발자 > 설정 편집
2.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server 설정 등록
JavaScript
{
"mcpServers": {
"cloud-cost-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-cost-server/build/index.js"
]
},
"cloud-asset-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-asset-server/build/index.js"
]
}
}
}
3.정상등록 확인
프롬프트 입력창에 망치2 확인
클릭 시 MCP server 목록 확인 가능합니다.
활용예제
Claude Desktop Agent 의 강력한 성능을 기반으로 꽤 유용한 활용 가능성을 보여줍니다.
1. 4월 클라우드 비용 얼마야?
2. 3월 보다 많이 나온거야? 만약 그렇다면 이유는?
3.클라우드 사용량 어떻게 되지?
4.시각화 시켜
나의 MCP Server 배포
Smithery.ai는 대형 언어 모델(LLM)의 기능을 확장하기 위한 Model Context Protocol(MCP) 서버를 검색, 설치 및 관리할 수 있는 중앙 허브입니다. 개발자들은 Smithery를 통해 다양한 외부 도구와 데이터를 LLM에 통합하여 보다 강력한 AI 시스템을 구축할 수 있습니다.
Smithery.ai의 주요 기능
배포된 MCP Server 등록
1.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server MCP Server 정보 등록
{
"mcpServers": {
"opsnow-mcp-cost-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-cost-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
},
"opsnow-mcp-asset-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-asset-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
}
}
}
향후 확장 방향 제안: Claude MCP 기반 OpsNow 통합 구조
2.OpsNow Prime과 MCP 결합
2025년 상반기에 출시될 예정인 설치형 CMP 솔루션인 OpsNow Prime에도 MCP 기술을 접목하여, AI를 통한 인프라 작업의 자동화를 가능하게 하고, 사용자가 간단한 명령만으로 복잡한 작업을 수행할 수 있게 도와줍니다.OpsNow Prime는 기업의 IT 인프라와 클라우드 자원을 관리해주는 Private & OnPrem Cloud Management Platform인데, 여기에 MCP를 접목해 AI 비서가 인프라 작업을 쉽게 도와 주는 예제를 보여드리겠습니다. 쉽게 말해, 채팅하듯이 명령하면 가상머신(VM)을 생성하거나 종료하는 일을 AI가 대신 처리해주는 것입니다. 예를들어 관리자가 OpsNow의 AI 챗봇에게 “새로운 가상 서버 하나 만들어줘”라고 요청하면, AI가 알아서 해당 가상화 플랫폼(API)을 호출해 VM을 생성하고 결과를 알려주게 됩니다. 이전에는 이런 서비스를 개발하기 위해서는 많은 시간과 노력, 자원이 필요했지만 개방형 표준인 MCP를 통하면 쉽고, 편하게 연동하여 보다 효율적으로 서비스를 제공할 수 있게 되었습니다.OpsNow 팀은 자체 MCP 서버를 구축하여, 내부 시스템(예: 가상화 하이퍼바이저들의 API)을 MCP 규격으로 엮어놓았습니다. 그리고 Anthropic Claude 같은 LLM을 OpsNow에 연동해 MCP 클라이언트로 활용했습니다. 그 결과 Claude와 같은 AI 모델이 OpsNow MCP 서버를 통해 Proxmox나 VMware 같은 하이퍼바이저에 접속하여, 사용자의 명령을 실제 인프라 작업으로 실행할 수 있게 되었습니다. OpsNow 내부에는 MCP Provider 라는 모듈도 있는데, 이것은 여러 종류의 하이퍼바이저와 OpsNow 자체 API들을 연결해주는 어댑터 역할을 합니다. 즉, AI가 "VM을 삭제해줘"라고 하면 MCP Provider가 해당 VM이 있는 플랫폼을 알아내 **적절한 명령(API 호출)**을 수행하고, 결과를 다시 MCP를 통해 AI에게 전달해 줍니다. 덕분에 사용자는 번거롭게 콘솔에 들어갈 필요 없이 AI에게 말로 지시하는 것만으로도 인프라를 제어할 수 있습니다.Claude Desktop 에서 OpsNow Prime MCP 서버를 활용하여 Proxmox 의 VM을 쉽게 생성/활성화 하고 OpsNow Prime 에서 관리되는 사례를 소개하도록 하겠습니다.MCP 서버 학습부터 생성, 구동까지에 대한 과정에 대한 설명입니다. MCP 서버 학습은 Cursor를 활용하였습니다. node를 활용하는 서버로 기본 구조는 github의 MCP 링크에서 얻을 수 있습니다.
먼저 기본 구조를 활용하기 위해 MCP 서버 예제 git repo 에서 clone 으로 소스를 다운받고 Postman의 collection 파일과 ts파일을 통해 학습을 진행한 뒤 OpsNow Prime MCP 서버를 생성하였습니다.
postman collection file
JavaScript
"item":[
{
"name":"Proxmox",
"item":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
"request":{
"auth":{
"type":"bearer",
... 중략
},
... 중략
},
"response":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
... 중략
],
... 중략
route.ts
JavaScript
import { Express, Request, Response } from 'express';
import { ProxmoxApiManager } from './proxmox/proxmoxApiManager';
import { getLogger } from './utils/logger';
const logger = getLogger('Routes');
const proxmoxManager = ProxmoxApiManager.getInstance();
export const setupRoutes = (app: Express) => {
// 기본 헬스 체크 엔드포인트
app.get('/api/health', (req: Request, res: Response) => {
res.status(200).json({ status: 'ok', message: 'Prime MCP 서버가 정상 동작 중입니다.' });
});
// 노드 관련 엔드포인트
app.get('/api/nodes', async (req: Request, res: Response) => {
try {
const result = await proxmoxManager.getNodes();
res.status(200).json(result);
} catch (error) {
logger.error('노드 목록 조회 실패:', error);
res.status(500).json({ error: '노드 목록을 조회하는 중 오류가 발생했습니다.' });
}
});
// ....(중략)
학습을 진행 한 후 OpsNow Prime MCP 서버에 학습된 결과로 소스파일이 생성이 되고 이를 빌드하기 위해 아래와 같이 명령어를 입력합니다. 현재 node 버전은 20 이상을 사용하였습니다. 서버 실행에 필요한 모듈을 설치하고 빌드를 진행한 뒤 서버가 정상적으로 구동 되는지 확인합니다. OpsNow Prime MCP 서버의 경우 LLM 모델별로 차이가 존재 했지만, 정확도를 높이기 위해 재 학습과 테스트를 하였습니다.
## node 버전 확인
node -version
## 프로젝트 build
npm install & npm run build
## 프로젝트 정상기동 확인
node dist/index.js
cursor 에서 OpsNow Prime MCP 서버 테스트를 실행하라고 하면 api 호출 테스트가 진행이 되고 문제가 생기면 스스로 수정을 합니다. 오류가 없는것을 확인하고 방금만든 MCP 서버를 등록하기 위해 cursor 상단 세팅버튼을 눌러 등록을 진행합니다.
좌측의 MCP 클릭하여 MCP 관리 화면으로 이동합니다.
위 화면에서 add new global MCP server를 클릭 후 args에 build 후 생성된 index.js 파일의 절대경로를 지정해줍니다.
이후에는 cursor 또는 Claude 를 통해 서버 생성 및 인스턴스 정보 호출 명령을 하면 관련된 API를 호출하여 요청한 작업을 수행하게 됩니다. 이 과정에서, api의 정의 또는 인증정보가 정확하지 않다면 여러번 오류가 생길 수 있으며, cursor를 통해 자동으로 재학습 및 재빌드 과정을 거치게 됩니다.
Cursor에서도 해당 MCP 서버를 활용할 수 있지만, MCP 서버가 실제로 cross platform에서도 동작을 잘하는지, 테스트 해볼겸 생성된 MCP 서버를 Claude Desktop 에서 기능테스트를 진행했습니다. Claude에서 MCP를 등록하는 방법은 아래와 같습니다
이제 학습된 MCP 서버를 활용하여 자원을 관리하기 위한 준비를 마쳤습니다. 이제 Claude Desktop 에서 간단하게 “Prime Proxmox에 VM을 1대 생성해줘.” 라고 입력만 하면 OpsNow Prime MCP 서버를 연동해서 VM 을 생성하게 됩니다.
화면과 같이 쉽고 빠르게 Proxmox 에 VM 이 생성되는것을 확인할 수 있고, OpsNow Prime 에서도 생성된 VM 과 상태를 확인할 수 있습니다. 주목할 점은 진행도중 스토리지 연결 오류등이 발생해도 다른 가능한 방안을 스스로 판단하여 VM 생성을 문제없이 완료 하였습니다. 생성된 화면은 Proxmox 콘솔에서도 실시간으로 조회가 가능하고, OpsNow Prime 의 VM 관리 메뉴에서도 실시간으로 생성된 VM 과 상태를 확인할 수 있습니다.
이제 생성된 자원을 중단/삭제 하도록 하겠습니다. Claude Desktop 에서 “방금 생성한 VM을 삭제해줘.” 라고 입력하면 방금 생성된 VM을 알아서 중지하는 API 를 호출한 뒤 삭제까지 진행이 됩니다.
Proxmox 콘솔에서 실시간으로 삭제된 것을 확인할 수 있습니다.
OpsNow의 MCP 활용은 이미 일부 기능을 통해 증명되고 있습니다. 현재 Proxmox 가상화 환경을 대상으로 VM 생성, 조회, 삭제 등의 기능을 MCP를 통해 구현하여 개발 및 테스트를 완료했습니다
이어서 VM 종료 등 추가 기능도 확장해 나가고 있습니다. 예를 들어 기존에는 관리자가 Proxmox 웹 인터페이스에 들어가 수동으로 VM을 만들었다면, 이제는 OpsNow AI 비서에게 명령하는 것으로 같은 작업이 자동화되는 것입니다.
흥미로운 점은, 이런 기능이 특정 가상화 제품에 한정되지 않고 VMware, OpenStack 등으로 쉽게 범용화될 수 있다는 점입니다. OpsNow 팀이 한 번 MCP 표준에 맞춰 연결을 구현해두었기 때문에, 새로운 플랫폼을 붙이는 것도 비교적 수월합니다. 또한 앞서 언급한대로, 폐쇄망으로 운용되는 데이터 센터 환경에서도 오픈소스 LLM과 MCP 서버를 배포하면 이러한 AI 기능을 동일하게 제공할 수 있습니다.
또한 OpsNow Prime은 On-Premise 인프라 운영의 관점에서 자원의 생성/삭제 등의 관리를 넘어, 미사용/이상자원에 대한 탐지 및 자동화 대처, 자원최적화 자동화, 시스템 장애에 대한 자동화 대처, ITSM(자원신청/승인)에 대한 부분에도 MCP 서버를 지원하는 로드맵을 갖고 기능개발을 진행중입니다.
OpsNow 사례에서 볼 수 있듯이, MCP를 도입하면 AI가 데이터 센터의 손과 발의 역할을 할 수 있게 되고, 인프라 운영에 새로운 자동화의 바람을 불러일으킬 것으로 기대됩니다.
_______________________________________________________________________________________________________________________________________
이처럼 Anthropic의 MCP는 고립된 AI에게 세상의 정보를 가져다 주는 만능 커넥터로서 등장하였고, 점점 그 활용 범위를 넓혀가고 있습니다. 초기 단계이긴 하지만 업계의 많은 관심을 받고 있으며, OpsNow와 같은 사례를 통해 현실적인 이점도 속속 증명되고 있습니다. 앞으로 MCP가 얼마나 빠르게 표준으로 자리잡고 우리 일상 속 서비스에 녹아들지 지켜볼 만한 대목입니다. 데이터와 AI를 잇는 **“MCP 시대”**가 성큼 다가오고 있습니다.
그림: MCP 도입 전(왼쪽)과 도입 후(오른쪽) 비교. 표준이 없으면 각 AI 모델이 Slack, Google Drive, GitHub 등 도구마다 각각 고유한 방식(Unique API)으로 연결해야 합니다. MCP를 도입하면 하나의 표준화된 인터페이스(MCP)를 통해 여러 도구에 접속할 수 있어 통합이 훨씬 간단해집니다.
인공지능 챗봇이나 비서로 불리는 **대형 언어 모델(LLM)**들은 똑똑하지만, 종종 외부 세계와 단절되어 있다는 한계를 갖고 있습니다. 쉽게 말해 아무리 똑똑한 AI라도, 인터넷이나 회사 내부 데이터베이스 등 필요한 데이터에 직접 접근하지 못하면 한계가 있을 수밖에 없습니다. 예를 들어 현재의 AI에게 "우리 회사 판매 데이터로 그래프를 그려줘"라고 하면, AI는 그 데이터에 직접 접근할 방법이 없어 곤란해지는 식입니다. 이 때문에 AI를 외부 도구나 데이터 소스와 연결하려는 시도가 예전부터 많았습니다. 하지만 기존 방식은 각 AI와 각 도구를 일일이 커스텀 코드로 이어 붙이는 작업이었고, 새로운 도구를 붙일 때마다 매번 복잡한 개발이 필요했습니다. 마치 예전에 프린터, 키보드마다 다른 케이블을 써야 했던 것처럼, AI와 도구 사이에도 제각기 다른 “규격”들이 난립했던 셈입니다.
Anthropic이 제안한 **MCP(Model Context Protocol)**는 이러한 문제를 해결하기 위해 등장한 공개 표준 프로토콜입니다
. 한 마디로 **“AI용 USB-C 포트”**라고 비유할 수 있습니다. USB-C가 다양한 기기를 하나의 통일된 포트로 연결해주듯이, MCP는 AI 애플리케이션과 각종 외부 시스템을 하나의 통일된 방식으로 이어주는 규격입니다. 이를 통해 AI와 도구를 연결하는 방식을 표준화하여 중복 작업을 줄이고, 서로 다른 시스템 간 연동을 더 쉽게 만들 수 있습니다. 예를 들어 3개의 AI 앱과 3개의 도구를 연동해야 한다면, MCP 없이 각각 연결하려면 3×3, 즉 9개의 별도 연동을 만들어야 합니다. 하지만 MCP를 도입하면 3+3, 즉 6개의 표준 연결만 구성하면 되죠. 이렇게 MCP는 AI와 도구 간 연결을 효율화하여, 더 나은 답변을 위해 AI가 필요한 데이터를 쉽게 가져다 쓸 수 있도록 돕습니다
AI 모델을 외부 도구와 연계하려는 흐름은 Anthropic만의 이야기가 아닙니다. 2023년부터 OpenAI의 ChatGPT도 플러그인이나 함수 호출 기능을 통해 외부 웹사이트 검색, 계산기 사용 등의 연동을 도모해왔습니다. 마이크로소프트 역시 Bing에 ChatGPT를 붙여 웹 검색 기능을 제공하는 등, 여러 기업들이 AI를 실용적으로 활용하기 위해 도구 연결을 연구하고 있습니다. 이런 가운데 Anthropic은 MCP를 2024년 11월에 공개하면서, 업계 표준으로 자리잡을 만한 접근법을 제시했습니다. 특히 Anthropic의 AI 비서 Claude에는 MCP 클라이언트 기능이 내장되어 있어, Claude를 활용하는 애플리케이션은 손쉽게 MCP 서버들과 연결할 수 있습니다. 예를 들어 Claude용 데스크톱 앱에서는 몇 클릭만으로 다양한 MCP 서버(구글 드라이브, 슬랙, 깃허브 등 커넥터)를 추가해 Claude가 해당 서비스의 정보를 가져오도록 할 수 있습니다
MCP가 공개되자 여러 개발 도구와 서비스들이 앞다투어 이를 지원하기 시작했습니다. 실제로 발표 직후에 GitHub의 코파일럿(Copilot), 개발용 IDE인 Cursor 등 다양한 도구들이 MCP 연동을 발표했습니다 . 또한 Zed 에디터, Replit, Codeium, Sourcegraph 같은 기업들도 자신들의 플랫폼에 MCP를 접목해, AI 비서가 코드 작업 시 맥락을 더 잘 파악하도록 개선하고 있습니다. 요약하면, AI 모델과 외부 시스템 연결은 업계의 거대한 흐름이며, MCP는 그중에서도 개방형 표준으로서 빠르게 주목받고 있는 방법입니다. 일부 전문가는 MCP가 사실상 2023-2025년 사이 “AI 에이전트 표준” 경쟁의 우승 후보가 될 정도로 모멘텀을 얻었다고 평가하기도 합니다
. 그만큼 여러 곳에서 MCP를 채택하거나 유사한 시도를 하면서, AI를 더 유용하게 만드는 실험들이 활발하게 이루어지고 있습니다.
MCP가 주목받는 이유는 여러 가지 장점을 갖고 있기 때문입니다. 우선 AI와 도구 연결의 표준화라는 가장 큰 이점이 있습니다. 개발자 입장에서는 새로운 AI 서비스가 나오더라도 MCP 규격에 맞춰 한 번만 연결해두면 여러 곳에서 재사용할 수 있으니 개발 생산성이 높아집니다 . 또한 코드 구현이 일관되게 되므로 서비스 안정성과 유지보수성도 좋아집니다. 사용자의 입장에서도, 다양한 애플리케이션에서 AI 기능을 사용할 때 경험이 일관되게 이어질 가능성이 높아집니다.
두 번째로, 특정 AI 모델이나 벤더에 종속되지 않는 유연성입니다. MCP 자체는 어느 한 AI 모델 전용이 아니라 여러 종류의 LLM을 아우르는 범용 프로토콜입니다. 예를 들어 Anthropic의 Claude는 물론, OpenAI의 GPT계열, 혹은 오픈소스 LLM까지도 MCP 규격만 맞추면 연결해 활용할 수 있습니다. 실제로 MCP를 활용하면 Llama 2나 DeepSeek 같은 오픈소스 기반 LLM도 사용할 수 있어 특정 기업의 API에 의존하지 않을 수 있습니다 . 이 말은 기업 내부에 완전히 폐쇄망(인터넷이 차단된 내부망) 환경을 쓰더라도, 내부에 설치한 오픈소스 AI 모델과 MCP 커넥터를 통해 AI 비서 기능을 제공할 수 있다는 뜻입니다. 인터넷이 안 되는 환경에서도 표준만 맞으면 AI와 각종 시스템을 연동할 수 있으니, 보안상 외부 접속이 어려운 경우에도 AI 도입이 가능해지는 것이죠.
세 번째로, 다양한 인프라 환경을 포괄할 수 있다는 장점입니다. MCP는 클라우드든 온프레미스든 가리지 않고 쓸 수 있고, 그 위에서 돌아가는 모든 종류의 하이퍼바이저(가상화 플랫폼)를 지원합니다. 예를 들어 Vmware, Proxmox, OpenStack처럼 서로 다른 가상화 솔루션이 있더라도, MCP를 통해 한꺼번에 AI가 제어할 수 있습니다. 이처럼 인프라 종속성 없이 범용적으로 동작하기 때문에, 기업 입장에서는 기존 시스템을 크게 바꾸지 않고도 MCP를 도입해 AI 기능을 붙일 수 있습니다. 이 밖에도 MCP는 양방향 통신을 염두에 둔 구조라서, AI가 툴에게 질문을 보내는 것뿐만 아니라 반대로 이벤트가 발생하면 AI가 알림을 받을 수도 있습니다. 또한 보안 측면에서도 MCP 서버를 통해 접근 권한을 세분화하고 통제를 할 수 있어, AI에게 필요한 정보만 안전하게 제공하는 설계가 가능합니다. 정리하자면, MCP는 유연성, 범용성, 보안성 면에서 모두 고려된 새로운 표준이라 할 수 있습니다.
OpsNow에서는 두가지 케이스를 가지고 MCP 을 활용한 연동에 대하여 설명해보겠습니다. 실제 MCP에 대한 기본은 다음과 같이 쉽게 만들 수 있습니다
기존 FinOps의 서비스 및 리소스들이 OpsNow Resources 라고 할때 녹색 부분을 쉽게 개발해 보면서 MCP 의 활용성을 살펴보겠습니다.
현재는 실제 데이타 환경이 아닌, 테스트 목적의 더미 데이타를 통한 동작을 수행 하도록 하겠습니다.
OpsNow MCP Provider
이 프로젝트는 Claude가 OpsNow의 자산(Asset)과 비용(Cost) 정보를 조회할 수 있도록 MCP 서버와 통신하는 Provider 역할을 합니다. 전체 시스템은 다음과 같이 구성됩니다:
FastAPI 기반의 비동기 웹 서버
main.py: MCP 요청을 처리하는 진입점
Python
from fastapi import FastAPI
from asset_api_client import get_assets
from cost_api_client import get_costs
app = FastAPI()
@app.get("/health")
async def health_check():
return {"status": "ok"}
@app.get("/assets")
async def get_assets_data():
return await get_assets()
@app.get("/costs")
async def get_costs_data():
return await get_costs()
cost_api_client.py: 비용 데이터 제공
Python
async def get_costs():
return {
"costs": [
{
"cloud_provider": "<CSP_NAME>", # 예: AWS, Azure, GCP 등
"monthly_costs": [
{
"month": "<YYYY-MM>", # 예: 2025-03
"total": "<TOTAL_COST>",
"by_service": {
"<SERVICE_NAME_1>": "<COST_1>",
"<SERVICE_NAME_2>": "<COST_2>",
# ...
}
},
# ...다수의 월별 비용 정보
]
},
# ...다수의 CSP
]
}
asset_api_client.py: 비용 데이터 제공
Python
async def get_assets():
return {
"AWS": [
{
"id": "<RESOURCE_ID>",
"type": "<RESOURCE_TYPE>", # 예: EC2, RDS 등
"region": "<REGION_CODE>",
"status": "<STATUS>" # 예: running, stopped 등
},
# ...다수의 자산
]
}
실행 방법
# 의존성 설치
pip install -r requirements.txt
# 서버 실행
python main.py
전체 소스코드 : opsnow-mcp-provider
OpsNow MCP Server
OpsNow Cost MCP Server
이제부터 Claude MCP 연동 구조에서 “OpsNow Cost MCP Server” 역할을 수행하는 부분을 자세히 살펴보겠습니다. 해당 컴포넌트는 Claude 데스크톱 애플리케이션으로부터의 요청을 받아, OpsNow 비용 데이터를 MCP 프로토콜로 응답해주는 서버입니다.
이 부분을 시작 하기전 다음 문서를 살펴볼 것을 강력히 권고 합니다.
주요 기술 스택
src/index.ts: MCP 서버 초기화
JavaScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create server instance
const server = new McpServer({
name: "cloud-cost",
version: "1.0.0",
});
입력 스키마 정의 및 Tool 등록
JavaScript
server.tool(
"get-cost",
"Get cloud cost summary for multiple vendors and months",
{
vendors: z.array(z.string()).optional().describe("List of cloud vendor names"),
months: z.array(z.string()).optional().describe("List of months in YYYY-MM format"),
},
async ({ vendors, months }) => {
...
}
);
Provider API로부터 비용 데이터 가져오기
JavaScript
async function readCostData(): Promise<any | null> {
const response = await fetch('http://localhost:8000/api/v1/costs/info');
...
return data;
}
빌드
# 의존성 설치
npm install
# 빌드
npm run build
전체 소스코드 : opsnow-mcp-cost-server
OpsNow Asset MCP Server
OpsNow Cost MCP Server 와 구성이 동일하기 때문에 설명은 생략 합니다.
전체 소스코드 : opsnow-mcp-asset-server
Claude Desktop 에서의 활용
환경설정
1.Claude Desktop 설정 > 개발자 > 설정 편집
2.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server 설정 등록
JavaScript
{
"mcpServers": {
"cloud-cost-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-cost-server/build/index.js"
]
},
"cloud-asset-server": {
"command": "node",
"args": [
"/Users/tae-joolee/codeProject/opsnow-mcp-asset-server/build/index.js"
]
}
}
}
3.정상등록 확인
프롬프트 입력창에 망치2 확인
클릭 시 MCP server 목록 확인 가능합니다.
활용예제
Claude Desktop Agent 의 강력한 성능을 기반으로 꽤 유용한 활용 가능성을 보여줍니다.
1. 4월 클라우드 비용 얼마야?
2. 3월 보다 많이 나온거야? 만약 그렇다면 이유는?
3.클라우드 사용량 어떻게 되지?
4.시각화 시켜
나의 MCP Server 배포
Smithery.ai는 대형 언어 모델(LLM)의 기능을 확장하기 위한 Model Context Protocol(MCP) 서버를 검색, 설치 및 관리할 수 있는 중앙 허브입니다. 개발자들은 Smithery를 통해 다양한 외부 도구와 데이터를 LLM에 통합하여 보다 강력한 AI 시스템을 구축할 수 있습니다.
Smithery.ai의 주요 기능
배포된 MCP Server 등록
1.claude_desktop_config.json 파일 열기
cloud-cost-server, cloud-asset-server MCP Server 정보 등록
{
"mcpServers": {
"opsnow-mcp-cost-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-cost-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
},
"opsnow-mcp-asset-server-no-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@taejulee/opsnow-mcp-asset-server-no-server",
"--key",
"19e6494b-1fc7-47dc-81fb-2c26fb2f0277"
]
}
}
}
향후 확장 방향 제안: Claude MCP 기반 OpsNow 통합 구조
2.OpsNow Prime과 MCP 결합
2025년 상반기에 출시될 예정인 설치형 CMP 솔루션인 OpsNow Prime에도 MCP 기술을 접목하여, AI를 통한 인프라 작업의 자동화를 가능하게 하고, 사용자가 간단한 명령만으로 복잡한 작업을 수행할 수 있게 도와줍니다.OpsNow Prime는 기업의 IT 인프라와 클라우드 자원을 관리해주는 Private & OnPrem Cloud Management Platform인데, 여기에 MCP를 접목해 AI 비서가 인프라 작업을 쉽게 도와 주는 예제를 보여드리겠습니다. 쉽게 말해, 채팅하듯이 명령하면 가상머신(VM)을 생성하거나 종료하는 일을 AI가 대신 처리해주는 것입니다. 예를들어 관리자가 OpsNow의 AI 챗봇에게 “새로운 가상 서버 하나 만들어줘”라고 요청하면, AI가 알아서 해당 가상화 플랫폼(API)을 호출해 VM을 생성하고 결과를 알려주게 됩니다. 이전에는 이런 서비스를 개발하기 위해서는 많은 시간과 노력, 자원이 필요했지만 개방형 표준인 MCP를 통하면 쉽고, 편하게 연동하여 보다 효율적으로 서비스를 제공할 수 있게 되었습니다.OpsNow 팀은 자체 MCP 서버를 구축하여, 내부 시스템(예: 가상화 하이퍼바이저들의 API)을 MCP 규격으로 엮어놓았습니다. 그리고 Anthropic Claude 같은 LLM을 OpsNow에 연동해 MCP 클라이언트로 활용했습니다. 그 결과 Claude와 같은 AI 모델이 OpsNow MCP 서버를 통해 Proxmox나 VMware 같은 하이퍼바이저에 접속하여, 사용자의 명령을 실제 인프라 작업으로 실행할 수 있게 되었습니다. OpsNow 내부에는 MCP Provider 라는 모듈도 있는데, 이것은 여러 종류의 하이퍼바이저와 OpsNow 자체 API들을 연결해주는 어댑터 역할을 합니다. 즉, AI가 "VM을 삭제해줘"라고 하면 MCP Provider가 해당 VM이 있는 플랫폼을 알아내 **적절한 명령(API 호출)**을 수행하고, 결과를 다시 MCP를 통해 AI에게 전달해 줍니다. 덕분에 사용자는 번거롭게 콘솔에 들어갈 필요 없이 AI에게 말로 지시하는 것만으로도 인프라를 제어할 수 있습니다.Claude Desktop 에서 OpsNow Prime MCP 서버를 활용하여 Proxmox 의 VM을 쉽게 생성/활성화 하고 OpsNow Prime 에서 관리되는 사례를 소개하도록 하겠습니다.MCP 서버 학습부터 생성, 구동까지에 대한 과정에 대한 설명입니다. MCP 서버 학습은 Cursor를 활용하였습니다. node를 활용하는 서버로 기본 구조는 github의 MCP 링크에서 얻을 수 있습니다.
먼저 기본 구조를 활용하기 위해 MCP 서버 예제 git repo 에서 clone 으로 소스를 다운받고 Postman의 collection 파일과 ts파일을 통해 학습을 진행한 뒤 OpsNow Prime MCP 서버를 생성하였습니다.
postman collection file
JavaScript
"item":[
{
"name":"Proxmox",
"item":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
"request":{
"auth":{
"type":"bearer",
... 중략
},
... 중략
},
"response":[
{
"name":"VM 리스트 조회(PRX-IF-VM-003)",
... 중략
],
... 중략
route.ts
JavaScript
import { Express, Request, Response } from 'express';
import { ProxmoxApiManager } from './proxmox/proxmoxApiManager';
import { getLogger } from './utils/logger';
const logger = getLogger('Routes');
const proxmoxManager = ProxmoxApiManager.getInstance();
export const setupRoutes = (app: Express) => {
// 기본 헬스 체크 엔드포인트
app.get('/api/health', (req: Request, res: Response) => {
res.status(200).json({ status: 'ok', message: 'Prime MCP 서버가 정상 동작 중입니다.' });
});
// 노드 관련 엔드포인트
app.get('/api/nodes', async (req: Request, res: Response) => {
try {
const result = await proxmoxManager.getNodes();
res.status(200).json(result);
} catch (error) {
logger.error('노드 목록 조회 실패:', error);
res.status(500).json({ error: '노드 목록을 조회하는 중 오류가 발생했습니다.' });
}
});
// ....(중략)
학습을 진행 한 후 OpsNow Prime MCP 서버에 학습된 결과로 소스파일이 생성이 되고 이를 빌드하기 위해 아래와 같이 명령어를 입력합니다. 현재 node 버전은 20 이상을 사용하였습니다. 서버 실행에 필요한 모듈을 설치하고 빌드를 진행한 뒤 서버가 정상적으로 구동 되는지 확인합니다. OpsNow Prime MCP 서버의 경우 LLM 모델별로 차이가 존재 했지만, 정확도를 높이기 위해 재 학습과 테스트를 하였습니다.
## node 버전 확인
node -version
## 프로젝트 build
npm install & npm run build
## 프로젝트 정상기동 확인
node dist/index.js
cursor 에서 OpsNow Prime MCP 서버 테스트를 실행하라고 하면 api 호출 테스트가 진행이 되고 문제가 생기면 스스로 수정을 합니다. 오류가 없는것을 확인하고 방금만든 MCP 서버를 등록하기 위해 cursor 상단 세팅버튼을 눌러 등록을 진행합니다.
좌측의 MCP 클릭하여 MCP 관리 화면으로 이동합니다.
위 화면에서 add new global MCP server를 클릭 후 args에 build 후 생성된 index.js 파일의 절대경로를 지정해줍니다.
이후에는 cursor 또는 Claude 를 통해 서버 생성 및 인스턴스 정보 호출 명령을 하면 관련된 API를 호출하여 요청한 작업을 수행하게 됩니다. 이 과정에서, api의 정의 또는 인증정보가 정확하지 않다면 여러번 오류가 생길 수 있으며, cursor를 통해 자동으로 재학습 및 재빌드 과정을 거치게 됩니다.
Cursor에서도 해당 MCP 서버를 활용할 수 있지만, MCP 서버가 실제로 cross platform에서도 동작을 잘하는지, 테스트 해볼겸 생성된 MCP 서버를 Claude Desktop 에서 기능테스트를 진행했습니다. Claude에서 MCP를 등록하는 방법은 아래와 같습니다
이제 학습된 MCP 서버를 활용하여 자원을 관리하기 위한 준비를 마쳤습니다. 이제 Claude Desktop 에서 간단하게 “Prime Proxmox에 VM을 1대 생성해줘.” 라고 입력만 하면 OpsNow Prime MCP 서버를 연동해서 VM 을 생성하게 됩니다.
화면과 같이 쉽고 빠르게 Proxmox 에 VM 이 생성되는것을 확인할 수 있고, OpsNow Prime 에서도 생성된 VM 과 상태를 확인할 수 있습니다. 주목할 점은 진행도중 스토리지 연결 오류등이 발생해도 다른 가능한 방안을 스스로 판단하여 VM 생성을 문제없이 완료 하였습니다. 생성된 화면은 Proxmox 콘솔에서도 실시간으로 조회가 가능하고, OpsNow Prime 의 VM 관리 메뉴에서도 실시간으로 생성된 VM 과 상태를 확인할 수 있습니다.
이제 생성된 자원을 중단/삭제 하도록 하겠습니다. Claude Desktop 에서 “방금 생성한 VM을 삭제해줘.” 라고 입력하면 방금 생성된 VM을 알아서 중지하는 API 를 호출한 뒤 삭제까지 진행이 됩니다.
Proxmox 콘솔에서 실시간으로 삭제된 것을 확인할 수 있습니다.
OpsNow의 MCP 활용은 이미 일부 기능을 통해 증명되고 있습니다. 현재 Proxmox 가상화 환경을 대상으로 VM 생성, 조회, 삭제 등의 기능을 MCP를 통해 구현하여 개발 및 테스트를 완료했습니다
이어서 VM 종료 등 추가 기능도 확장해 나가고 있습니다. 예를 들어 기존에는 관리자가 Proxmox 웹 인터페이스에 들어가 수동으로 VM을 만들었다면, 이제는 OpsNow AI 비서에게 명령하는 것으로 같은 작업이 자동화되는 것입니다.
흥미로운 점은, 이런 기능이 특정 가상화 제품에 한정되지 않고 VMware, OpenStack 등으로 쉽게 범용화될 수 있다는 점입니다. OpsNow 팀이 한 번 MCP 표준에 맞춰 연결을 구현해두었기 때문에, 새로운 플랫폼을 붙이는 것도 비교적 수월합니다. 또한 앞서 언급한대로, 폐쇄망으로 운용되는 데이터 센터 환경에서도 오픈소스 LLM과 MCP 서버를 배포하면 이러한 AI 기능을 동일하게 제공할 수 있습니다.
또한 OpsNow Prime은 On-Premise 인프라 운영의 관점에서 자원의 생성/삭제 등의 관리를 넘어, 미사용/이상자원에 대한 탐지 및 자동화 대처, 자원최적화 자동화, 시스템 장애에 대한 자동화 대처, ITSM(자원신청/승인)에 대한 부분에도 MCP 서버를 지원하는 로드맵을 갖고 기능개발을 진행중입니다.
OpsNow 사례에서 볼 수 있듯이, MCP를 도입하면 AI가 데이터 센터의 손과 발의 역할을 할 수 있게 되고, 인프라 운영에 새로운 자동화의 바람을 불러일으킬 것으로 기대됩니다.
_______________________________________________________________________________________________________________________________________
이처럼 Anthropic의 MCP는 고립된 AI에게 세상의 정보를 가져다 주는 만능 커넥터로서 등장하였고, 점점 그 활용 범위를 넓혀가고 있습니다. 초기 단계이긴 하지만 업계의 많은 관심을 받고 있으며, OpsNow와 같은 사례를 통해 현실적인 이점도 속속 증명되고 있습니다. 앞으로 MCP가 얼마나 빠르게 표준으로 자리잡고 우리 일상 속 서비스에 녹아들지 지켜볼 만한 대목입니다. 데이터와 AI를 잇는 **“MCP 시대”**가 성큼 다가오고 있습니다.