모든 MCP 서버를 위한 하나의 엔드포인트

MCP 도구 정의로 컨텍스트를 태우는 일, 이제 그만.

onemcp는 여러분의 모든 Model Context Protocol(MCP) 서버를 하나의 포털 엔드포인트 뒤로 통합합니다. AI 클라이언트는 한 번만 연결하면 됩니다 — 라우팅, 네이티브 OAuth, Code Mode는 포털이 처리하므로, 에이전트는 수많은 도구 정의에 파묻히는 대신 도구를 호출하는 스크립트를 작성할 수 있습니다.

~90%더 작아진 시스템 프롬프트
1개 엔드포인트, N개 서버
3개의 메타 도구, 수백 개가 아니라
~/.config/mcp.json
{
  "mcpServers": {
    "github": { "url": "github.mcp", "auth": "ghp_…" },
    "slack": { "url": "slack.mcp", "auth": "xoxb-…" },
    "postgres": { "url": "pg.internal", "auth": "pg_…" },
    // +17개 서버 더
  }
}

// 서버 20개 · 요청당 480개 이상의 도구

# 문제점

도구마다 제각각인 서버, 로그인, 그리고 도구 정의의 장벽.

모든 MCP 서버는 매 요청마다 수백 개의 도구 정의를 프롬프트에 쏟아붓습니다 — 모델이 아무 일도 하기 전에 컨텍스트와 비용부터 태워버리는 것이죠.

onemcp 없이~15,000 토큰

모든 도구 정의를, 매 요청마다

onemcp와 함께~500 토큰

search · describe · execute만

요청당 컨텍스트 사용량이 약 97% 감소 — 모델은 도구 스키마가 아니라 여러분의 문제에 컨텍스트 창을 씁니다.

프롬프트 페이로드 · tools[]
{ "name": "github.create_issue",
  "inputSchema": { "type": "object", "properties": { repo, title, body?, labels? } } },
{ "name": "github.search_issues",
  "inputSchema": { "type": "object", "properties": { query, state?, sort? } } },
{ "name": "github.create_pull_request",
  "inputSchema": { "type": "object", "properties": { repo, head, base, title } } },
{ "name": "slack.post_message",
  "inputSchema": { "type": "object", "properties": { channel, text, thread_ts? } } },
{ "name": "slack.list_channels",
  "inputSchema": { "type": "object", "properties": { types?, limit? } } },
{ "name": "postgres.query",
  "inputSchema": { "type": "object", "properties": { sql, params? } } },
{ "name": "postgres.list_tables",
  "inputSchema": { "type": "object", "properties": { schema? } } },
{ "name": "linear.create_issue",
  "inputSchema": { "type": "object", "properties": { team, title, priority? } } },
{ "name": "notion.create_page",
  "inputSchema": { "type": "object", "properties": { parent, properties, children? } } },
{ "name": "jira.create_ticket",
  "inputSchema": { "type": "object", "properties": { project, summary, type } } },
{ "name": "stripe.create_refund",
  "inputSchema": { "type": "object", "properties": { charge, amount? } } },
{ "name": "sentry.list_issues",
  "inputSchema": { "type": "object", "properties": { project, query? } } }
// …468개의 정의가 더 있고, 매 턴마다 다시 전송됩니다

# 해결책

하나의 포털, 세 개의 도구, 나머지는 에이전트가 씁니다.

onemcp는 여러분의 모든 서버를 단일 포털 엔드포인트 뒤에 둡니다. 포털은 모든 도구를 노출하는 대신 단 세 개만 노출하고, 모델이 그것들을 호출하는 스크립트를 작성하게 합니다 — 바로 Cloudflare의 MCP Code Mode입니다. 실제 왕복 과정을 클릭해 보세요:

portal › search
요청
portal.search({ query: "open a GitHub issue" })
응답
[
  { tool: "github.create_issue", score: 0.98 },
  { tool: "github.search_issues", score: 0.71 }
]

프록시 계층은 어떻게 맞물리는가

클라이언트는 오직 포털하고만 대화합니다. 필요한 것을 찾아낸 뒤, 한 번의 호출로 전체 작업을 끝내는 스크립트 하나를 작성합니다 — 전체 도구 세트를 매 프롬프트에 욱여넣고 수십 번 왕복하는 대신에 말이죠.

AI 클라이언트
Claude · Cursor · 에이전트
❯_onemcp 게이트웨이
searchdescribeexecute
라우팅 · OAuth · 포털별 인증
MCP 서버
GitHubSlackPostgres+17

# 제공하는 것

에이전트가 실제로 일하는 방식에 맞춰 설계.

통합 엔드포인트

모든 MCP 클라이언트를 하나의 포털 URL에 연결하세요. 업스트림 서버를 추가하거나 교체해도 다시는 클라이언트 설정을 건드릴 필요가 없습니다.

네이티브 업스트림 OAuth

포털은 완전한 OAuth 플로우로 업스트림 서버에 인증합니다 — 자격 증명은 호스트 측에 머물며, 여러 클라이언트에 흩어지지 않습니다.

Code Mode의 효율

세 개의 메타 도구가 수백 개의 정의를 대체합니다. 모델은 스키마에 파묻히는 대신 여러분의 도구를 호출하는 스크립트를 작성합니다.

포털별 인증 범위

같은 서버라도 포털마다 다른 자격 증명을 가질 수 있습니다 — 인증은 계정이 아니라 멤버십에 범위가 지정됩니다.

포털 가져오기 및 내보내기

포털을 환경 간에 옮기거나, 구성 전체를 하나의 이식 가능한 설정 파일로 공유하세요.

요청 로그

포털을 거쳐 흐르는 모든 클라이언트 요청을 확인하여, 에이전트가 실제로 무엇을 호출하는지 디버깅할 수 있습니다.

# 근거

LLM은 MCP를 직접 호출하는 것보다, MCP를 호출하는 코드를 작성하는 데 더 능숙하다.
CloudflareCode Mode: MCP를 더 잘 쓰는 방법
~90%
더 작아진 시스템 프롬프트
Zero
도구 정의 과부하
20+
개 서버, 하나의 엔드포인트
3
개의 메타 도구, 수백 개가 아니라

서버 배선은 그만. 에이전트를 출시하세요.

몇 분 만에 포털을 띄우고, 클라이언트를 하나의 엔드포인트로 향하게 한 뒤, 나머지는 에이전트에게 맡기세요.