Cursor는 AI 기반의 통합 개발 환경(IDE)으로, VSCode(Visual Studio Code)를 기반으로 하여 개발자 생산성을 극대화하는 다양한 기능을 제공합니다. 기본적으로 VSCode 인터페이스와 똑같기 때문에 빠르게 적응하기 쉬우며, Copilot처럼 자연어로 코드 작성 및 수정이 가능합니다. 특히 전체 코드베이스를 이해하고 이에 대한 질문에 답변하는 기능이 뛰어납니다. 내 폴더구조와 여러 파일들을 Context 인식해서 그에 맞게 폴더/파일/코드라인 단위로 코드를 생성해줍니다.
MCP(Model Context Protocol)는 AI 애플리케이션이 외부 데이터 소스나 도구와 통신할 수 있도록 표준화된 인터페이스를 제공하는 오픈 프로토콜입니다. MCP는 AI 모델이 다양한 외부 시스템과 상호 작용할 수 있도록 지원하여, 개발자가 복잡한 통합 작업 없이도 AI 기능을 확장할 수 있게 합니다.
표준화된 인터페이스를 제공한다는 말은, 동일한 방법으로 외부 데이터 소스나 도구를 호출해서 사용할 수 있다는 것입니다. 마치 Server-Client의 호출이 HTTP프로토콜로 표준화되어 있듯이, MCP Server - MCP Client사이의 통신 프로토콜이 표준화 되어 있는것입니다.
주로 MCP 서버는 외부 데이터 소스를 제공하거나, 외부 API를 실행하는 기능을 제공하고, 호스트 애플리케이션(예: Cursor, Claude Desktop 등)은 MCP 클라이언트를 통해 MCP 서버를 호출합니다. 주요 시나리오는 유저가 호스트 애플리케이션에 질문을 하면, 호스트 애플리케이션은 어떤 MCP Server를 어떻게 호출할지 AI 모델을 이용해서 판단하고, MCP Server를 실행하고, 그 결과를 취합하여 최종 결론을 내는 방식입니다.
Cursor는 강력한 AI 기능을 제공하지만, 기본적으로 웹 검색 기능이 내장되어 있지 않습니다. 따라서 최신 정보를 반영하거나 외부 데이터를 실시간으로 조회하는 데에는 한계가 있습니다.
예를 들어, "최신 AI 기술 동향을 알려줘"와 같은 질문을 할 경우, Cursor는 자체적으로 웹 검색을 수행하지 않기 때문에 최신 정보를 제공하는 데 어려움이 있습니다.
이러한 문제를 해결하기 위해, Tavily Search API를 제공하는 MCP를 Cursor에 연동하여 실시간 웹 검색 기능을 구현할 수 있습니다. Tavily Search는 웹 검색 API를 통해 다양한 웹 데이터를 조회할 수 있는 기능을 제공합니다.
이번 글에서는 Tavily Search를 MCP로 연동하여 Cursor 내에서 실시간 웹 검색 기능을 구현하는 방법을 단계별로 안내하겠습니다. 이를 통해 Cursor의 기능을 확장하고, 최신 정보를 반영한 개발 환경을 구축할 수 있습니다.
Cursor는 공식 웹사이트에서 다운로드하여 설치할 수 있습니다. 설치 방법은 운영 체제에 따라 다르므로, 해당 페이지의 안내를 참고하시기 바랍니다.
MCP 서버 실행을 위해 Node.js와 npx가 필요합니다. Node.js는 공식 웹사이트에서 설치할 수 있으며, 설치 시 npx도 함께 제공됩니다.
Tavily Search API를 사용하려면 API 키가 필요합니다. Tavily 공식 웹사이트에 가입한 후, 대시보드에서 API 키를 발급받을 수 있습니다. 이 키는 이후 MCP 서버와 Cursor에서 사용됩니다.
원래는 MCP Server를 모아두는 Smithery.ai(https://smithery.ai/) 에서 쉽게 TavilySearch MCP Server를 실행하려고 했으나.. 일시적으로 사이트 장애가 있어서 직접 내 local에 실행하기로 했습니다.
Smithery에 가입하여 아래 페이지에 접속한 후 우측에 Install을 누르면 Smithery에 MCP 서버가 실행되고, Smithery에서 제공하는 endpoint를 제공한다고 들었는데...
https://smithery.ai/server/@tavily-ai/tavily-mcp/api
로그인만 하면 Smithery 페이지 장애가 나서 더이상 실행할 수 없었습니다.
GitHub의 Tavily-MCP Repository 를 찾아서 따라 내 Local에 MCP Server를 실행해봤습니다.
https://github.com/tavily-ai/tavily-mcp?tab=readme-ov-file
뭔가를 설치하기는 싫어서 npx를 통해 간단히 실행했습니다.
1.3단계에서 발급받은 TAVILY의 APIKEY를 환경변수로 설정해주고, npx로 mcp 서버를 실행했을 때 이미지와 같이 서버가 running중이라는 말이 뜨면 성공입니다.
export TAVILY_API_KEY=<내 API KEY>
npx -y tavily-mcp@0.1.4
자, 이제 tavily-mcp@0.1.4
가 잘 돌아간다는 것을 확인했으니 cursor에 MCP Server를 등록하겠습니다.
{
"mcpServers": {
"tavily-mcp": {
"command": "npx",
"args": ["-y", "tavily-mcp@0.1.4"],
"env": {
"TAVILY_API_KEY": "<내 API_KEY>"
}
}
}
}
이렇게 등록을 하면 아래와 같이 cursor가 command 명령어를 실행해 tavily-mcp
서버를 띄워놓은것을 확인할 수 있습니다.
Cursor에서 Command+I
를 눌러 채팅을 연 후 Agent를 선택한 후 채팅을 쳐보겠습니다.
"langchain_mcp_adapters 이용해서 숫자를 더하고 곱하는 tool이 있는 mcp server 만들어줘 python" 이라고 질문해봤습니다.
처음에는 제 로컬 파일중에서 관련내용을 찾았는데, 관련내용이 없었습니다.
두번째는 웹검색을 하고자 했습니다. 웹검색을 사용해도 되는지 제 동의를 구했습니다.
검색한 내용을 바탕으로 최종 코드를 작성하여 파일을 생성했습니다.
MCP 연동하는게 생각보다 너무 쉬운데, 개발 생산성은 매우 올라가는것 같습니다.
Smithery 나 Glama 같은 사이트에 보면 MCP 서버가 엄청 많은데, 웹서치 이외에도 다양한 툴을 연동해보면 좋을 것 같습니다.
하지만 MCP서버를 많이 등록하면 등록할수록 호스트(Cursor)가 질문에 맞는 서버를 고르는 정확도가 떨어질 수 있으니 적당히 필요에 맞게 조절해가며 사용하면 좋을 것 같습니다.(커서는 최대 40개까지 등록할 수 있습니다.)
그리고 Claude Desktop 에도 MCP 연동할 수 있다는데, 채팅만 사용하려면 Claude에도 연동하면 쓸만할 것 같다는 생각이 들었습니다.