Cursor는 MCP(Model Context Protocol) 서버를 사용하여 에이전트에게 코드 외의 다양한 도구—데이터베이스, 브라우저, 문서, 출판 도구 등—를 제공합니다. 각 서버는 mcp.json 파일에 한 번만 설명하면 되며, 편집기와 Cursor CLI 모두 이 파일을 사용합니다.
요약: 프로젝트 내 .cursor/mcp.json(또는 모든 프로젝트의 경우 ~/.cursor/mcp.json)의 "mcpServers" 아래에 서버를 추가하고, 로컬 서버용 command 또는 원격 서버용 url을 지정합니다. 사이드바의 Customize에서 기능을 활성화하고, OAuth가 필요한 경우 로그인하며, 시작되지 않으면 MCP Logs 출력을 확인합니다. 아래 내용은 Cursor의 MCP 문서를 기반으로 하며, 2026년 10월 22일에 확인된 내용입니다.
Cursor에서 MCP 서버란 무엇인가요?
MCP 서버는 Cursor가 작업하는 동안 에이전트가 호출할 수 있는 도구를 노출합니다. Cursor는 다음 세 가지 방식으로 연결을 지원합니다:
- stdio: 사용자가 한 명인 셸 명령을 통해 Cursor가 시작하는 로컬 프로세스입니다.
- Streamable HTTP: OAuth 로그인 기능을 갖춘 로컬 또는 원격 URL 서버입니다.
- SSE: 구형의 URL 기반 전송 방식이며, 이 역시 OAuth를 사용하는 로컬 또는 원격 연결이 가능합니다.
Cursor는 MCP 도구, 프롬프트, 리소스, 루트(roots), 그리고 유도(elicitation)를 지원하며, 도구는 이미지를 반환할 수 있고 이는 채팅에 첨부됩니다.
Cursor의 MCP 설정 파일은 어디에 있나요?
- 프로젝트: 프로젝트 폴더 내
.cursor/mcp.json에 위치하며, 해당 프로젝트에서만 필요한 도구를 위한 것입니다. 커밋하면 팀원들도 동일한 서버를 사용하게 됩니다.
- 전역(Global): 홈 폴더 내
~/.cursor/mcp.json에 위치하며, 모든 곳에서 사용하려는 도구들을 위한 것입니다.
Cursor에 MCP 서버를 추가하는 방법은 무엇인가요?
Cursor가 나열한 서버들은 원클릭으로 설치할 수 있습니다: 사이드바의 Customize를 열고 해당 서버를 선택한 후 Add to Cursor를 클릭하고 로그인합니다. 다른 모든 서버의 경우, mcp.json에 직접 추가해야 합니다. 로컬 서버는 명령(command)을 사용합니다:
{
"mcpServers": {
"context7": {
...
원격 서버는 URL과 함께 OAuth 대신 고정 토큰을 사용하는 경우 헤더를 추가해야 합니다:
{
"mcpServers": {
"skryvo": {
...
파일을 저장하면 서버가 'Customize'에 나타나며, 여기서 켜거나 끌 수 있습니다. 비활성화된(off) 서버는 로드되지 않으며 채팅에서도 표시되지 않습니다.
mcp.json에서 API 키를 제외하는 방법은 무엇인가요?
Cursor는 command, args, env, url, 그리고 headers 내의 변수를 채우기 때문에, 파일에 비밀 정보를 포함하지 않으면서도 이름을 지정할 수 있습니다:
"headers": { "Authorization": "Bearer ${env:MY_SERVICE_TOKEN}" }
다른 변수로는 ${userHome}, ${workspaceFolder}, ${workspaceFolderBasename}, 그리고 ${pathSeparator} (또는 ${/})가 있습니다. 로컬 서버는 .env와 같은 envFile을 읽을 수도 있지만, 원격 서버는 할 수 없습니다. 이는 커밋하는 프로젝트의 mcp.json에서 가장 중요합니다: 파일에 ${env:...}를 넣고 각 사용자의 환경 변수에 해당 키를 설정해야 합니다.
Cursor에서 원격 MCP 서버에 로그인하는 방법은 무엇인가요?
대부분의 원격 서버는 OAuth를 사용하며, Cursor가 이를 처리합니다. 서버가 로그인을 요청하면, Cursor는 해당 서비스 자체의 동의 페이지를 엽니다. 만약 제공업체가 고정된 CLIENT_ID를 제공하거나 동적 등록을 지원하지 않는 경우, 서버 항목에 auth 객체를 추가하고 여기에 CLIENT_ID (필요한 경우 CLIENT_SECRET 또는 scopes)를 포함해야 합니다. 제공업체에 등록하기 위한 리디렉션 주소는 데스크톱 앱의 경우 http://localhost:8787/callback이며, 웹상의 Cursor의 경우 https://www.cursor.com/agents/mcp/oauth/callback입니다.
Cursor는 MCP 도구를 실행하기 전에 묻나요?
네, 기본적으로 그렇습니다. Cursor는 MCP 도구를 호출하기 전에 승인을 요청하며, 도구 이름 옆의 화살표는 전송하려는 인수를 보여줍니다. MCP 도구는 터미널 명령어와 동일한 실행 모드를 따르므로, 자동 검토(auto-review) 모드에서는 사용자가 허용 목록에 추가한 도구만 질문 없이 실행됩니다. 게시(post), 전송(send), 또는 삭제하는 도구는 승인을 받도록 유지하십시오: 읽기는 자동으로 할 수 있지만, 쓰기 작업은 사용자에게 기다려야 합니다.
Cursor CLI에서 MCP 서버를 사용할 수 있나요?
네. CLI는 에디터와 동일한 mcp.json을 읽으며, 프로젝트 폴더를 먼저 확인하고 그 다음 전역 파일을 확인합니다. Cursor의 CLI 문서에서:
agent mcp list # 서버를 탐색하고 활성화하며 구성합니다
agent mcp list-tools skryvo # 서버의 도구와 매개변수를 표시합니다
agent mcp login skryvo # mcp.json에서 서버에 로그인합니다
...
Cursor에서 MCP 서버가 작동하지 않는 이유는 무엇인가요?
- 로그를 읽어보세요. 출력(Output) 패널을 열고 (Mac의 경우 Cmd+Shift+U) MCP 로그를 선택하면 시작, 각 도구 호출 및 오류를 확인할 수 있습니다.
- 켜져 있는지 확인하세요. Customize 설정에서 꺼진 서버는 전혀 로드되지 않습니다.
- 파일을 확인하세요. 서버는 반드시 "mcpServers" 내부에 위치해야 하며, 쉼표(comma)가 누락되면 파일 전체가 로드되지 않습니다.
- 작동하지 않는 npm 서버를 업데이트하려면, Customize에서 제거하고,
npm cache clean --force를 실행한 다음, 다시 추가하세요.
하나의 손상된 서버는 채팅창에 오류를 표시하지만, 다른 서버들은 계속 작동합니다.
작동하는 예시: Cursor에서 게시물 작성하기
위의 skryvo 항목을 추가하고, Cursor가 요청할 때 로그인한 다음, "방금 병합한 기능에 대한 LinkedIn 게시물을 작성하여 화요일 오전 9시에 예약해 줘."와 같은 프롬프트를 시도해보세요. Cursor는 귀하 브랜드의 목소리로 초안을 작성하고 보여주며, 사용자가 도구 호출을 승인한 후에만 예약합니다. 자세한 내용은 Cursor 설정 페이지를 참고하세요. 이 서버는 Codex에서도 작동하며 (Codex에 MCP 서버 추가 방법 참조), Claude의 커넥터(connector)로도, 그리고 에이전트 페이지의 다른 에이전트에서도 작동합니다.
공유 서버는 프로젝트 파일에, 개인 서버는 전역(global) 파일에 넣고, 모든 비밀 정보는 ${env:...} 뒤에 숨기세요.
원래 skryvo.ai에서 게시되었습니다.