AI 코딩 에이전트를 위한 프로덕션급 코딩 표준, 아키텍처 패턴 및 보안 가드레일을 강제합니다.
다른 이름 corbat-tech/coding-standards-mcp, coding-standards-mcp, @corbat-tech/coding-standards-mcp
- 스타
- 5
- Tools
- —
- 다운로드, 30일
- 178
- 최신 버전
- 1.0.3
- 마지막 커밋
- 2026년 9월 28일
- 라이선스
- MIT
Corbat MCP란?
Corbat은(는) MCP server입니다. AI 코딩 에이전트를 위한 프로덕션급 코딩 표준, 아키텍처 패턴 및 보안 가드레일을 강제합니다.
프로젝트 README에서 생성된 요약
Corbat MCP server 정보
Corbat은 AI 코딩 에이전트를 위한 프로덕션급 코딩 표준을 강제하도록 설계된 정책 및 품질 엔진입니다. 에이전트가 지원하는 소프트웨어 개발이 아키텍처, 보안 및 코드 품질 측면에서 팀의 특정 기대치를 충족할 수 있도록 공유 컨텍스트와 검증 게이트를 제공합니다. 이 서버는 로컬에서 실행되며 package.json, pom.xml 또는 go.mod와 같은 파일을 읽어 기술 스택을 자동으로 감지하므로 워크플로우에 미치는 오버헤드가 최소화됩니다.
개발자는 Cursor, VS Code, Windsurf, JetBrains, Zed, Claude Desktop을 포함한 다양한 MCP 호환 환경에 이 도구를 통합할 수 있습니다. 메서드 최대 길이, 의존성 주입 요구 사항, 사용자 정의 예외 패턴과 같은 가드레일을 제공하는 방식으로 작동합니다. 사용자는 .corbat.json 설정 파일을 사용하여 이러한 규칙을 사용자 정의하거나 Spring Boot, NestJS, FastAPI, React와 같은 스택용 내장 프로필을 사용하여 멀티 에이전트 워크플로우 전반에서 일관된 구현을 보장할 수 있습니다.
활용 사례
- 1아키텍처 패턴 강제AI 에이전트에게 hexagonal 또는 clean architecture와 같은 특정 아키텍처 패턴을 사용하여 새로운 서비스를 구현하도록 지시합니다.
- 2에러 핸들링 표준화에이전트가 일반적인 에러 throw를 적절한 컨텍스트를 포함하는 도메인 특화 사용자 정의 예외로 교체하도록 지시합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Corbat MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Corbat MCP 설치
$ claude mcp add coding-standards-mcp -- npx -y @corbat-tech/coding-standards-mcpCursor에 Corbat MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"coding-standards-mcp": {
"command": "npx",
"args": [
"-y",
"@corbat-tech/coding-standards-mcp"
]
}
}
}VS Code에 Corbat MCP 설치
.vscode/mcp.json
{
"servers": {
"coding-standards-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@corbat-tech/coding-standards-mcp"
]
}
}
}VS Code CLI에 Corbat MCP 설치
$ code --add-mcp '{"name":"coding-standards-mcp","type":"stdio","command":"npx","args":["-y","@corbat-tech/coding-standards-mcp"]}'Claude Desktop에 Corbat MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"coding-standards-mcp": {
"command": "npx",
"args": [
"-y",
"@corbat-tech/coding-standards-mcp"
]
}
}
}Codex에 Corbat MCP 설치
$ codex mcp add coding-standards-mcp -- npx -y @corbat-tech/coding-standards-mcpCodex config.toml에 Corbat MCP 설치
~/.codex/config.toml
[mcp_servers.coding-standards-mcp] command = "npx" args = ["-y", "@corbat-tech/coding-standards-mcp"]
Gemini CLI에 Corbat MCP 설치
$ gemini mcp add -s user coding-standards-mcp npx -- -y @corbat-tech/coding-standards-mcpGemini settings.json에 Corbat MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"coding-standards-mcp": {
"command": "npx",
"args": [
"-y",
"@corbat-tech/coding-standards-mcp"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능corbat-tech/coding-standards-mcp is public and reachablegithub.com/corbat-tech/coding-standards-mcp ↗통과
- 패키지가 이 저장소를 소스로 명시@corbat-tech/coding-standards-mcp names corbat-tech/coding-standards-mcp as sourcenpmjs.com/package/@corbat-tech/coding-standards-mcp ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-09-28github.com/corbat-tech/coding-standards-mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @corbat-tech/coding-standards-mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음102 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기CORBAT MCP
Policy and quality engine for AI coding agents
Shared standards, context, and verification gates for agent-assisted software delivery.
Designed for MCP-compatible coding tools and multi-agent workflows. See compatibility notes.
⚡ Try it in 30 seconds — just add the config below and start coding.
The Problem
AI-generated code often works locally but misses team-specific review expectations:
| Without Corbat | With Corbat |
|---|---|
| Methods with 50+ lines | Max 20 lines per method |
| No dependency injection | Proper DI with interfaces |
throw new Error('failed') |
Custom exceptions with context |
| Missing or minimal tests | Tests included, TDD approach |
| God classes, mixed concerns | SOLID principles, clean layers |
| Works locally | Reviewable implementation with explicit checks |
Corbat helps by giving agents your team's standards before implementation and by providing validation tools before review or handoff.
Quick Start
1. Add to your MCP config:
{
"mcpServers": {
"corbat": {
"command": "npx",
"args": ["-y", "@corbat-tech/coding-standards-mcp"]
}
}
}
2. Config file location:
| Tool | Location |
|---|---|
| Cursor | .cursor/mcp.json |
| VS Code | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| JetBrains | Settings → AI Assistant → MCP |
| Claude Desktop | ~/.config/Claude/claude_desktop_config.json |
| Claude Code | claude mcp add corbat -- npx -y @corbat-tech/coding-standards-mcp |
Complete setup guide for common MCP-compatible tools
3. Done. Corbat can auto-detect your stack and return matching standards.
Zero overhead. Corbat runs locally and adds ~50ms to detect your stack. After that, it's just context for the AI.
Fully customizable. Don't like a rule? Override it in
.corbat.json. Jump to customization →
See It In Action
You: "Create a user registration service"
Without Corbat, you get:
class UserService {
private users: Map<string, User> = new Map();
register(name: string, email: string, password: string) {
if (!name || !email || !password) throw new Error('Invalid input');
const user = { id: crypto.randomUUID(), name, email, password };
this.users.set(user.id, user);
return user;
}
}
// ✗ Hardcoded storage ✗ Password in plain text ✗ Generic error ✗ No tests
With Corbat, you get:
// Domain
interface UserRepository {
save(user: User): Promise<void>;
findByEmail(email: string): Promise<User | null>;
}
class EmailAlreadyExistsError extends Error {
constructor(email: string) {
super(`Email already registered: ${email}`);
}
}
// Application
class RegisterUserUseCase {
constructor(
private readonly repository: UserRepository,
private readonly hasher: PasswordHasher
) {}
async execute(input: RegisterUserInput): Promise<User> {
const existing = await this.repository.findByEmail(input.email);
if (existing) throw new EmailAlreadyExistsError(input.email);
const user = User.create({
...input,
password: await this.hasher.hash(input.password)
});
await this.repository.save(user);
return user;
}
}
// ✓ Repository interface ✓ Password hashing ✓ Custom error ✓ Testable
// Test included
describe('RegisterUserUseCase', () => {
const repository = { save: vi.fn(), findByEmail: vi.fn() };
const hasher = { hash: vi.fn() };
const useCase = new RegisterUserUseCase(repository, hasher);
beforeEach(() => vi.clearAllMocks());
it('should hash password before saving', async () => {
repository.findByEmail.mockResolvedValue(null);
hasher.hash.mockResolvedValue('hashed_password');
await useCase.execute({ name: 'John', email: 'john@test.com', password: 'secret' });
expect(hasher.hash).toHaveBeenCalledWith('secret');
expect(repository.save).toHaveBeenCalledWith(
expect.objectContaining({ password: 'hashed_password' })
);
});
it('should reject duplicate emails', async () => {
repository.findByEmail.mockResolvedValue({ id: '1', email: 'john@test.com' });
await expect(
useCase.execute({ name: 'John', email: 'john@test.com', password: 'secret' })
).rejects.toThrow(EmailAlreadyExistsError);
});
});
This is the kind of structure Corbat asks agents to consider before handoff.
What Corbat Provides
Corbat provides these guardrails before generation and validation checks during iteration:
Code Quality
| Rule | Why It Matters |
|---|---|
| Max 20 lines per method | Readable, testable, single-purpose functions |
| Max 200 lines per class | Single Responsibility Principle |
| Meaningful names | No data, info, temp, x |
| No magic numbers | Constants with descriptive names |
Architecture
| Rule | Why It Matters |
|---|---|
| Interfaces for dependencies | Testable code, easy mocking |
| Layer separation | Domain logic isolated from infrastructure |
| Hexagonal/Clean patterns | Framework-agnostic business rules |
Error Handling
| Rule | Why It Matters |
|---|---|
| Custom exceptions | UserNotFoundError vs Error('not found') |
| Error context | Include IDs, values, state in errors |
| No empty catches | Every error handled or propagated |
Security-Oriented Checks
| Rule | Why It Matters |
|---|---|
| Input validation | Reject bad data at boundaries |
| No hardcoded secrets | Environment variables only |
| Parameterized queries | Prevent SQL injection |
| Output encoding | Prevent XSS |
Benchmark Results v3.0
We evaluated Corbat across 15 scenarios in 6 languages. The primary benchmark report is mixed and should be read honestly: Corbat won 1/15 scenarios by the original aggregate score, while an alternative value analysis found stronger results for code compactness and maintainability.
What The Data Supports
The strongest observed signal is that Corbat-guided outputs are often smaller and more focused:
| Scenario | With Corbat | Without Corbat | What This Means |
|---|---|---|---|
| Kotlin Coroutines | 236 lines | 1,923 lines | Same functionality, 8x less to maintain |
| Java Hexagonal | 623 lines | 2,740 lines | Clean architecture without the bloat |
| Go Clean Arch | 459 lines | 2,012 lines | Idiomatic Go, not Java-in-Go |
| TypeScript NestJS | 395 lines | 1,554 lines | Right patterns, right size |
This is not enough to claim universal quality improvement. It is evidence that standards context can reduce over-generation in some workflows.
Value Metrics
The value report reweights the same dataset toward efficiency and maintainability:
| Metric | Result | What It Means |
|---|---|---|
| Code Reduction | 67% | Less to maintain, review, and debug |
| Security checks | 100% | No issues detected by benchmark pattern checks |
| Maintainability | 93% win | Easier to understand and modify |
| Architecture Efficiency | 87% win | Better patterns per line of code |
| Cognitive Load | -59% | Faster onboarding for new developers |
Security: No Benchmark Pattern Findings
Every scenario was analyzed using pattern checks inspired by OWASP Top 10 categories. This is not a replacement for SAST, DAST, dependency scanning, manual review, or threat modeling.
- No SQL/NoSQL injection patterns detected
- No XSS patterns detected
- No hardcoded credentials detected
- Input validation patterns present at boundaries
- Error messages did not expose stack traces in the benchmark samples
Languages & Patterns Tested
| Language | Scenarios | Patterns |
|---|---|---|
| ☕ Java | 5 | Spring Boot, DDD Aggregates, Hexagonal, Kafka Events, Saga |
| 📘 TypeScript | 4 | Express REST, NestJS Clean, React Components, Next.js Full-Stack |
| 🐍 Python | 2 | FastAPI CRUD, Repository Pattern |
| 🐹 Go | 2 | HTTP Handlers, Clean Architecture |
| 🦀 Rust | 1 | Axum with Repository Trait |
| 🟣 Kotlin | 1 | Coroutines + Strategy Pattern |
📖 Full benchmark methodology · Value analysis
Built-in Profiles
Corbat auto-detects your stack and applies the right standards:
| Profile | Stack | What You Get |
|---|---|---|
java-spring-backend |
Java 21 + Spring Boot 3 | Hexagonal + DDD, TDD with 80%+ coverage |
kotlin-spring |
Kotlin + Spring Boot 3 | Coroutines, Kotest + MockK |
nodejs |
Node.js + TypeScript | Clean Architecture, Vitest |
nextjs |
Next.js 14+ | App Router patterns, Server Components |
react |
React 18+ | Hooks, Testing Library, accessible components |
vue |
Vue 3.5+ | Composition API, Vitest |
angular |
Angular 19+ | Standalone components, Jest |
python |
Python + FastAPI | Async patterns, pytest |
go |
Go 1.22+ | Idiomatic Go, table-driven tests |
rust |
Rust + Axum | Ownership patterns, proptest |
csharp-dotnet |
C# 12 + ASP.NET Core 8 | Clean + CQRS, xUnit |
flutter |
Dart 3 + Flutter | BLoC/Riverpod, widget tests |
Auto-detection: Corbat reads pom.xml, package.json, go.mod, Cargo.toml, etc.
When to Use Corbat
| Use Case | Why Corbat Helps |
|---|---|
| Starting a new project | Correct architecture from day one |
| Multi-agent delivery | Planner, implementation, review, and security agents share the same policy context |
| Teams with mixed experience | Standards become explicit and repeatable |
| Strict code review standards | Agents can validate against the review bar before handoff |
| Regulated industries | Consistent security and documentation |
| Legacy modernization | New code follows modern patterns |
When Corbat Might Not Be Needed
- Quick prototypes where quality doesn't matter
- One-off scripts you'll throw away
- Learning projects where you want to make mistakes
Customize
Option 1: Interactive Setup
npx corbat-init
Detects your stack and generates a .corbat.json with sensible defaults.
Option 2: Manual Configuration
Create .corbat.json in your project root:
{
"profile": "java-spring-backend",
"architecture": {
"pattern": "hexagonal",
"layers": ["domain", "application", "infrastructure", "api"]
},
"quality": {
"maxMethodLines": 20,
"maxClassLines": 200,
"minCoverage": 80
},
"rules": {
"always": [
"Use records for DTOs",
"Prefer Optional over null"
],
"never": [
"Use field injection",
"Catch generic Exception"
]
}
}
Option 3: Use a Template
Browse 14 ready-to-use templates for Java, Python, Node.js, React, Go, Rust, and more.
How It Works
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Your Prompt │────▶│ Corbat MCP │────▶│ AI + Rules │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌────────────┐ ┌────────────┐ ┌────────────┐
│ 1. Detect │ │ 2. Load │ │ 3. Inject │
│ Stack │ │ Profile │ │ Guardrails │
└────────────┘ └────────────┘ └────────────┘
pom.xml hexagonal max 20 lines
package.json + DDD + interfaces
go.mod + SOLID + custom errors
Corbat does not modify AI output. It supplies context, standards, profiles, and validation feedback so agents can align with your review expectations.
Important: Actual code quality depends on the model, host tool, prompt, repository context, tests, and human review. Treat Corbat as a policy and verification layer, not as a guarantee of production readiness.
Documentation
| Resource | Description |
|---|---|
| Setup Guide | Installation notes for common MCP-compatible tools |
| Templates | Ready-to-use .corbat.json configurations |
| Compatibility | Full list of supported AI tools |
| Benchmark Analysis | Detailed results from 15 scenarios |
| Multi-Agent Architecture | How Corbat fits planner/reviewer/security/release agent workflows |
| Security Model | Local execution model, threat model, and reporting |
| API Reference | Tools, prompts, and configuration options |
Make agent output easier to review.
Add to your MCP config and you're done:
{ "mcpServers": { "corbat": { "command": "npx", "args": ["-y", "@corbat-tech/coding-standards-mcp"] }}}
Use Corbat as shared standards context plus a local quality gate.
Developed by corbat-tech
Corbat MCP 질문
Corbat MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add coding-standards-mcp -- npx -y @corbat-tech/coding-standards-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Corbat MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Corbat이 AI 생성 코드에 어떻게 도움이 되나요?
구현 전 에이전트에게 팀별 표준을 제공하며, 코드 리뷰 전 품질 게이트를 통과할 수 있도록 검증 도구를 제공합니다.
어떤 종류의 아키텍처 패턴을 강제할 수 있나요?
다양한 언어에 대해 Hexagonal, Clean Architecture, DDD, CQRS와 같은 패턴을 지원합니다.