소개: 완전한 여정
이것은 시리즈의 마지막 기사입니다. 모델 컨텍스트 프로토콜(MCP). 14개의 기사에서 우리는 프로토콜의 이론적 토대부터 31개의 MCP 서버, 85개 이상의 도구, 6개의 패키지를 갖춘 프로덕션 지원 에코시스템 구현 공유되고 전문적인 테스트 시스템.
이 기사에서는 하나를 제시합니다. 전체 개요 오픈소스 프로젝트의 Tech-MCP: 범주, 기술 스택, 아키텍처별로 구성된 모든 서버의 카탈로그 전반적으로, 개발 중에 배운 교훈과 프로젝트에 기여하는 방법입니다.
이 기사에서 배울 내용
- 숫자와 통계가 포함된 Tech-MCP 프로젝트의 전체 개요
- 카테고리별로 정리된 전체 31개 서버의 카탈로그
- 기술 스택: TypeScript 5.7, Node.js 20+, pnpm, Turborepo, SQLite
- 모노레포와 공유 패키지의 전체 아키텍처
- GitHub에서 프로젝트에 기여하는 방법
- 로드맵 및 향후 개발 계획
- 31개의 MCP 서버 구축을 통해 얻은 교훈
- 전체 14개 기사 시리즈 요약
숫자로 보는 Tech-MCP
프로젝트 Tech-MCP 완전한 MCP 생태계를 만들어낸 설계 및 개발 프로세스의 결과, 전체 소프트웨어 개발 수명주기를 포괄합니다. 주요 번호는 다음과 같습니다.
프로젝트 통계
| 미터법 | Valore |
|---|---|
| MCP 서버 | 31 |
| 사용 가능한 도구 | 85세 이상 |
| 공유 패키지 | 6 |
| 일반적인 이벤트 | 29 |
| TypeScript 코드 줄 | 23,000+ |
| 언어 | 타입스크립트 5.7 |
| 실행 시간 | Node.js 20+ |
| 시스템 구축 | 터보레포 + pnpm |
| 데이터베이스 | SQLite(더 나은-sqlite3) |
| 확인 | 조드 |
| 테스트 | 비테스트 |
| 특허 | 오픈 소스 |
전체 아키텍처
Tech-MCP로 구성되어 모노레포 pnpm 작업 공간 및 Turborepo로 관리됩니다. 공유 패키지는 교차 기능을 제공하고 31개의 서버는 특정 도메인 논리:
Tech-MCP/
├── packages/ # 6 Pacchetti Condivisi
│ ├── core/ # Factory, tipi condivisi, startHttpServer()
│ ├── event-bus/ # EventBus interface + LocalEventBus + 29 eventi
│ ├── client-manager/ # McpClientManager per cross-server
│ ├── database/ # BaseStore SQLite, migrazioni
│ ├── testing/ # TestHarness, MockEventBus, InMemoryTransport
│ └── cli/ # Utility CLI per gestione server
│
├── servers/ # 31 Server MCP
│ ├── scrum-board/ # Project Management
│ ├── agile-metrics/ # Project Management
│ ├── time-tracking/ # Project Management
│ ├── project-economics/ # Project Management
│ ├── retrospective-manager/ # Project Management
│ ├── code-review/ # Produttività
│ ├── dependency-manager/ # Produttività
│ ├── project-scaffolding/ # Produttività
│ ├── docker-compose/ # DevOps
│ ├── log-analyzer/ # DevOps
│ ├── cicd-monitor/ # DevOps
│ ├── db-schema-explorer/ # Database
│ ├── data-mock-generator/ # Database
│ ├── test-generator/ # Testing
│ ├── performance-profiler/ # Testing
│ ├── api-documentation/ # Documentazione
│ ├── codebase-knowledge/ # Documentazione
│ ├── regex-builder/ # Utility
│ ├── http-client/ # Utility
│ ├── snippet-manager/ # Utility
│ ├── standup-notes/ # Comunicazione
│ ├── environment-manager/ # Comunicazione
│ ├── incident-manager/ # Avanzati
│ ├── decision-log/ # Avanzati
│ ├── access-policy/ # Avanzati
│ ├── quality-gate/ # Avanzati
│ ├── workflow-orchestrator/ # Avanzati
│ ├── insight-engine/ # Avanzati
│ ├── mcp-registry/ # Avanzati
│ ├── dashboard-api/ # Avanzati
│ └── tech-radar/ # Avanzati
│
├── docs/ # Documentazione completa
├── turbo.json # Configurazione Turborepo
├── pnpm-workspace.yaml # Workspace definition
└── package.json # Root package
완전한 서버 카탈로그
31개의 MCP 서버는 주기의 모든 측면을 포괄하는 9개의 기능 범주로 구성됩니다. 소프트웨어 개발의 삶. 각 서버는 독립적이지만 다른 서버와 협력할 수 있습니다. EventBus 및 ClientManager를 통해.
프로젝트 관리(서버 5개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 스크럼 보드 | 스프린트 생성, 스토리 추가, 작업 상태 업데이트 | 완전한 스크럼 보드를 통한 스프린트, 스토리 및 작업 관리 |
| 민첩한 측정항목 | 계산 속도, get-burndown, 주기 시간 | 민첩한 지표: 속도, 번다운, 리드 타임, 주기 시간 |
| 시간 추적 | 시작 타이머, 중지 타이머, 타임시트 가져오기 | 타이머와 주간 보고서를 통한 시간 추적 |
| 프로젝트 경제학 | 예산 설정, 비용 로그, 예산 상태 확인 | 프로젝트의 예산, 비용 관리 및 경제성 분석 |
| 회고 관리자 | 생성-복고, 추가-피드백, 생성-작업 | 피드백과 시정 조치가 포함된 회고적 스프린트 |
생산성(서버 3개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 코드 검토 | 차이점 분석, 문제 찾기, 개선 제안 | 문제 및 개선 사항을 식별하는 코드 분석 |
| 종속성 관리자 | 스캔 종속성, 업데이트 확인, 감사 보안 | 종속성, 업데이트 및 보안 감사 관리 |
| 프로젝트 비계 | 프로젝트 생성, 모듈 추가, 구성 생성 | 프로젝트 구조 및 모듈 발판 생성 |
DevOps(서버 3개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 도커 작성 | 생성-작성, 검증-구성, 최적화 | Docker 작성 파일 생성 및 검증 |
| 로그 분석기 | 구문 분석 로그, 오류 찾기, 집계 통계 | 패턴 매칭을 통한 애플리케이션 로그 분석 |
| cicd-모니터 | 목록 파이프라인, get-build-status, 분석 실패 | CI/CD 파이프라인 모니터링 및 장애 분석 |
데이터베이스(서버 2개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| db-스키마-탐색기 | 목록 테이블, 설명 테이블, 관계 분석 | 관계 분석을 통한 데이터베이스 스키마 탐색 |
| 데이터 모의 생성기 | 모의 데이터 생성, 고정 장치 생성, 시드 데이터베이스 | 현실적인 테스트 데이터 및 설비 생성 |
테스트(서버 2개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 테스트 생성기 | 생성 단위 테스트, 생성 통합 테스트 | 단위 및 통합 테스트 자동 생성 |
| 성능 프로파일러 | 프로필 엔드포인트, 병목 현상 찾기, 벤치마크 | 성능 프로파일링 및 병목 현상 식별 |
설명서(서버 2개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| API 문서 | 생성-문서, 검증-openapi, 생성-예제 | API 문서 생성 및 OpenAPI 검증 |
| 코드베이스 지식 | 인덱스 코드베이스, 검색 코드, 설명 모듈 | 의미 검색 기능을 갖춘 코드베이스 지식 베이스 |
유틸리티(서버 3개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 정규식 작성기 | 빌드 정규식, 테스트 패턴, 정규식 설명 | 정규식 작성 및 테스트 |
| http-클라이언트 | 보내기 요청, 테스트 끝점, 모의 API | API 테스트 및 엔드포인트 모의를 위한 HTTP 클라이언트 |
| 조각 관리자 | 스니펫 저장, 스니펫 검색, 스니펫 가져오기 | 태그 및 검색을 통한 코드 조각 관리 |
통신(서버 2개)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 스탠드업 노트 | 생성-스탠드업, 목록-스탠드업, 생성-요약 | 메모와 요약을 통한 일일 스탠드업 관리 |
| 환경 관리자 | 목록 환경, 비교 구성, 동기화 환경 | 배포 환경 및 구성 관리 |
고급(9개 서버)
| 섬기는 사람 | 주요 도구 | 설명 |
|---|---|---|
| 사고 관리자 | 생성 사건, 업데이트 상태, 사후 분석 | 심각도 및 사후 분석을 통한 사고 관리 |
| 의사결정 로그 | 로그 결정, 목록 결정, 검색 컨텍스트 | ADR(건축 결정 레지스터) |
| 액세스 정책 | 정책 정의, 액세스 확인, 감사 권한 | 액세스 정책 및 권한 감사 관리 |
| 품질 게이트 | 정의 게이트, 품질 평가, 보고서 가져오기 | 구성 가능한 측정항목 및 임계값이 포함된 품질 게이트 |
| 워크플로 조정자 | 워크플로 생성, 실행 단계, 상태 가져오기 | 다단계 워크플로 조정 |
| 통찰력 엔진 | 상태 대시보드, 프로젝트 간 분석 | 데이터 집계를 통한 서버 간 분석 |
| mcp-레지스트리 | 등록 서버, 목록 서버, 검색 도구 | 자동 검색 기능이 있는 MCP 서버 레지스트리 |
| 대시보드 API | 대시보드 생성, 위젯 추가, 메트릭 가져오기 | 측정항목 시각화를 위한 API 대시보드 |
| 기술 레이더 | 기술 추가, 채택 평가, 레이더 확보 | 기술 채택을 추적하는 기술 레이더 |
기술 스택
유형 안전성과 속도를 극대화하기 위해 Tech-MCP 기술 스택이 선택되었습니다. 개발 및 장기 유지 관리 가능성:
사용된 기술
| 요소 | 기술 | 역할 |
|---|---|---|
| 언어 | 타입스크립트 5.7 | 유형 안전성, 인터페이스, 제네릭 |
| 실행 시간 | Node.js 20+ | ES 모듈 기본, 성능 |
| 패키지 관리자 | pnpm 9+ | Monorepo 작업 공간, 효율적인 연결 |
| 빌드시스템 | 터보레포 | 병렬 빌드, 캐싱, 작업 조정 |
| 데이터베이스 | SQLite(더 나은-sqlite3) | 로컬 지속성, 구성 없음 |
| 확인 | 조드 | 스키마 검증, 유형 추론 |
| MCP SDK | @modelcontextprotocol/sdk | 공식 MCP 프로토콜 |
| 테스트 | 비테스트 | 단위 테스트, 통합 테스트, 모의 |
| 수송 | STDIO + 스트리밍 가능한 HTTP | 로컬 및 원격 통신 |
6가지 공유 패키지
공유 패키지는 31개 서버 모두가 구축되는 기반을 제공합니다.
각 패키지는 모노레포에 내부적으로 게시되고 다음을 통해 서버에서 사용됩니다.
workspace:*:
모노레포 패키지
| 패키지 | 책임 | 주요 수출품 |
|---|---|---|
| @mcp-suite/코어 | 팩토리 서버, 공유 유형, HTTP 서버 | startHttpServer(), 일반적인 유형 |
| @mcp-suite/이벤트-버스 | Fire-and-forget 유형의 이벤트 시스템 | LocalEventBus, EventMap, 이벤트 29개 |
| @mcp-suite/클라이언트-관리자 | 동기식 서버 간 통신 | McpClientManager, callTool() |
| @mcp-suite/데이터베이스 | 마이그레이션이 포함된 기본 SQLite 저장소 | BaseStore, 마이그레이션 유틸리티 |
| @mcp-suite/테스트 | 테스트 유틸리티: 하네스, 모의, 운송 | createTestHarness(), MockEventBus |
| @mcp-suite/cli | 서버 관리를 위한 CLI 유틸리티 | 시작, 중지, 상태 서버 명령 |
주요 아키텍처 패턴
31개의 MCP 서버를 개발하는 동안 다음과 같은 반복적인 아키텍처 패턴이 나타났습니다. 일관성, 테스트 가능성 및 유지 관리 가능성 보장:
1. 서버 팩토리 패턴
각 서버는 공장 기능 유연성을 극대화하기 위해 선택적 매개변수 사용:
export function createMyServer(options?: {
eventBus?: EventBus;
clientManager?: McpClientManager;
storeOptions?: { inMemory?: boolean; dbPath?: string };
}) {
const server = new McpServer({
name: "my-server",
version: "1.0.0",
});
const store = new MyStore(options?.storeOptions);
// Registra i tool con dipendenze opzionali
registerAddItem(server, store, options?.eventBus);
registerGetStats(server, store, options?.clientManager);
// Collaboration: attivata solo se c'è un event bus
if (options?.eventBus) {
setupCollaborationHandlers(options.eventBus, store);
}
return { server, store };
}
2. 도구당 하나의 파일
각 도구는 자체 파일에 격리되어 있으며 종속성을 받는 순수 함수로 등록되어 있습니다.
// tools/add-item.ts
export function registerAddItem(
server: McpServer,
store: MyStore,
eventBus?: EventBus,
): void {
server.tool(
"add-item",
"Add a new item to the store",
{ title: z.string(), content: z.string() },
async ({ title, content }) => {
try {
const item = store.addItem({ title, content });
eventBus?.publish("items:created", { id: item.id, title });
return {
content: [{ type: "text", text: JSON.stringify(item, null, 2) }],
};
} catch (error) {
return {
content: [{
type: "text",
text: `Error: ${error instanceof Error ? error.message : String(error)}`,
}],
isError: true,
};
}
},
);
}
3. 협업 Fire-and-Forget
이벤트는 실행 후 잊어버리는 패턴으로 게시됩니다. 서버가 이벤트를 게시합니다. 응답을 기다리지 않고 계속됩니다. 이렇게 하면 서버가 완전히 분리됩니다.
// Il server pubblica senza attendere
eventBus?.publish("scrum:sprint-started", {
sprintId: sprint.id,
name: sprint.name,
});
// Un altro server reagisce nel proprio collaboration.ts
eventBus.subscribe("scrum:sprint-started", (payload) => {
store.autoCreateBudget(payload.sprintId, payload.name);
});
기여하는 방법
Tech-MCP 그리고 프로젝트 오픈 소스 및 기여를 환영합니다. 기여 프로세스는 표준 워크플로를 따릅니다.
전제 조건
- Node.js >= 20.0.0
- pnpm >= 9.0.0
- TypeScript 및 Model Context Protocol에 대한 기본 지식
개발 환경 설정
# 1. Fork e clone del repository
git clone https://github.com/<tuo-utente>/Tech-MCP.git
cd Tech-MCP
# 2. Installa le dipendenze
pnpm install
# 3. Build completo di tutti i pacchetti e server
pnpm build
# 4. Verifica che tutto compili correttamente
pnpm typecheck
기부 유형
-
새 MCP 서버 추가: 디렉터리에 새 서버를 생성합니다.
servers/표준화된 구조(package.json, tsconfig.json, src/index.ts, src/server.ts, src/tools/, src/services/)를 따릅니다. -
기존 서버에 도구 추가: 파일을 생성합니다
servers/<nome>/src/tools/선택적 종속성을 사용하여 로깅 패턴 따르기 -
이벤트 추가: 이벤트를 정의합니다.
packages/event-bus/src/events.ts, 적절한 도구에 게시하고 협업 처리기에서 구독 -
협업 핸들러 구현: 많은
collaboration.ts함유하다 처리기 자리 표시자void payload. 실제 논리를 구현하는 것은 귀중한 기여입니다. - 테스트 작성: 매장 단위 테스트, 도구 통합 테스트, 서버 간 배선 테스트
코드 규칙
규칙 및 협약
- 포맷터: 작은 따옴표, 후행 쉼표, 줄 너비 100자로 더 예뻐요.
- 수입품: 사용
import type { ... }유형별 - 오류: 언제나
error instanceof Error ? error.message : String(error) - 명명 도구: 케밥집(
create-sprint, 아니다createSprint) - 이벤트 이름 지정:
dominio:azione-kebab-case - 브랜치 Git:
feature/nome-feature,fix/nome-fix - 저지르다: 명령적, 간결함(예: "시간 추적에 자동 타이머 추가")
- PR: 명확한 설명이 포함된 PR용 기능/수정 사항
검토 과정
- 포크 GitHub의 저장소
- 지점 만들기 에서
main - 구현하다 프로젝트 규칙에 따라
- 빌드 및 유형 확인:
pnpm build && pnpm typecheck - 저지르다 명확하고 설명적인 메시지로
- 끌어오기 요청 열기 ...쪽으로
main - 답변 리뷰 피드백에
도움이 필요한 분야
이 프로젝트에는 특히 기여를 환영하는 여러 영역이 있습니다.
요청된 기여
| 영역 | 우선 사항 | 어려움 |
|---|---|---|
| 모든 도구에 대한 단위 테스트 | 높은 | 평균 |
| Redis EventBus 구현 | 높은 | 평균 |
| 협업 핸들러 완성 | 평균 | 낮은 |
| GitHub 액션 CI/CD | 평균 | 낮은 |
| 웹 대시보드 모니터링 | 낮은 | 높은 |
| 플러그인 시스템 | 낮은 | 높은 |
로드맵 및 향후 개발
Tech-MCP는 진화하는 프로젝트입니다. 개발예정지역이 정리되어 있습니다 우선순위:
우선순위 1: Redis EventBus
현재 EventBus는 다음에서만 작동합니다. LocalEventBus (진행 중). 배포용
여기서 각 서버는 외부 메시지 브로커를 제공하는 별도의 프로세스입니다.
Redis를 구현하면 MCP 서버 간의 프로세스 간 통신이 가능해집니다.
여러 컴퓨터에 분산되어 있습니다.
우선순위 2: 리소스 및 프롬프트 MCP
현재 Tech-MCP는 기본 요소를 독점적으로 사용합니다. 도구. MCP 사양 또한 리소스(URI가 포함된 읽기 전용 데이터) 및 프롬프트(구조화된 워크플로용 템플릿)를 정의합니다. 이러한 기본 요소를 추가하면 서버의 기능이 크게 향상됩니다.
우선순위 3: 웹 대시보드
모든 서버와 이벤트의 상태를 실시간으로 볼 수 있는 웹 대시보드 게시된 도구 사용 지표 및 상태 확인.
우선순위 4: 플러그인 시스템
레지스트리, 핫 리로드 도구 및 공유 마켓플레이스를 갖춘 타사 플러그인 아키텍처입니다.
배운 교훈
모노레포에 31개의 MCP 서버를 구축하면 적용 가능한 귀중한 교훈을 얻을 수 있습니다. 중대형 소프트웨어 프로젝트에 적용:
1. 표준화 비용
각 서버에 대해 표준화된 구조를 갖습니다(공장 기능, 도구당 하나의 파일, 격리된 저장소, 별도의 협업 핸들러)를 도입하여 신규 서버 개발 시간을 획기적으로 단축했습니다. 처음 5개의 서버 이후에는 새 서버를 만드는 데 시간이 거의 걸리지 않았습니다. 통합되었습니다.
2. 공유 패키지가 핵심입니다
공통 로직을 공유 패키지(코어, 이벤트 버스, 데이터베이스, 테스트)로 추출하는 작업이 제거되었습니다. 코드 복제 및 모든 서버에서의 일관성 보장. 패키지 변경 공유는 이를 사용하는 모든 서버에 자동으로 전파됩니다.
3. 도구 설명이 중요합니다.
AI는 설명만을 토대로 어떤 도구를 호출할지 선택합니다. 설명 모호한 설명은 잘 사용되지 않는 도구를 생성하고, 정확한 설명은 원활한 경험을 생성합니다. 설명을 작성하는 데 시간을 투자하는 것은 고수익 투자입니다.
4. Fire-and-Forget으로 모든 것이 단순화됩니다.
이벤트에 대한 실행 후 잊어버리기 패턴은 아키텍처를 크게 단순화했습니다. 서버는 누가 이벤트를 받는지 알지 못한 채 이벤트를 게시하고 협업 핸들러는 반응합니다. 직접적인 결합 없이. 이를 통해 새로운 콜라보레이션을 추가할 수 있게 되었습니다. 기존 서버를 수정하지 않고.
5. 인메모리 테스트가 핵심이다
테스트용으로 만들어진 인메모리 데이터베이스로 각 서버를 인스턴스화하는 기능
빠르고, 격리되고, 재현 가능합니다. 에 대한 투자 createTestHarness()
e MockEventBus 개발 속도 면에서 엄청난 성과를 거두었습니다.
시리즈 요약
14개 기사로 구성된 이 시리즈는 MCP에서 생산. 다루는 주제를 요약하면 다음과 같습니다.
시리즈의 전체 색인
| # | 주제 | 수준 |
|---|---|---|
| 01 | 모델 컨텍스트 프로토콜 소개 | 초보자 |
| 02 | 원시 MCP: 도구, 리소스 및 프롬프트 | 초보자 |
| 03 | Monorepo 아키텍처 및 프로젝트 패턴 | 중급 |
| 04 | TypeScript에서 첫 번째 MCP 서버 생성 | 중급 |
| 05 | MCP 클라이언트 생성 및 HTTP 전송 | 중급 |
| 06 | 공유 패키지: Core, EventBus 및 데이터베이스 | 중급 |
| 07 | 생산성을 위한 서버 | 중급 |
| 08 | DevOps 및 데이터베이스 서버 | 중급 |
| 09 | 프로젝트 관리용 서버 | 중급 |
| 10 | 고급 서버: 데이터베이스 및 테스트 | 고급의 |
| 11 | 고급 서버: 오케스트레이션 및 레지스트리 | 고급의 |
| 12 | 서버 간 및 EventBus 협업 | 고급의 |
| 13 | 테스트, 모범 사례 및 생산 | 고급의 |
| 14 | Tech-MCP: 완전한 오픈 소스 프로젝트 개요 | 고급의 |
결론
Il 모델 컨텍스트 프로토콜 상호 작용의 패러다임 변화를 나타냅니다. 개발자와 인공지능 사이. 그냥 감싸는게 아니라 API 호출에 대한 것이지만 구조화된 프로토콜 자동 검색이 가능하며, 강력한 타이핑, 양방향 통신, 기본 구성 가능성 및 서버 간 협업이 가능합니다.
와 함께 Tech-MCP 우리는 다음을 포함하여 31개의 MCP 서버로 구성된 완전한 생태계를 구축하는 것이 가능하다는 것을 입증했습니다. 전체 소프트웨어 개발 라이프사이클: 코드 관리부터 프로젝트 관리까지, 테스트부터 배포까지, 모니터링부터 프로젝트 간 분석까지.
프로젝트 전자 오픈 소스 끊임없이 진화하고 있습니다. 모든 기여는 무엇이든 관계없이 새로운 서버, 테스트, 수정 사항 또는 새로운 기능을 환영합니다. 상호작용의 미래 man-AI는 MCP와 같은 개방적이고 구성 가능한 프로토콜을 거치며 Tech-MCP는 이를 원합니다. 이 지역을 탐험하고 싶은 사람이라면 누구나 참조할 수 있는 지점입니다.
이 시리즈를 팔로우해 주셔서 감사합니다. 전체 코드, 문서 및 지침 기여할 수 있는 곳은 다음과 같습니다: GitHub.







