Cursor에서 MCP 서버 연동해 사내 API 문서 실시간 참조하기

문제 상황

사내 REST API가 100개가 넘는데, 매번 Swagger 문서를 브라우저로 열어서 확인하는 게 흐름을 끊었다. Cursor에서 코드 작성 중에 "이 엔드포인트 파라미터가 뭐였지?"하고 물어보면 정확한 답을 주지 못했다.

MCP 서버 구현

Model Context Protocol을 사용해 간단한 MCP 서버를 만들었다. 사내 API 문서(OpenAPI 스펙)를 읽어서 Cursor에게 제공하는 구조다.

import { MCPServer } from '@modelcontextprotocol/sdk';
import fs from 'fs/promises';

const server = new MCPServer({
  name: 'internal-api-docs',
  version: '1.0.0'
});

server.tool('search-endpoint', async ({ method, path }) => {
  const spec = JSON.parse(await fs.readFile('./openapi.json', 'utf-8'));
  const endpoint = spec.paths[path]?.[method.toLowerCase()];
  
  if (!endpoint) return { error: 'Not found' };
  
  return {
    summary: endpoint.summary,
    parameters: endpoint.parameters,
    requestBody: endpoint.requestBody,
    responses: endpoint.responses
  };
});

server.listen();

Cursor 설정

.cursor/config.json에 MCP 서버를 등록했다.

{
  "mcpServers": {
    "internal-api": {
      "command": "node",
      "args": ["./mcp-server/index.js"]
    }
  }
}

실사용 효과

이제 Cursor에서 "POST /api/users 엔드포인트에 필요한 body 필드 알려줘"라고 물으면 정확한 스펙을 즉시 받아볼 수 있다. 컨텍스트 스위칭이 줄어서 개발 속도가 체감상 20% 정도 빨라진 느낌이다.

API 문서뿐만 아니라 사내 컴포넌트 가이드, 코딩 컨벤션 문서도 같은 방식으로 연동할 수 있을 것 같다. MCP는 생각보다 구현이 간단해서 팀 내 워크플로우 개선에 활용도가 높다.