forgespec-mcp
ForgeSpec MCP
멀티 에이전트 AI 개발을 위한 조정 백본. ForgeSpec MCP는 Model Context Protocol 서버로, 사양 기반 개발(SDD)을 통해 AI 기반 소프트웨어 엔지니어링에 구조화되고 감사 가능한 워크플로우를 제공합니다.
왜 ForgeSpec인가?
여러 AI 에이전트(Claude, Codex, Gemini 등)로 소프트웨어를 구축하면 단일 에이전트 워크플로우에는 없는 조정 문제가 발생합니다:
문제 | ForgeSpec 미사용 시 | ForgeSpec 사용 시 |
편집 충돌 | 두 에이전트가 동일한 파일을 동시에 수정하여 병합 충돌 및 작업 손실 발생 | TTL이 포함된 파일 예약 시스템이 충돌을 사전에 방지 |
공유 컨텍스트 부재 | 각 에이전트가 독립적으로 작업하며, 한 에이전트의 결정이 다른 에이전트에게 보이지 않음 | 계약 검증을 통해 모든 단계에 걸쳐 공유 감사 추적 생성 |
비구조적 작업 | 에이전트가 사양 없이 바로 코드로 넘어가 일관성 없는 결과물 생성 | 9단계 파이프라인이 제안 -> 사양 -> 설계 -> 구현 흐름을 강제 |
진행 상황 손실 | 에이전트가 작업 도중 실패하면 중단된 지점부터 재개할 방법이 없음 | SQLite 기반 작업 보드가 상태를 유지하여 다른 에이전트가 작업을 이어받을 수 있음 |
품질 게이트 부재 | 원래 요구 사항에 대한 검증 없이 코드가 배포됨 | 품질 기준이 충족될 때까지 신뢰도 임계값이 단계 전환을 차단 |
주요 장점
제로 인프라 -- 내장된 SQLite 데이터베이스, 외부 서비스 불필요
범용 호환성 -- Claude Code, Codex CLI, Gemini CLI, OpenClaw 등 모든 MCP 클라이언트와 호환
즉시 설정 -- 한 번의 명령어로 시작:
npx -y forgespec-mcp검증된 파이프라인 -- 신뢰도 임계값이 있는 9단계 파이프라인으로 성급한 단계 전환 방지
감사 추적 -- 모든 계약, 작업 전환 및 파일 예약이 타임스탬프와 함께 기록됨
크로스 플랫폼 -- Node 18, 20, 22를 사용하는 Ubuntu, Windows 및 macOS에서 테스트 완료
Cortex 준비 완료 -- 세션 간 지속적인 메모리 및 지식 그래프를 위해 Cortex와 기본 통합
Related MCP server: Specky
권장 사항: Cortex와 함께 사용
ForgeSpec은 워크플로우(계약, 작업, 파일 잠금)를 관리합니다. Cortex는 메모리(관찰, 지식 그래프, 세션 연속성)를 관리합니다. 이 둘을 결합하면 완벽한 멀티 에이전트 조정 스택이 형성됩니다:
┌─────────────────────────────────────────────────────┐
│ MCP Clients │
│ Claude Code · Codex CLI · Gemini CLI · ... │
└──────────┬──────────────────────────┬───────────────┘
│ │
┌─────▼─────┐ ┌──────▼──────┐
│ ForgeSpec │ │ Cortex │
│ MCP │◄──────────►│ MCP │
│ │ artifact │ │
│ Contracts │ type: │ Observations│
│ Task Board │ "cortex" │ Knowledge │
│ File Locks │ │ Graph │
└────────────┘ └─────────────┘ForgeSpec은 SDD 계약을 검증 및 유지하고, 작업 종속성을 관리하며, 파일 충돌을 방지합니다.
Cortex는 아티팩트를 관찰 결과로 저장하고, 지식 그래프를 통해 연결하며, 세션 복구를 가능하게 합니다.
type: "cortex"로 저장된 아티팩트는mem_save를 통해 Cortex에 유지되고mem_relate와 연결됩니다.
전체 기능을 경험하려면 둘 다 설치하세요:
claude mcp add forgespec --transport stdio -- npx -y forgespec-mcp
claude mcp add cortex --transport stdio -- npx -y @anthropic/cortex-mcpForgeSpec은 Cortex 없이 독립적으로 작동할 수 있습니다. 아티팩트는
type: "openspec"(파일 시스템) 또는type: "inline"(응답으로 반환)을 사용할 수도 있습니다.
빠른 시작
npx 사용 (설치 불필요)
npx -y forgespec-mcp전역 설치
npm install -g forgespec-mcp설치 확인
forgespec-mcp --help클라이언트 구성
Claude Code
claude mcp add forgespec --transport stdio -- npx -y forgespec-mcpCodex CLI (~/.codex/config.toml)
[mcp_servers.forgespec]
command = "npx"
args = ["-y", "forgespec-mcp"]Gemini CLI (settings.json)
{
"mcpServers": {
"forgespec": {
"command": "npx",
"args": ["-y", "forgespec-mcp"]
}
}
}OpenClaw (openclaw.json)
mcp: {
servers: {
forgespec: { command: "npx", args: ["-y", "forgespec-mcp"] }
}
}SDD 파이프라인
ForgeSpec은 사양 기반 개발(Spec-Driven Development) 수명 주기를 강제합니다. 이는 AI 에이전트가 바로 코드로 넘어가지 않고 체계적으로 작업하도록 보장하는 9단계 파이프라인입니다.
각 단계에는 다음 단계로 넘어가기 전에 충족해야 하는 신뢰도 임계값이 있습니다:
단계 | 임계값 | 목적 |
| 0.5 | 프로젝트 컨텍스트 및 규칙 부트스트랩 |
| 0.5 | 코드베이스 조사, 문제 진단 |
| 0.7 | 범위 및 위험을 포함한 변경 제안서 초안 작성 |
| 0.8 | Given/When/Then을 사용한 상세 사양 작성 |
| 0.7 | 아키텍처, 데이터 흐름, 파일 변경 정의 |
| 0.8 | 종속성 순서에 따른 구현 작업으로 분해 |
| 0.6 | 구현 실행 (부분 완료 허용) |
| 0.9 | 사양에 따른 구현 검증 |
| 0.9 | 사양 병합, 회고 생성 |
도구 참조
ForgeSpec은 세 가지 범주로 구성된 15개의 MCP 도구를 제공합니다.
SDD 계약 도구 (5)
유형이 지정되고 검증된 계약으로 개발 수명 주기를 관리합니다.
도구 | 설명 |
| 신뢰도 검사를 통해 단계 스키마에 따라 계약을 검증 |
| 계약을 검증하고 데이터베이스에 저장 |
| ID별로 단일 계약 검색 |
| 프로젝트/단계 필터를 사용하여 계약 목록 조회 |
| 프로젝트의 단계 전환 기록 조회 |
작업 보드 도구 (8)
종속성 추적 및 자동 차단 해제 기능이 있는 SQLite 기반 작업 관리 도구입니다.
도구 | 설명 |
| 인라인 작업(선택 사항)이 포함된 보드 생성 (원자적, N개의 별도 호출 방지) |
| 우선순위, 사양 참조, 기준 및 종속성을 포함한 작업 추가 |
| 상태별로 그룹화된 작업과 함께 보드 상태 조회 |
| 작업 할당 (할당 전 종속성 검증) |
| 상태 업데이트 및/또는 타임스탬프가 찍힌 메모 추가 (완료 시 종속 작업 자동 차단 해제) |
| 작업 가능한 작업 목록 조회 (모든 종속성 해결됨) |
| ID별로 전체 작업 세부 정보 조회 |
| 모든 보드 목록 조회 (컨텍스트 손실 후 검색용) |
파일 예약 도구 (2)
멀티 에이전트 편집 충돌을 방지하기 위한 권고 파일 잠금 도구입니다.
도구 | 설명 |
| TTL을 사용하여 파일/글로브 예약. |
| 예약 해제 (특정 패턴 또는 전체) |
사용 예시
예시 1: SDD 계약 검증 및 저장
"propose" 단계를 완료하는 AI 에이전트가 작업을 검증된 계약으로 저장합니다:
// Tool: sdd_validate
{
"contract": "{\"phase\":\"propose\",\"change_name\":\"add-auth-service\",\"project\":\"my-app\",\"status\":\"success\",\"confidence\":0.85,\"executive_summary\":\"Add JWT-based authentication service with login, logout, and token refresh endpoints. Affects 4 files in src/auth/.\",\"artifacts_saved\":[{\"topic_key\":\"sdd/add-auth-service/proposal\",\"type\":\"cortex\"}],\"next_recommended\":[\"spec\",\"design\"],\"risks\":[{\"description\":\"Token storage strategy needs security review\",\"level\":\"medium\"}]}"
}
// Response:
{
"valid": true,
"phase": "propose",
"confidence": 0.85,
"threshold": 0.7,
"meets_confidence": true,
"allowed_next_phases": ["spec", "design", "init"],
"warnings": []
}// Tool: sdd_save (after validation)
{
"contract": "{\"phase\":\"propose\",\"change_name\":\"add-auth-service\",\"project\":\"my-app\",\"status\":\"success\",\"confidence\":0.85,\"executive_summary\":\"Add JWT-based authentication service...\",\"next_recommended\":[\"spec\",\"design\"],\"risks\":[]}"
}
// Response:
{
"saved": true,
"id": "sdd_a1b2c3d4-...",
"phase": "propose",
"project": "my-app"
}예시 2: 작업 보드 생성 및 작업 관리
보드를 설정하고 종속성이 있는 작업을 추가하며 에이전트가 작업을 할당받도록 합니다:
// Step 1: Create a board
// Tool: tb_create_board
{ "project": "my-app", "name": "add-auth-service" }
// -> { "created": true, "board_id": "board_x7k9m2...", "project": "my-app" }
// Step 2: Add tasks with dependencies
// Tool: tb_add_task
{
"board_id": "board_x7k9m2...",
"title": "Create JWT utility module",
"description": "Implement sign, verify, and refresh token functions",
"priority": "p0",
"spec_ref": "sdd/add-auth-service/spec",
"acceptance_criteria": "All token operations pass unit tests",
"dependencies": []
}
// -> { "created": true, "task_id": "task_abc123...", "priority": "p0" }
// Tool: tb_add_task
{
"board_id": "board_x7k9m2...",
"title": "Build auth middleware",
"priority": "p1",
"acceptance_criteria": "Middleware validates tokens on protected routes",
"dependencies": ["task_abc123..."] // depends on JWT module
}
// -> { "created": true, "task_id": "task_def456..." }
// Step 3: Agent claims a task
// Tool: tb_claim
{ "task_id": "task_abc123...", "agent": "implement-agent-1" }
// -> { "claimed": true, "task_id": "task_abc123...", "status": "in_progress" }
// Step 4: Mark task done (auto-unblocks dependents)
// Tool: tb_update
{ "task_id": "task_abc123...", "status": "done", "notes": "JWT module complete with RS256 support" }
// -> { "updated": true, "unblocked_tasks": ["task_def456..."] }
// task_def456 automatically moves from "backlog" to "ready"예시 3: 에이전트 간 파일 충돌 방지
병렬로 작업하는 두 에이전트가 파일 예약을 사용하여 충돌을 방지합니다:
// Agent 1 checks then reserves auth files (two-phase pattern)
// Tool: file_reserve (check_only)
{
"patterns": ["src/auth/**", "src/middleware/auth.ts"],
"agent": "implement-agent-1",
"check_only": true
}
// -> { "reserved": false, "has_conflicts": false, "conflicts": [] }
// No conflicts — proceed to reserve
// Tool: file_reserve
{
"patterns": ["src/auth/**", "src/middleware/auth.ts"],
"agent": "implement-agent-1",
"ttl_minutes": 30
}
// -> { "reserved": true, "has_conflicts": false, "expires_at": "2025-01-15T10:30:00.000Z" }
// Agent 2 checks before editing
// Tool: file_reserve (check_only)
{
"patterns": ["src/auth/jwt.ts"],
"agent": "implement-agent-2",
"check_only": true
}
// -> { "reserved": false, "has_conflicts": true, "conflicts": [{ "pattern": "src/auth/**", "held_by": "implement-agent-1" }] }
// Agent 2 knows to work on something else
// Agent 1 finishes and releases
// Tool: file_release
{ "agent": "implement-agent-1" }
// -> { "released": true, "count": 2 }예시 4: 프로젝트 단계 기록 추적
변경 사항이 파이프라인을 통해 어떻게 진행되었는지 검토합니다:
// Tool: sdd_history
{ "project": "my-app", "limit": 5 }
// Response:
{
"project": "my-app",
"history": [
{ "id": "sdd_...", "phase": "verify", "change_name": "add-auth-service", "status": "success", "confidence": 0.92, "created_at": "2025-01-15T10:45:00Z" },
{ "id": "sdd_...", "phase": "apply", "change_name": "add-auth-service", "status": "success", "confidence": 0.78, "created_at": "2025-01-15T10:30:00Z" },
{ "id": "sdd_...", "phase": "tasks", "change_name": "add-auth-service", "status": "success", "confidence": 0.88, "created_at": "2025-01-15T09:15:00Z" },
{ "id": "sdd_...", "phase": "spec", "change_name": "add-auth-service", "status": "success", "confidence": 0.85, "created_at": "2025-01-15T09:00:00Z" },
{ "id": "sdd_...", "phase": "propose","change_name": "add-auth-service", "status": "success", "confidence": 0.85, "created_at": "2025-01-15T08:30:00Z" }
]
}환경 변수
변수 | 기본값 | 설명 |
|
| 데이터베이스 저장 디렉토리 |
|
| SQLite 데이터베이스 전체 경로 |
아키텍처
forgespec-mcp
├── src/
│ ├── index.ts # Entry point: stdio transport
│ ├── server.ts # MCP server setup and tool registration
│ ├── types/index.ts # Zod schemas, phase config, type definitions
│ ├── database/index.ts # SQLite init, WAL mode, schema creation
│ ├── tools/
│ │ ├── sdd-contracts.ts # 5 contract lifecycle tools
│ │ ├── task-board.ts # 8 task management tools
│ │ └── file-reservation.ts # 2 file locking tools
│ └── utils/id.ts # Prefixed UUID generation
└── tests/
├── sdd-contracts.test.ts # Schema and phase transition tests
└── tools.test.ts # Integration tests for all CRUD operations기술 스택:
Model Context Protocol SDK -- MCP 서버 프레임워크
better-sqlite3 -- WAL 모드가 포함된 내장 데이터베이스
Zod -- 런타임 스키마 검증
Vitest -- v8 커버리지가 포함된 테스트 프레임워크
개발
# Clone the repository
git clone https://github.com/lleontor705/forgespec-mcp.git
cd forgespec-mcp
# Install dependencies
npm install
# Run in development mode (hot reload)
npm run dev
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Build for production
npm run build
# Open MCP Inspector for debugging
npm run inspect새 버전 릴리스
ForgeSpec은 Conventional Commits를 기반으로 자동 의미론적 버전 관리를 위해 standard-version을 사용합니다.
# Commits determine the version bump automatically:
# fix: ... -> patch (1.2.0 -> 1.2.1)
# feat: ... -> minor (1.2.0 -> 1.3.0)
# feat!: ... -> major (1.2.0 -> 2.0.0)
# Create a release (bumps version, updates CHANGELOG, creates git tag)
npm run release
# Or specify the bump type manually
npm run release -- --release-as minor
npm run release -- --release-as major
# First release from current version
npm run release -- --first-release
# Push with tags to trigger CI/CD
git push --follow-tags origin masterCI/CD 파이프라인은 다음을 수행합니다:
Node 18, 20, 22를 사용하여 Ubuntu/Windows/macOS에서 테스트 실행
프로덕션 환경 승인 대기
출처와 함께 npm에 게시
자동 생성된 메모와 함께 GitHub 릴리스 생성
기여
저장소 포크
기능 브랜치 생성:
git checkout -b feature/my-feature메시지에 Conventional Commits 사용:
feat: X를 위한 새로운 도구 추가fix: 파일 예약의 경쟁 조건 해결docs: 사용 예시 업데이트
테스트 실행:
npm test푸시 및 Pull Request 열기
라이선스
MIT -- lleontor705 제작
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables spec-driven development workflows with AI assistants, providing tools for managing specification lifecycles, task dependencies, code navigation, testing, and automated reviews through a unified CLI and MCP interface.4MIT
- AlicenseAqualityAmaintenanceAn MCP server for Spec-Driven Development that transforms natural language ideas and meeting transcripts into structured, production-grade specifications using EARS notation. It automates a 7-phase pipeline to generate project artifacts like requirements, architecture designs, and task lists directly to disk.5811017MIT
- AlicenseNot gradedqualityAmaintenanceCentralized MCP server for spec-driven AI agent workflows, enabling isolated feature management, task tracking, and implementation with handoff and archiving capabilities across multiple projects and developers.571MIT
- AlicenseNot gradedqualityDmaintenanceTransforms AI agents into spec-driven product engineers by managing the software project lifecycle through requirements, design, implementation, and archiving phases with state-aware MCP tools.40MIT
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
A MCP server built for developers enabling Git based project management with project and personal…
Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lleontor705/forgespec-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server