// 여러분의 클라이언트
모든 MCP 클라이언트
Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity를 포함해 문서화된 클라이언트 24개, 또는 직접 만든 에이전트까지.
MCP를 지원하는 모든 클라이언트를 위해
통합은 도구별로 이루어지는 것이 아니라 프로토콜 차원에서 이루어집니다. Maguyva는 하나의 URL에서 작동하는 표준 MCP 서버이므로, 에이전트가 어디서 실행되든(Claude Code, Codex, Cursor, Gemini, Windsurf, Antigravity, Zed, Cline, 혹은 직접 만든 무언가) 동일한 조회 가능한 리포지토리 지도를 얻습니다. 한 번 인덱싱하면, 연결하는 모든 클라이언트가 근거를 갖춘 동일한 질문을 하게 됩니다.
Free 등급: 리포지토리 3개, 인덱싱된 리포지토리 라인 최대 5만 줄, 카드 등록 불필요.
하나의 MCP 서버. 모든 클라이언트. 도구별 플러그인도, 락인도 없습니다.네 가지 조각. 각각 맡은 역할이 있습니다.
// 여러분의 클라이언트
Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity를 포함해 문서화된 클라이언트 24개, 또는 직접 만든 에이전트까지.
// 프로토콜
이미 모두가 사용하고 있는 개방형 표준입니다.
// 코드베이스
MCP 서버 하나. 근거 있는 저장소 사실을, file:line과 함께 반환합니다.
// 누가 돈을 내는가
에이전트는 좌석 요금을 내지 않습니다. 가격 보기
개방형 프로토콜은 임시방편이 아니라 올바른 선택입니다. 도구별 플러그인 대신 MCP 위에 구축하는 것이야말로, 더 나은 에이전트가 나올 때마다 다시 통합하는 일을 피하는 방법입니다. 다음과 같은 내용에 적합한 곳입니다:
계속 그렇게 하세요. MCP를 표준으로 삼는 것이 정답입니다.
하지만 프로토콜은 파이프일 뿐입니다. 질문과 답을 실어 나르지만, 여러분의 코드베이스를 알지는 못합니다. 실제로 심볼, 호출 지점, 의존성을 매핑하는 무언가가 반대쪽 끝에 있어야 합니다.
어떤 단일 에이전트의 규칙 파일로도 고칠 수 없는 네 가지 실패 양상.
새 에이전트를 고르면 다시 여러분의 리포지토리에 대해 아무것도 모르는 채로 시작합니다. 같은 파일을 다시 붙여넣고, 같은 컨텍스트를 다시 고정하고, 같은 규칙을 다시 작성합니다. 애초에 공유 레이어가 아니었기 때문에 그 작업은 이전되지 않습니다.
CLAUDE.md, .cursor/rules, AGENTS.md — 각각은 도구별로 존재하며, 어느 것도 코드의 조회 가능한 인덱스가 아닙니다. 클라이언트를 바꾸면 손으로 만든 지도는 그 자리에 남겨집니다.
깊은 코드베이스 컨텍스트를 하나의 벤더 플러그인에 연결한다는 것은, 다른 에이전트를 시도하는 날 그것을 다시 구축해야 한다는 뜻입니다. 컨텍스트가 좋을수록 떠나는 비용도 커집니다.
MCP는 클라이언트와 서버 사이에서 도구와 컨텍스트를 이동시킵니다. 여러분의 심볼, 호출 지점, 의존성 그래프를 알지는 못합니다. 실제로 질문에 답하는 무언가가 반대쪽 끝에 있어야 합니다.
또 하나의 에이전트가 아닙니다. 어떤 MCP 클라이언트든 호출할 수 있는 리포지토리 컨텍스트 서버입니다:
https://maguyva.tools/mcp가 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity는 물론, 오늘 아침에 직접 짠 스크립트에도 서비스를 제공합니다.여러분의 클라이언트는 MCP를 사용합니다.
Maguyva는 코드에 대해 물었을 때 답하는 존재입니다.
패키지와 언어를 넘나듭니다. 클라이언트는 바뀌어도 근거 있는 답은 바뀌지 않습니다.
// workflow 01
agent> 이 모노레포에서 인증은 어디서 일어나나요? graph::query("authentication flow") packages/web/src/auth/session.ts:42 미들웨어 packages/api/src/auth/jwt.ts:88 토큰 검증 packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 RBAC 게이트 → 4개 패키지에 걸친 4개의 진입점, 호출 지점 밀도 순으로 랭킹됨. [exit 0]
Claude Code든, Cursor든, 직접 만든 스크립트든 — 어떤 클라이언트가 쿼리를 보냈는지는 중요하지 않습니다. 동일한 네 개의 파일이 동일한 순위로, 실제 그래프에 근거해 돌아옵니다.
// workflow 02
agent> normalizePhoneNumber는 E.164를 어떻게 처리하나요? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← 실제 구현 packages/api/test/phone.spec.ts:14 jest.mock(...) ← 스텁 [exit 0]
이름은 거짓말을 합니다. 목(mock)은 실제 코드를 가립니다. Maguyva는 질문하는 모든 클라이언트에 대해 동일한 방식으로 테스트 목보다 실제 구현을 위에 올려 랭킹합니다.
// workflow 03
agent> 모노레포 전체에서 QueueDispatcher.publish를 호출하는 곳은 어디인가요? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← gRPC 스텁을 통한 교차 언어 호출 [exit 0]
패키지를 넘나들고, 여러 언어를 쓰는 리포지토리라면 언어까지 넘나들며, 호출 지점이 인라인으로 드러납니다. 내일 에이전트를 바꿔도 영향 범위는 그대로 남아 있습니다. 클라이언트가 아니라 서버에 존재하기 때문입니다.
세 단계로 끝. Free 등급: 리포지토리 3개, 인덱싱된 리포지토리 라인 최대 5만 줄, 카드 등록 불필요.
// step 01
정확한 답변인지 확인할 수 있도록 잘 아는 저장소를 선택하세요. Free 등급은 리포지토리 3개, 인덱싱된 리포지토리 라인 최대 5만 줄까지 지원합니다.
// step 02
// any MCP client: add a remote MCP server
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}
// CLI clients can use the same endpoint:
// https://maguyva.tools/mcp// step 03
리포지토리 하나와 검증 가능한 질문 하나로 시작하세요. 예를 들어 "패키지 전반에서 formatInvoice를 호출하는 곳은 어디인가요?" 같은 질문입니다. 답이 여러분이 생각한 것과 일치한다면, 이후 연결하는 다른 모든 클라이언트도 동일하게 근거 있는 결과를 얻게 됩니다.