지난 주에 제 분석 SaaS용 모델 컨텍스트 프로토콜(MCP) 서버를 배포했습니다. 이제 Claude 데스크탑, Cursor, 그리고 MCP 호환 클라이언트는 직접 트래픽, 수익, 그리고 튜플 데이터를 쿼리할 수 있습니다.
이것은 제가 어떻게 만들었는지, 무엇이 성공했는지, 그리고 놀랍게 생각했던 몇 가지 패턴에 대한 단서입니다.
MCP가 무엇인지 간략히 설명합니다
MCP는 AI 클라이언트가 도구를 호출하고 외부 서버에서 자원을 읽을 수 있게 해주는 프로토콜입니다. LLM 도구 호출을 위한 REST로 생각해보세요. 안정적인 스키마와 발견 기능을 갖추고 있습니다.
서버 틀
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
const server = new Server({
name: 'zenovay',
version: '1.0.0',
}, {
capabilities: {
tools: {},
resources: {}
}
})
도구 정의
server.setRequestHandler('tools/list', async () => ({
tools: [
{
name: 'get_traffic',
description: 'Get pageview and visitor counts for a site over a date range',
inputSchema: {
type: 'object',
properties: {
site: { type: 'string' },
from: { type: 'string' },
to: { type: 'string' }
},
required: ['site', 'from', 'to']
}
}
]
}))
나를 놀랐던 패턴: 구조화된 반환
원시 JSON보다 훨씬 나음: 짧은 자연어 요약과 데이터를 반환합니다. Claude는 요약을 응답에 사용하고 JSON은 후속 질문에 사용합니다.
예상치 못했던 일
사용자들이 Claude에게 내가 대시보드를 만들지 않았던 일을 요청하기 시작했습니다:
- "이번 주와 지난 주의 유료 트래픽 전환율을 비교해줘"
- "어떤 5페이지가 주간 페이지뷰에서 가장 큰 하락이 있었나요"
- "지난 30일 동안 내 튜널 완료율에서 어떤 변화가 있었는지 요약해주세요"
Claude는 여러 도구 호출을 연쇄하여 이를 수행합니다. 저는 그런 뷰를 구축할 필요가 없었습니다. 도구는 원자적이며, Claude는 조합합니다.
이것이 MCP에 대해 제가 진정으로 새로운 것이라고 생각하는 부분입니다. 인터페이스는 LLM이며, 백엔드는 잘 형성된 도구입니다.
설치
npm install -g @zenovay/mcp를 클라우드 데스크탑 설정에 추가합니다.
사이트: zenovay.com
오픈 소스 MCP 서버 작업도 여기서 이루어지나요? 다른 사람들이 발견한 패턴이 궁금합니다.
발레리오










