API가 Claude나 Cursor와 같은 AI 에이전트와 대화하여 엔드포인트를 스마트하고 대화형 도구로 만들 수 있다면 좋겠다고 생각해보신 적이 있나요? 자, 준비하세요. Stainless와 OpenAPI 사양을 사용하여 **API를 MCP 서버로 전환하는 방법**에 대해 자세히 알아볼 것입니다. 이 대화형 가이드는 설정부터 배포까지의 과정을 안내하며, 작동 여부를 증명하는 테스트도 포함합니다. **모델 컨텍스트 프로토콜(MCP)**을 사용하여 API를 AI 친화적으로 만드는 방법을 재미있고 접근하기 쉬운 방식으로 설명해 드릴 것입니다. 시작해 볼까요!
개발팀이 최고의 생산성으로 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하시나요?
Apidog은 여러분의 모든 요구 사항을 충족하며, Postman을 훨씬 더 저렴한 가격으로 대체합니다!
MCP 서버란 무엇이며, 왜 중요할까요?
**모델 컨텍스트 프로토콜(MCP)**은 AI 시스템을 위한 범용적인 핸드셰이크와 같습니다. 이는 AI 클라이언트(Claude Desktop, Cursor, VS Code Copilot 등)가 자연어 또는 프로그래밍 가능한 프롬프트를 사용하여 API와 상호작용할 수 있도록 하는 JSON-RPC 기반 표준입니다. **MCP 서버**는 API의 엔드포인트를 AI 에이전트가 이해하고 사용할 수 있는 도구로 번역하는 다리 역할을 합니다.
**API를 MCP 서버로 전환**해야 하는 이유는 무엇일까요? 이는 판도를 바꾸는 일입니다:
- **AI 기반 상호작용**: AI 에이전트가 "사용자 데이터 가져오기" 또는 "새 주문 생성"과 같은 간단한 프롬프트로 API를 호출할 수 있도록 합니다.
- **쉬운 자동화**: Stainless는 최소한의 코딩으로 OpenAPI 사양에서 MCP 서버를 생성하여 프로세스를 자동화합니다.
- **확장성**: 로컬 개발 도구부터 프로덕션급 앱에 이르기까지 다양한 AI 클라이언트에 API를 노출합니다.
- **개발자 친화적**: API를 다시 작성할 필요 없이 MCP 레이어를 추가하고 AI가 어려운 작업을 처리하도록 하세요.
결제 플랫폼, 콘텐츠 API 또는 맞춤형 서비스를 구축하든, API를 **MCP 서버**로 전환하면 더 스마트하고 접근하기 쉬워집니다.
Stainless는 어떻게 활용될까요?
Stainless는 OpenAPI 사양에서 SDK와 이제 MCP 서버를 생성하는 데 있어 개발자의 가장 좋은 친구입니다. 이 실험적인 MCP 서버 생성 기능은 OpenAPI 정의를 가져와 **MCP 서버**로 바로 사용할 수 있는 TypeScript 서브패키지를 생성합니다. 이는 여러분이 수고할 필요 없이 API의 엔드포인트가 AI가 접근할 수 있는 도구가 된다는 것을 의미합니다. 어떻게 가능한지 알아봅시다!

Stainless를 사용하여 API를 MCP 서버로 전환하기
전제 조건
시작하기 전에 다음 사항을 확인하세요:
- **OpenAPI 사양**: API에 대한 유효한 OpenAPI (Swagger) 파일 (예:
openapi.yaml
또는openapi.json
). - **Stainless 계정**: stainless.com에서 가입하여 프로젝트를 생성하세요.
- **Apidog 계정**: OpenAPI 사양 테스트용 (https://apidog.com/ 방문).
- **Node.js 20+**: 로컬 테스트 및 MCP 서버 실행용 (nodejs.org/en/download).
- **npm**: 패키지 관리를 위해 Node.js와 함께 제공됩니다.
- **MCP 호환 클라이언트**: 테스트용 Claude Desktop, Cursor 또는 VS Code Copilot.
- **API 키**: API에 인증이 필요한 경우, API 키를 준비하세요.
1단계: Apidog으로 OpenAPI 사양 테스트하기
**OpenAPI 사양**을 **MCP 서버**로 전환하기 전이나 후에도 테스트해보는 것이 좋습니다. 바로 이럴 때 **Apidog**이 유용합니다! Apidog의 직관적인 플랫폼을 통해 OpenAPI 사양을 가져오고 테스트하여 API의 엔드포인트가 MCP 통합을 위한 준비가 되었는지 확인할 수 있습니다. 방법은 다음과 같습니다:
- **Apidog 방문 및 회원가입 또는 로그인**:
- 계정이 있다면 **로그인** (오른쪽 상단)을 클릭하거나, 안내에 따라 **회원가입**을 클릭하여 계정을 만드세요.
2. 새 프로젝트 생성 및 OpenAPI 사양 가져오기:
- 로그인 후 대시보드에서 **프로젝트 생성**을 클릭합니다.
- 프로젝트 생성 페이지에서 **가져오기**를 클릭합니다.
- OpenAPI 파일의 URL을 입력하거나(예: https://my-api.com/openapi.yaml) **또는 파일 업로드**를 클릭하여 로컬 openapi.yaml 또는 openapi.json을 선택합니다.

- Apidog은 파일을 파싱하고 계정에 새 API를 생성합니다 (복잡한 사양의 경우 몇 분이 소요될 수 있습니다).
3. API 설정 구성:
- 성공적으로 가져온 후 설정 페이지로 이동합니다. API의 이름, 설명 및 인증 요구 사항(예: API 키 또는 OAuth)을 사용자 정의하세요.

4. 엔드포인트 추가 및 테스트:
- Apidog의 인터페이스를 사용하여 엔드포인트와 문서를 추가하거나 편집하세요.
- **MCP 서버**를 생성하기 전에 Apidog에서 직접 엔드포인트를 테스트하여 예상대로 작동하는지 확인하세요.

Apidog으로 테스트하면 **OpenAPI 사양**이 견고하다는 것을 보장하여 Stainless MCP 생성 프로세스를 더 원활하게 만들고 **MCP 서버**를 더 안정적으로 만듭니다.
2단계: TypeScript로 Stainless 프로젝트 설정하기
**Stainless 프로젝트 생성**:
- stainless.com에 로그인하여 새 프로젝트를 생성합니다.
- OpenAPI 사양 (YAML 또는 JSON)을 업로드하여 API의 엔드포인트를 정의합니다.
- 대상 언어로 **TypeScript**를 선택합니다 (MCP 서버 생성에는 TypeScript가 필요하지만, 레거시
node
대상도 지원됩니다).

**MCP 서버 생성 활성화**:
- 프로젝트의 **SDK 추가** 섹션에서 **MCP 서버**를 선택하여 생성을 활성화합니다.
- 이렇게 하면 프로젝트의
packages/mcp-server
아래에 서브패키지가 생성됩니다.

3단계: MCP 서버 생성 구성하기
Stainless 프로젝트 설정에서 MCP 서버 옵션을 구성합니다. 다음 내용으로 구성 파일(예: stainless.yaml
)을 생성하거나 편집합니다:
targets:
typescript:
package_name: my-org-name
production_repo: null
publish:
npm: false
options:
mcp_server:
package_name: my-org-name-mcp
enable_all_resources: true
package_name
: MCP 서버 패키지 이름을 지정합니다 (기본값은 SDK 이름에-mcp
가 붙습니다).enable_all_resources: true
: 기본적으로 모든 API 엔드포인트를 MCP 도구로 노출합니다.
이는 Stainless에게 API의 엔드포인트를 AI가 접근할 수 있는 도구로 구현하는 **MCP 서버** 서브패키지를 생성하도록 지시합니다.
4단계: 엔드포인트 노출 및 도구 설명 사용자 정의하기
기본적으로 OpenAPI 사양의 모든 엔드포인트는 MCP 도구가 됩니다. 사용자 정의하려면:
- **특정 엔드포인트 선택**:
enable_all_resources: false
로 설정하고 특정 리소스 또는 메서드를 활성화합니다:
resources:
users:
mcp: true
methods:
create:
mcp: true
orders:
methods:
create:
mcp: true
endpoint: post /v1/orders
2. 도구 메타데이터 세부 조정:
- 더 나은 AI 상호작용을 위해 도구 이름과 설명을 사용자 정의합니다:
resources:
users:
methods:
create:
mcp:
tool_name: create_user
description: Creates a new user profile with name and email.
이렇게 하면 **MCP 서버**가 원하는 엔드포인트만 명확하고 AI 친화적인 설명과 함께 노출되도록 보장합니다.
5단계: 도구 필터링 및 동적 도구로 대규모 API 처리하기
엔드포인트가 많은 API(50개 이상)의 경우, 각 엔드포인트를 별도의 도구로 노출하면 AI의 컨텍스트 창을 압도할 수 있습니다. 다음 전략을 사용하세요:
- **도구 필터링**:
- 리소스, 작업 유형(예: 읽기/쓰기) 또는 사용자 정의 태그별로 런타임에 도구를 필터링합니다:
npx -y my-org-mcp --resource=users
2. 동적 도구 모드:
- 동적 도구를 활성화하여 세 가지 메타 도구:
list_api_endpoints
,get_api_endpoint_schema
,invoke_api_endpoint
를 노출합니다. 이는 대규모 API의 상호작용을 단순화합니다:
npx -y my-org-mcp --tools=dynamic
동적 도구를 사용하면 AI가 엔드포인트를 동적으로 검색하고 호출하여 컨텍스트 과부하를 줄일 수 있습니다.
6단계: MCP 서버 구축 및 게시하기
**MCP 서버 구축**:
- SDK를 구축할 때 Stainless는
packages/mcp-server
에 MCP 서버를 생성합니다. - Stainless 프로젝트에서 빌드 명령을 실행합니다 (자세한 내용은 프로젝트의
README.md
를 확인하세요).
**npm에 게시**:
- Stainless 설정에서 프로덕션 저장소를 구성합니다.
- MCP 서버를 별도의 npm 패키지로 게시합니다 (예:
my-org-name-mcp
):
npm publish

7단계: MCP 클라이언트 설치 및 구성하기
게시 후, AI 클라이언트와 함께 사용하기 위해 MCP 서버 패키지를 로컬 또는 원격으로 설치합니다. Claude Desktop의 경우:
- **패키지 설치**:
- 로컬에서 테스트하는 경우,
packages/mcp-server
로 이동하여README.md
지침을 따릅니다. - 원격 사용의 경우, npm을 통해 설치합니다:
npm install my-org-name-mcp
2. Claude Desktop 구성:
claude_desktop_config.json
을 엽니다 (macOS:~/Library/Application Support/Claude
, Windows:%APPDATA%\Claude
).

- 추가:
{
"mcpServers": {
"my_org_api": {
"command": "npx",
"args": ["-y", "my-org-mcp"],
"env": {
"MY_API_KEY": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
}
my-org-mcp
를 패키지 이름으로,MY_API_KEY
를 API 키로 바꿉니다.- 저장하고 Claude Desktop을 다시 시작합니다.

3. 다른 클라이언트:
- Cursor 또는 VS Code Copilot의 경우, 해당 설정(예: VS Code의
settings.json
또는 Cursor의 도구 및 통합 패널)에 동일한 구성을 추가합니다.

8단계: MCP 서버 테스트하기
**MCP 서버**를 테스트해 봅시다! Claude Desktop (또는 다른 MCP 클라이언트)에서 다음 프롬프트를 시도해보세요:
alex@example.com
API에 POST /users
엔드포인트(OpenAPI 사양에 정의된 대로)가 있는 경우, **MCP 서버**는 이 프롬프트를 API 호출로 변환하여 사용자를 생성하고 다음과 같은 응답을 반환합니다:
User created: { "name": "Alex", "email": "alex@example.com", "id": "123" }
이는 **MCP 서버**가 작동하며 AI 기반 상호작용을 위한 준비가 되었음을 확인시켜 줍니다.
문제 해결 팁
- **빌드 오류?** OpenAPI 사양이 유효하고 Stainless 프로젝트에서 TypeScript가 활성화되어 있는지 확인하세요.
- **클라이언트 연결 안 됨?** MCP 구성에서 패키지 이름과 API 키를 확인하고 클라이언트를 다시 시작하세요.
- **프롬프트 작동 안 됨?** 엔드포인트 구성을 확인하고 프롬프트된 작업이 노출된 도구와 일치하는지 확인하세요.
- **컨텍스트 과부하?** 동적 도구 모드를 활성화하거나 대규모 API의 리소스를 필터링하세요.
MCP 서버를 위한 모범 사례
- **도구 집중 유지**: AI에 필요한 엔드포인트만 노출하여 컨텍스트 과부하를 방지합니다.
- **명확한 설명**: LLM 친화적인 도구 설명을 작성하여 프롬프트 정확도를 높입니다.
- **대규모 API에 동적 도구 사용**: 메타 도구를 사용하여 대규모 API를 단순화하고 컨텍스트 공간을 절약합니다.
- **보안 인증**: 프로덕션 환경에서 API 키에 환경 변수 또는 OAuth를 사용합니다.
- **먼저 로컬에서 테스트**: npm에 게시하기 전에
README.md
지침을 사용하여 테스트합니다.
결론
이것으로 끝입니다! **Stainless**를 사용하여 **API를 MCP 서버로 전환**하여 OpenAPI 사양을 AI 준비된 강력한 도구로 바꾸는 방법을 방금 배웠습니다. 엔드포인트 구성부터 사용자 생성 프롬프트로 테스트하는 것까지, 이 가이드는 API를 Claude 또는 Cursor와 같은 AI 에이전트와 쉽게 연결할 수 있도록 합니다. 소규모 프로젝트를 개선하든 프로덕션 API를 확장하든, **MCP 서버**는 더 스마트하고 대화형 통합을 위한 티켓입니다.
시도해 볼 준비가 되셨나요? OpenAPI 사양을 준비하고 Stainless를 실행하여 AI 세상에서 API를 빛내보세요.
개발팀이 최고의 생산성으로 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하시나요?
Apidog은 여러분의 모든 요구 사항을 충족하며, Postman을 훨씬 더 저렴한 가격으로 대체합니다!