Skip to main content
Glama

개요

API 테스트를 위한 가장 완벽한 MCP 서버입니다. 42개의 도구, 제로 설정, 이보다 뛰어난 것은 없습니다. 단순한 요청 전송기가 아닙니다. 이는 완전한 테스트 워크벤치입니다: 단언(assertion)이 포함된 HTTP 요청, 변수 추출을 통한 다단계 흐름, 스키마 인식 모의 데이터가 포함된 OpenAPI 가져오기, 백분위수 지표를 사용한 부하 테스트, 환경 간 응답 비교, 대량 테스트 실행기, 재사용 가능한 컬렉션, 디렉토리 범위 지정 및 영구 기본값이 있는 환경 그룹, Postman 가져오기/내보내기, cURL 내보내기를 지원합니다. 모든 것은 자연스러운 대화로 이루어집니다. 계정, 클라우드, 생성된 파일이 필요 없습니다. 모든 것이 인라인으로 실행되며 사용자가 소유한 일반 JSON으로 저장됩니다.


대화형 사용

도구 이름이나 매개변수를 배울 필요가 없습니다. 원하는 것을 설명하면 AI가 올바른 도구를 선택합니다.

"Create a group called my-project and add this directory as scope"
"Set up a dev environment with BASE_URL http://localhost:3000"
"Switch to prod for this session"
"Set dev as the default environment"
"Import my API spec from /api-docs-json"
"Show me all user endpoints"
"GET /users"
"Create a user with random data"
"Verify that DELETE /users/5 returns 204"
"Login as admin, extract the token, then fetch dashboard stats"
"How fast is /health with 50 concurrent requests?"
"Run all my saved smoke tests"
"Compare the users endpoint between dev and prod"
"Export the create-user request as curl"
"Export my collection to Postman"

OpenAPI 사양을 가져왔다면, AI는 이미 모든 엔드포인트, 필수 필드, 유효한 열거형 값을 알고 있습니다. "블로그 게시물 생성"이라고 말하면 스키마를 읽고 올바르게 요청을 구성하므로 추측할 필요가 없습니다.


설치

Claude Code

claude mcp add --scope user api-testing -- npx -y @cocaxcode/api-testing-mcp@latest

Claude Desktop

설정 파일에 추가하세요 (~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows)):

{
  "mcpServers": {
    "api-testing": {
      "command": "npx",
      "args": ["-y", "@cocaxcode/api-testing-mcp@latest"]
    }
  }
}

Cursor / Windsurf

프로젝트 루트의 .cursor/mcp.json 또는 .windsurf/mcp.json에 추가하세요:

{
  "mcpServers": {
    "api-testing": {
      "command": "npx",
      "args": ["-y", "@cocaxcode/api-testing-mcp@latest"]
    }
  }
}

VS Code.vscode/mcp.json에 추가:

{
  "servers": {
    "api-testing": {
      "command": "npx",
      "args": ["-y", "@cocaxcode/api-testing-mcp@latest"]
    }
  }
}

Codex CLI (OpenAI):

codex mcp add api-testing -- npx -y @cocaxcode/api-testing-mcp@latest

또는 ~/.codex/config.toml에 추가:

[mcp_servers.api-testing]
command = "npx"
args = ["-y", "@cocaxcode/api-testing-mcp@latest"]

Gemini CLI~/.gemini/settings.json에 추가:

{
  "mcpServers": {
    "api-testing": {
      "command": "npx",
      "args": ["-y", "@cocaxcode/api-testing-mcp@latest"]
    }
  }
}

빠른 시작

설치 후, 상대 경로가 자동으로 확인되도록 환경을 설정하세요:

"Create an environment called dev with BASE_URL http://localhost:3000"

API에 Swagger/OpenAPI 사양이 있는 경우 가져오세요:

"Import my API spec from http://localhost:3000/api-docs-json"

다음 명령으로 확인하세요: "List my environments" — 방금 만든 환경이 보여야 합니다.


기능

HTTP 요청

헤더, 쿼리 매개변수, JSON 본문, 인증 및 {{variable}} 보간을 사용하여 모든 HTTP 메서드를 보냅니다. 상대 URL은 BASE_URL을 기준으로 자동 확인됩니다.

"POST to /api/users with name Jane and email jane@company.com using my bearer token"

지원: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS — Bearer / API Key / Basic 인증 — 사용자 지정 타임아웃.

단언(Assertions)

구조화된 성공/실패 결과로 응답을 검증합니다:

"Verify that GET /api/health returns 200, body.status is ok, and responds in under 500ms"
PASS — 3/3 assertions passed
  status === 200
  body.status === "ok"
  timing.total_ms < 500

10가지 연산자: eq, neq, gt, gte, lt, lte, contains, not_contains, exists, type

요청 흐름

단계 간 변수 추출을 통해 요청을 연결합니다. 인증 흐름 및 CRUD 시퀀스에 적합합니다.

"Login as admin@test.com, extract the access token, then use it to fetch all users"
flow_run({
  steps: [
    {
      name: "login",
      method: "POST",
      url: "/auth/login",
      body: { email: "admin@test.com", password: "SecurePass#99" },
      extract: { "TOKEN": "body.access_token" }
    },
    {
      name: "get-users",
      method: "GET",
      url: "/api/users",
      headers: { "Authorization": "Bearer {{TOKEN}}" }
    }
  ]
})

OpenAPI 가져오기

URL 또는 로컬 파일(JSON 및 YAML)에서 사양을 가져옵니다. 가져오면 AI가 모든 엔드포인트, 매개변수 및 스키마를 파악합니다.

"Import my API spec from http://localhost:3000/api-docs-json"
"Import the spec from ./openapi.yaml"
"What parameters does POST /users expect?"

전체 $ref 확인, allOf, oneOf, anyOf를 포함한 OpenAPI 3.x를 지원합니다. OpenAPI 2.0은 부분적으로 지원됩니다.

모의 데이터 생성

OpenAPI 스키마에서 현실적인 가짜 데이터를 생성합니다. 유형, 형식(email, uuid, date-time), 열거형 및 필수 필드를 준수합니다.

"Generate mock data for creating a user"
{
  "email": "user42@example.com",
  "name": "Test User 73",
  "password": "TestPass123!",
  "role": "admin"
}

부하 테스트

N개의 동시 요청을 실행하고 성능 지표를 얻습니다:

"How fast is the health endpoint with 50 concurrent requests?"
LOAD TEST — GET /api/health
Requests:    50 concurrent
Successful:  50 | Failed: 0
Req/sec:     23.31

  Min: 45ms | Avg: 187ms
  p50: 156ms | p95: 412ms | p99: 523ms
  Max: 567ms

응답 비교(Diffing)

두 요청을 실행하고 응답을 필드별로 비교합니다. 회귀를 감지하거나 환경을 비교합니다.

"Compare the users endpoint between dev and prod"

대량 테스트

컬렉션의 모든 저장된 요청을 실행(또는 태그별 필터링)하고 요약을 얻습니다:

"Run all my saved smoke tests"
BULK TEST — 8/8 passed | 1.2s total
  health       — GET  /health      → 200 (45ms)
  list-users   — GET  /users       → 200 (123ms)
  create-post  — POST /blog        → 201 (89ms)
  login        — POST /auth/login  → 200 (156ms)

컬렉션

태그와 함께 재사용할 요청을 저장합니다. 회귀 테스트 제품군을 구축하세요.

"Save this request as create-user with tags auth, smoke"
"List all requests tagged smoke"

환경

환경은 BASE_URL, 토큰, API 키와 같은 변수를 보관하며 컨텍스트별로 분리합니다. 시스템에는 세 가지 핵심 개념이 있습니다:

그룹. 그룹은 환경을 구성하고 디렉토리에 바인딩합니다. 그룹에는 환경을 공유하는 N개의 범위(디렉토리)와 정확히 하나의 기본 환경이 있습니다. 그룹 내에서 환경을 생성하면 해당 그룹에 속하게 됩니다. 그룹의 범위인 디렉토리로 cd하면 해당 환경을 자동으로 사용할 수 있게 됩니다.

기본값. 그룹의 범위에 진입하면 기본 환경이 자동으로 활성화됩니다. 세션 간에 유지되므로 편집기를 다시 시작하거나 터미널을 다시 열어도 기본값은 그대로 유지됩니다. 한 번 설정하면 잊어버리세요.

활성. 활성 환경은 현재 변수 확인에 사용되는 환경입니다. 범위에 진입할 때는 기본값으로 시작하지만 언제든지 전환할 수 있습니다. 활성 선택은 세션 전용이며 다시 시작하면 기본값으로 재설정됩니다.

그룹과 연결되지 않은 전역 환경도 존재합니다. 이는 env_switch를 통한 명시적 활성화가 필요하며 세션 간에 유지되지 않습니다.

실제 예시:

"Create a group called my-api"
"Add this directory as scope to my-api"
"Create a dev environment with BASE_URL http://localhost:3000"   <- auto-joins group, auto-default
"Create a prod environment with BASE_URL https://api.example.com"
"List environments"                                              <- shows dev (active, default) and prod
"Switch to prod"                                                 <- session only
"Set prod as default"                                            <- persists

자동 보간. URL, 헤더, 쿼리 매개변수 또는 요청 본문의 모든 {{variable}}은 요청이 실행되기 전에 활성 환경을 기준으로 확인됩니다. BASE_URL을 한 번 설정하면 모든 상대 경로가 정상적으로 작동합니다.

자격 증명은 절대 기기를 떠나지 않습니다. 환경 파일은 ~/.api-testing/에 저장된 일반 JSON입니다. 클라우드로 동기화되지 않습니다. 내보내기에 포함되지 않습니다. git으로 추적되지 않습니다. 토큰과 비밀은 디스크 위, 사용자의 통제하에 안전하게 유지됩니다.

Postman 가져오기 및 내보내기

양방향 Postman 지원. Postman과 AI 워크플로우 간에 원활하게 마이그레이션하세요.

"Import my Postman collection from ./exported.postman_collection.json"
"Export my collection to Postman"
"Export the dev environment for Postman"

컬렉션: Postman v2.1 형식. 폴더는 태그가 됩니다. 인증은 폴더/컬렉션 수준에서 상속됩니다. 원시 JSON, x-www-form-urlencoded, form-data 본문을 지원합니다.

환경: value보다 currentValue를 우선합니다. 비활성화된 변수는 건너뜁니다. 선택적 activate 플래그를 지원합니다.

컬렉션: 요청은 태그별 폴더로 그룹화됩니다. 인증은 Postman의 기본 형식으로 매핑됩니다. {{variables}}는 그대로 유지됩니다.

환경: 모든 변수는 Postman 호환 형식으로 enabled: true로 내보내집니다.

네이티브 내보내기 및 가져오기

컬렉션과 환경을 휴대용 .atm/ 폴더로 내보냅니다. 팀과 공유하거나 프로젝트 간에 복사하세요.

"Export my collection and dev environment"
your-project/
└── .atm/
    ├── collection.json
    └── dev.env.json

참고: .atm/은 첫 내보내기 시 .gitignore에 자동으로 추가됩니다.

cURL 내보내기

저장된 모든 요청을 확인된 변수가 포함된 cURL 명령으로 변환하여 바로 붙여넣을 수 있습니다.

"Export the create-user request as curl"
curl -X POST \
  'https://api.example.com/users' \
  -H 'Authorization: Bearer eyJhbGci...' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Jane","email":"jane@company.com"}'

도구 참조

9개 카테고리의 42개 도구:

카테고리

도구

개수

요청

request

1

테스트

assert

1

흐름

flow_run

1

컬렉션

collection_save, collection_list, collection_get, collection_delete

4

환경

env_create, env_list, env_set, env_get, env_switch, env_rename, env_delete, env_spec

8

그룹

env_group_create, env_group_list, env_group_delete, env_group_add_scope, env_group_remove_scope, env_set_default, env_set_group

7

API 사양

api_import, api_spec_list, api_endpoints, api_endpoint_detail

4

모의

mock

1

유틸리티

load_test, export_curl, diff_responses, bulk_test, export_collection, import_collection, export_environment, import_environment, export_postman_collection, import_postman_collection, export_postman_environment, import_postman_environment

12

팁: 도구를 직접 호출할 필요가 없습니다. 원하는 것을 설명하면 AI가 올바른 도구를 선택합니다.


저장소

모든 것은 로컬에 있습니다. 데이터베이스, 클라우드 동기화, 원격 분석이 없습니다. 모든 데이터는 언제든지 읽고, 백업하고, 삭제할 수 있는 일반 JSON 파일로 ~/.api-testing/에 저장됩니다.

~/.api-testing/
├── groups/               # Environment groups with scopes and defaults
├── environments/         # Environment variables — tokens, keys, passwords
├── collections/          # Saved requests (shareable, no secrets)
├── specs/                # Imported OpenAPI specs
└── project-envs.json     # Session-only active environments (cleared on restart)

전역 저장소 vs 프로젝트 내보내기. ~/.api-testing/ 디렉토리는 사용자의 개인 전역 저장소이며, 자격 증명이 여기에 보관되고 절대 외부로 나가지 않습니다. 컬렉션이나 환경을 내보내면 프로젝트 루트의 .atm/으로 이동합니다. 해당 폴더는 첫 내보내기 시 .gitignore에 자동으로 추가되지만, 커밋하기로 선택하더라도 자격 증명은 ~/.api-testing/에 남아 있으며 .atm/으로 복사되지 않습니다. 비밀 유출 걱정 없이 .atm/ 내보내기를 팀과 안전하게 공유할 수 있습니다.

기본 저장 경로를 재정의하세요:

{
  "env": { "API_TESTING_DIR": "/path/to/custom/.api-testing" }
}

경고: API_TESTING_DIR을 git 저장소 내부 경로로 재정의하는 경우, 자격 증명이 푸시되지 않도록 .api-testing/.gitignore에 추가하세요.


아키텍처

src/
├── index.ts              # Entry point (shebang + StdioServerTransport)
├── server.ts             # createServer() factory
├── tools/                # 42 tool handlers (one file per category)
│   ├── request.ts        # HTTP requests (1)
│   ├── assert.ts         # Assertions (1)
│   ├── flow.ts           # Request chaining (1)
│   ├── collection.ts     # Collection CRUD (4)
│   ├── environment.ts    # Environment management (8)
│   ├── group.ts          # Environment groups (7)
│   ├── api-spec.ts       # OpenAPI import/browse (4)
│   ├── mock.ts           # Mock data generation (1)
│   ├── load-test.ts      # Load testing (1)
│   └── utilities.ts      # curl, diff, bulk, import/export (12)
├── lib/                  # Business logic (no MCP dependency)
│   ├── http-client.ts    # fetch wrapper with timing
│   ├── storage.ts        # JSON file storage engine
│   ├── schemas.ts        # Shared Zod schemas
│   ├── url.ts            # BASE_URL resolution
│   ├── path.ts           # Dot-notation accessor (body.data.0.id)
│   ├── interpolation.ts  # {{variable}} resolver
│   └── openapi-parser.ts # $ref + allOf/oneOf/anyOf resolution
└── __tests__/            # 10+ test suites, 120+ tests

스택: TypeScript (strict) · MCP SDK · Zod · Vitest · tsup


MIT · 제작: cocaxcode

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cocaxcode/api-testing-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server