사이트 도구는 ChatGPT에서 WebMCP 표준안을 구현한 기능입니다. WebMCP를 사용하면 웹사이트는 사람들이 쓰는 기존 인터페이스와 함께 AI 에이전트가 직접 호출할 수 있는 기능도 제공할 수 있습니다. 사용자와 에이전트는 같은 로그인 세션에서 같은 페이지를 보며 작업할 수 있습니다.
ChatGPT 데스크톱 앱의 내장 브라우저에서 웹페이지를 열면 ChatGPT Work와 Codex가 해당 페이지에서 제공하는 사이트 도구를 찾아 사용할 수 있습니다.
사이트 도구를 사용하려면 지원되는 모델과 도구를 제공하는 페이지가 필요합니다. 사용자 계정이나 관리형 워크스페이스의 브라우저 정책을 통해 접근 권한을 부여받을 수 있습니다. 브라우저 설정과 사이트 권한은 그대로 적용됩니다.
WebMCP와 MCP의 차이
모델 컨텍스트 프로토콜(MCP)은 AI 애플리케이션을 로컬 또는 원격 서버에 연결합니다. MCP 도구는 웹페이지를 열어 두지 않아도 작동할 수 있습니다. 예를 들어 서비스에서 정보를 검색하거나 API로 레코드를 관리할 수 있습니다.
WebMCP를 사용하면 웹사이트는 미리 정의한 도구를 통해 에이전트에 기능을 제공할 수 있습니다. 에이전트가 사이트를 방문하면 도구를 찾을 수 있으므로 사용자는 해당 기능을 쓰기 위해 별도의 MCP 서버를 설치하거나 새 연결을 설정할 필요가 없습니다.
캔버스를 편집하거나 대시보드를 살펴볼 때처럼 사용자와 에이전트가 같은 내용을 봐야 할 때 이 방식이 유용합니다. MCP 서버를 포함한 플러그인은 페이지를 열어 두지 않아도 작동하는 연동 기능을 제공할 수 있습니다. 웹사이트는 두 방식 모두 지원할 수 있습니다.
브라우저에서 사이트 도구 사용하기
내장 브라우저에서 웹사이트를 열고 ChatGPT Work 또는 Codex에 작업을 도와 달라고 요청하세요. 페이지에서 사이트 도구를 제공하면 에이전트는 사용자가 보고 있는 웹사이트에서 작업에 필요한 기능을 찾아 사용할 수 있습니다. 예를 들어 문서 편집기에서는 에이전트가 특정 섹션을 찾거나 사용자가 검토할 댓글을 남길 수 있습니다.
브라우저 주소 표시줄에서 사이트 도구를 선택하면 웹사이트가 어떤 기능을 제공하는지 볼 수 있습니다. 사용 가능한 사이트 도구를 선택해 개별 도구를 확인하세요. 브라우저는 웹사이트가 요청을 실행하기 전에 각 요청을 검사하며, 에이전트는 페이지에서 변경 사항을 확인할 수 있습니다. 최근 활동이 있으면 최근 사용을 선택해 출처를 열고 도구 호출 내역을 확인하세요.
아래 예시에서 사용 가능한 사이트 도구를 펼치면 Margin에서 제공하는 도구를 확인할 수 있습니다.
도구는 해당 도구를 제공하는 페이지에 속합니다. 페이지를 닫거나 다른 페이지로 이동하면 해당 도구를 더 이상 사용할 수 없게 될 수 있습니다. 적합한 도구가 없어도 에이전트는 일반 브라우저 기능으로 작업할 수 있는 경우가 있습니다.
예시: OpenAI 문서 살펴보기
ChatGPT Learn과 OpenAI Developers는 문서를 찾고 읽을 수 있는 사이트 도구를 제공합니다. Composer에서 ChatGPT에서 열기를 선택하세요. 데스크톱 앱에서 새 채팅 옆에 브라우저가 열리면서 Learn이 표시되고, 채팅에는 바로 보낼 수 있도록 아래 프롬프트가 입력됩니다.
에이전트는 다음 도구로 관련 페이지를 검색하고 내용을 읽거나 페이지를 열 수 있습니다.
| 도구 | 기능 |
|---|---|
search_openai_docs |
OpenAI 문서를 검색합니다. |
lookup_page |
경로 또는 URL로 문서 페이지를 읽습니다. |
lookup_context |
현재 문서의 라우트와 선택한 텍스트를 읽습니다. |
navigate_to_page |
현재 문서 사이트에서 조건에 맞는 페이지를 엽니다. |
generate_custom_guide |
맞춤형 빌드 가이드 또는 학습 가이드 생성을 시작하고 생성 상태와 링크를 반환합니다. |
Docs Agent는 맞춤형 가이드를 비동기 방식으로 생성합니다. 링크를 받은 시점에도 가이드를 생성 중일 수 있습니다.
보안 및 사용자 제어
웹사이트에서 제공하는 도구 정의와 실행 결과는 신뢰할 수 없는 콘텐츠로 취급하세요. 도구 이름이나 데이터를 읽기만 한다는 설명만으로는 실제 동작을 확인할 수 없습니다. 웹사이트의 지시만으로 에이전트에 작업과 무관한 정보를 공유하거나 민감한 작업을 수행할 권한이 생기지는 않습니다.
내장 브라우저는 도구를 호출할 때마다 실행 전에 안전성을 검토합니다. 메시지 전송, 구매, 데이터 삭제, 권한 변경처럼 중요한 결과를 초래하는 작업에도 기존 웹사이트 접근 및 확인 정책이 그대로 적용됩니다. 브라우저는 각 호출을 해당 호출이 시작된 페이지 및 도구 등록 정보와 연결합니다. 이러한 검사는 위험을 줄이지만 웹사이트나 그 출력 결과의 신뢰성을 보장하지는 않습니다.
사이트 도구 활성화 옵션은 설정 > 브라우저 > 권한에서 끌 수 있습니다. 민감한 정보를 공유하거나 변경 사항을 바탕으로 작업을 진행하기 전에 사이트와 요청된 작업, 실행 결과를 확인하세요.
보안 취약점은 OpenAI의 보안 버그 바운티 프로그램을 통해 신고하세요. AI 안전 관련 위험은 안전 버그 바운티 프로그램을 참고하세요. 각 프로그램의 신고 범위와 제출 지침을 따르세요.
제한 사항
현재 사이트 도구는 ChatGPT 데스크톱 앱의 내장 브라우저에서만 실행됩니다.
웹사이트에 WebMCP 추가하기
Codex에 개발 중인 웹 앱이나 Site에 WebMCP 지원을 추가해 달라고 요청할 수 있습니다. 에이전트가 어떤 작업을 할 수 있어야 하는지 설명하고 애플리케이션의 기존 로직과 권한을 그대로 활용해 달라고 하세요.
JavaScript로 도구를 등록하거나 HTML 양식에 WebMCP 속성을 추가하세요. 내장 브라우저는 최상위 페이지뿐 아니라 동일 출처 iframe과 교차 출처 iframe에서도 도구를 찾을 수 있습니다. 각 프레임은 보안 컨텍스트를 사용해야 합니다. 브라우저는 도구를 제공하는 출처에 대한 접근 권한을 확인합니다. exposedTo를 생략해도 에이전트가 도구를 찾을 수 있습니다.
애플리케이션이 이미 지원하는 작업부터 시작하세요. 다음과 같은 예가 있습니다.
- 대시보드에서 에이전트가 날짜 범위를 설정하고 차트의 원본 데이터를 살펴봅니다.
- 문서 편집기에서 에이전트가 특정 섹션을 찾거나 수정을 제안하거나 사용자가 검토할 댓글을 남깁니다.
- 여행 계획 앱에서 사용자가 지도를 살펴보는 동안 에이전트가 여러 선택지를 비교하고 일정을 업데이트합니다.
직접 코드를 작성할 수도 있습니다. 페이지의 JavaScript 모듈에서 브라우저의 지원 여부를 확인하고 도구를 등록하세요. 다음 읽기 전용 예시는 현재 페이지의 제목을 반환합니다.
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "get_page_title",
description: "Read the title of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({ title: document.title }),
});
}호환되는 에이전트는 get_page_title을 찾아 현재 페이지 제목을 받아올 수 있습니다. 도구가 인수를 받는다면 입력 스키마에 인수를 명시하고 execute 핸들러에서 해당 인수로 애플리케이션의 기존 로직을 호출하세요.
입력 범위를 좁게 유지하고 사이드 이펙트를 명시하세요. 결과를 확인하는 데 필요한 정보를 충분히 반환하세요. 애플리케이션의 기존 인증, 권한 부여, 입력 검증 로직을 사용하세요. 사용자가 직접 이용하거나 WebMCP를 지원하지 않는 브라우저로 접속할 때도 기존 인터페이스를 그대로 사용할 수 있게 하세요.
API의 세부 사항과 예시는 WebMCP 명세와 Chrome 개발자 가이드를 참고하세요.
