Skip to main content

14 - Tech-MCP: Complete Open Source Project Overview

Complete overview of Tech-MCP: 31 servers, 85+ tools, 6 shared packages, architecture, roadmap and how to contribute on GitHub.

What do you think about this article?

At a Glance

Complete overview of Tech-MCP: 31 servers, 85+ tools, 6 shared packages, architecture, roadmap and how to contribute on GitHub.

Introduction: The Complete Journey

This is the final article in the series dedicated to the Model Context Protocol (MCP). Across 14 articles, we have traveled a complete path: from the theoretical foundations of the protocol to implementing a production-ready ecosystem with 31 MCP servers, 85+ tools, 6 shared packages, and a professional testing system.

In this article, we present a complete overview of the open source project Tech-MCP: the catalog of all servers organized by category, the technology stack, the overall architecture, lessons learned during development, and how to contribute to the project.

What You Will Learn in This Article

  • Complete overview of the Tech-MCP project with numbers and statistics
  • Catalog of all 31 servers organized by category
  • Technology stack: TypeScript 5.7, Node.js 20+, pnpm, Turborepo, SQLite
  • Overall monorepo architecture and shared packages
  • How to contribute to the project on GitHub
  • Roadmap and planned future developments
  • Lessons learned from building 31 MCP servers
  • Summary of the entire 14-article series

Tech-MCP by the Numbers

The Tech-MCP project is the result of a design and development process that produced a complete MCP ecosystem, covering the entire software development lifecycle. Here are the key numbers:

Project Statistics

Metric Value
MCP Servers 31
Available Tools 85+
Shared Packages 6
Typed Events 29
Lines of TypeScript Code 23,000+
Language TypeScript 5.7
Runtime Node.js 20+
Build System Turborepo + pnpm
Database SQLite (better-sqlite3)
Validation Zod
Testing Vitest
License Open Source

Overall Architecture

Tech-MCP is organized as a monorepo managed with pnpm workspaces and Turborepo. Shared packages provide cross-cutting functionality, while the 31 servers implement domain-specific business logic:


Tech-MCP/
├── packages/                    # 6 Shared Packages
│   ├── core/                    # Factory, shared types, startHttpServer()
│   ├── event-bus/               # EventBus interface + LocalEventBus + 29 events
│   ├── client-manager/          # McpClientManager for cross-server
│   ├── database/                # BaseStore SQLite, migrations
│   ├── testing/                 # TestHarness, MockEventBus, InMemoryTransport
│   └── cli/                     # CLI utility for server management
│
├── servers/                     # 31 MCP Servers
│   ├── scrum-board/             # Project Management
│   ├── agile-metrics/           # Project Management
│   ├── time-tracking/           # Project Management
│   ├── project-economics/       # Project Management
│   ├── retrospective-manager/   # Project Management
│   ├── code-review/             # Productivity
│   ├── dependency-manager/      # Productivity
│   ├── project-scaffolding/     # Productivity
│   ├── 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/       # Documentation
│   ├── codebase-knowledge/      # Documentation
│   ├── regex-builder/           # Utility
│   ├── http-client/             # Utility
│   ├── snippet-manager/         # Utility
│   ├── standup-notes/           # Communication
│   ├── environment-manager/     # Communication
│   ├── incident-manager/        # Advanced
│   ├── decision-log/            # Advanced
│   ├── access-policy/           # Advanced
│   ├── quality-gate/            # Advanced
│   ├── workflow-orchestrator/   # Advanced
│   ├── insight-engine/          # Advanced
│   ├── mcp-registry/            # Advanced
│   ├── dashboard-api/           # Advanced
│   └── tech-radar/              # Advanced
│
├── docs/                        # Complete documentation
├── turbo.json                   # Turborepo configuration
├── pnpm-workspace.yaml          # Workspace definition
└── package.json                 # Root package
    

Complete Server Catalog

The 31 MCP servers are organized into 9 functional categories covering every aspect of the software development lifecycle. Each server is independent but can collaborate with others via EventBus and ClientManager.

Project Management (5 servers)

Server Key Tools Description
scrum-board create-sprint, add-story, update-task-status Sprint, story, and task management with complete Scrum board
agile-metrics calculate-velocity, get-burndown, cycle-time Agile metrics: velocity, burndown, lead time, cycle time
time-tracking start-timer, stop-timer, get-timesheet Time tracking with timers and weekly reports
project-economics set-budget, log-expense, get-budget-status Budget management, expenses, and project economic analysis
retrospective-manager create-retro, add-feedback, generate-actions Sprint retrospectives with feedback and corrective actions

Productivity (3 servers)

Server Key Tools Description
code-review analyze-diff, find-issues, suggest-improvements Code analysis with issue identification and improvements
dependency-manager scan-dependencies, check-updates, audit-security Dependency management, updates, and security auditing
project-scaffolding generate-project, add-module, create-config Project structure generation and module scaffolding

DevOps (3 servers)

Server Key Tools Description
docker-compose generate-compose, validate-config, optimize Docker-compose file generation and validation
log-analyzer parse-logs, find-errors, aggregate-stats Application log analysis with pattern matching
cicd-monitor list-pipelines, get-build-status, analyze-failures CI/CD pipeline monitoring and failure analysis

Database (2 servers)

Server Key Tools Description
db-schema-explorer list-tables, describe-table, analyze-relations Database schema exploration with relationship analysis
data-mock-generator generate-mock-data, create-fixture, seed-database Realistic test data and fixture generation

Testing (2 servers)

Server Key Tools Description
test-generator generate-unit-tests, generate-integration-tests Automatic generation of unit and integration tests
performance-profiler profile-endpoint, find-bottlenecks, benchmark Performance profiling and bottleneck identification

Documentation (2 servers)

Server Key Tools Description
api-documentation generate-docs, validate-openapi, create-examples API documentation generation and OpenAPI validation
codebase-knowledge index-codebase, search-code, explain-module Codebase knowledge base with semantic search

Utility (3 servers)

Server Key Tools Description
regex-builder build-regex, test-pattern, explain-regex Regular expression building and testing
http-client send-request, test-endpoint, mock-api HTTP client for API testing and endpoint mocking
snippet-manager save-snippet, search-snippets, get-snippet Code snippet management with tags and search

Communication (2 servers)

Server Key Tools Description
standup-notes create-standup, list-standups, generate-summary Daily standup management with notes and summaries
environment-manager list-environments, compare-configs, sync-env Deployment environment and configuration management

Advanced (9 servers)

Server Key Tools Description
incident-manager create-incident, update-status, post-mortem Incident management with severity levels and post-mortems
decision-log log-decision, list-decisions, search-context Architectural Decision Records (ADR) registry
access-policy define-policy, check-access, audit-permissions Access policy management and permission auditing
quality-gate define-gate, evaluate-quality, get-report Quality gates with configurable metrics and thresholds
workflow-orchestrator create-workflow, execute-step, get-status Multi-step workflow orchestration
insight-engine health-dashboard, cross-project-analysis Cross-server analysis with data aggregation
mcp-registry register-server, list-servers, discover-tools MCP server registry with automatic discovery
dashboard-api create-dashboard, add-widget, get-metrics Dashboard API for metrics visualization
tech-radar add-technology, evaluate-adoption, get-radar Technology radar for tracking technology adoption

Technology Stack

Tech-MCP's technology stack was chosen to maximize type-safety, development speed, and long-term maintainability:

Technologies Used

Component Technology Role
Language TypeScript 5.7 Type-safety, interfaces, generics
Runtime Node.js 20+ Native ES modules, performance
Package Manager pnpm 9+ Monorepo workspace, efficient linking
Build System Turborepo Parallel builds, caching, task orchestration
Database SQLite (better-sqlite3) Local persistence, zero configuration
Validation Zod Schema validation, type inference
MCP SDK @modelcontextprotocol/sdk Official MCP protocol
Testing Vitest Unit tests, integration tests, mocking
Transport STDIO + Streamable HTTP Local and remote communication

The 6 Shared Packages

The shared packages provide the foundation upon which all 31 servers are built. Each package is published internally within the monorepo and consumed by servers via workspace:*:

Monorepo Packages

Package Responsibility Key Exports
@mcp-suite/core Server factory, shared types, HTTP server startHttpServer(), common types
@mcp-suite/event-bus Fire-and-forget typed event system LocalEventBus, EventMap, 29 events
@mcp-suite/client-manager Synchronous cross-server communication McpClientManager, callTool()
@mcp-suite/database Base SQLite store with migrations BaseStore, migration utilities
@mcp-suite/testing Test utilities: harness, mock, transport createTestHarness(), MockEventBus
@mcp-suite/cli CLI utility for server management Commands for start, stop, server status

Key Architectural Patterns

During the development of 31 MCP servers, recurring architectural patterns emerged that ensure consistency, testability, and maintainability:

1. Server Factory Pattern

Every server exposes a factory function with optional parameters for maximum flexibility:


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);

  // Register tools with optional dependencies
  registerAddItem(server, store, options?.eventBus);
  registerGetStats(server, store, options?.clientManager);

  // Collaboration: activated only if an event bus is present
  if (options?.eventBus) {
    setupCollaborationHandlers(options.eventBus, store);
  }

  return { server, store };
}
    

2. One File Per Tool

Each tool is isolated in its own file, registered as a pure function that receives its dependencies:


// 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 Collaboration

Events are published using the fire-and-forget pattern: the server publishes the event and continues without waiting for a response. This completely decouples the servers:


// The server publishes without waiting
eventBus?.publish("scrum:sprint-started", {
  sprintId: sprint.id,
  name: sprint.name,
});

// Another server reacts in its own collaboration.ts
eventBus.subscribe("scrum:sprint-started", (payload) => {
  store.autoCreateBudget(payload.sprintId, payload.name);
});
    

How to Contribute

Tech-MCP is an open source project and contributions are welcome. The contribution process follows a standard workflow:

Prerequisites

  • Node.js >= 20.0.0
  • pnpm >= 9.0.0
  • Basic knowledge of TypeScript and the Model Context Protocol

Development Environment Setup


# 1. Fork and clone the repository
git clone https://github.com/<your-username>/Tech-MCP.git
cd Tech-MCP

# 2. Install dependencies
pnpm install

# 3. Full build of all packages and servers
pnpm build

# 4. Verify everything compiles correctly
pnpm typecheck
    

Types of Contributions

  1. Adding a new MCP server: create a new server in the servers/ directory following the standardized structure (package.json, tsconfig.json, src/index.ts, src/server.ts, src/tools/, src/services/)
  2. Adding a tool to an existing server: create the file in servers/<name>/src/tools/ following the registration pattern with optional dependencies
  3. Adding an event: define the event in packages/event-bus/src/events.ts, publish in the appropriate tool, and subscribe in the collaboration handler
  4. Implementing collaboration handlers: many collaboration.ts files contain placeholder handlers with void payload. Implementing the real logic is a valuable contribution
  5. Writing tests: store unit tests, tool integration tests, cross-server wiring tests

Code Conventions

Rules and Conventions

  • Formatter: Prettier with single quotes, trailing commas, 100 char line width
  • Imports: use import type { ... } for types
  • Errors: always error instanceof Error ? error.message : String(error)
  • Tool naming: kebab-case (create-sprint, not createSprint)
  • Event naming: domain:action-kebab-case
  • Git branches: feature/feature-name, fix/fix-name
  • Commits: imperative, concise (e.g., "Add auto-timer to time-tracking")
  • PRs: one feature/fix per PR, with clear description

Review Process

  1. Fork the repository on GitHub
  2. Create a branch from main
  3. Implement following the project conventions
  4. Build and typecheck: pnpm build && pnpm typecheck
  5. Commit with clear, descriptive messages
  6. Open a Pull Request to main
  7. Respond to review feedback

Areas Where Help Is Needed

The project has several areas where contributions are particularly welcome:

Requested Contributions

Area Priority Difficulty
Unit tests for all tools High Medium
Redis EventBus implementation High Medium
Completing collaboration handlers Medium Low
GitHub Actions CI/CD Medium Low
Web monitoring dashboard Low High
Plugin system Low High

Roadmap and Future Developments

Tech-MCP is an evolving project. Planned development areas are organized by priority:

Priority 1: Redis EventBus

Currently the EventBus works only with LocalEventBus (in-process). For real-world deployments where each server is a separate process, an external message broker is needed. The Redis implementation will enable inter-process communication between MCP servers distributed across different machines.

Priority 2: MCP Resources and Prompts

Currently Tech-MCP exclusively uses the Tools primitive. The MCP specification also defines Resources (read-only data with URIs) and Prompts (templates for structured workflows). Adding these primitives would significantly enrich server capabilities.

Priority 3: Web Dashboard

A web dashboard for real-time visualization of all server statuses, published events, tool usage metrics, and health checks.

Priority 4: Plugin System

An architecture for third-party plugins with a registry, tool hot-reload, and a shared marketplace.

Lessons Learned

Building 31 MCP servers in a monorepo taught valuable lessons that apply to any medium-to-large scale software project:

1. Standardization Pays Off

Having a standardized structure for every server (factory function, one file per tool, isolated store, separate collaboration handler) drastically reduced the development time for new servers. After the first 5 servers, creating a new one required very little time because the pattern was well-established.

2. Shared Packages Are Essential

Extracting common logic into shared packages (core, event-bus, database, testing) eliminated code duplication and ensured consistency across all servers. Every change to a shared package automatically propagates to all servers that use it.

3. Tool Descriptions Are Critical

The AI chooses which tool to call based solely on its description. Vague descriptions produce underutilized tools; precise descriptions produce a smooth experience. Investing time in writing descriptions is a high-return investment.

4. Fire-and-Forget Simplifies Everything

The fire-and-forget pattern for events enormously simplified the architecture. Servers publish events without knowing who receives them, and collaboration handlers react without direct coupling. This made it possible to add new collaborations without modifying existing servers.

5. In-Memory Tests Are Key

The ability to instantiate every server with an in-memory database made tests fast, isolated, and reproducible. The investment in createTestHarness() and MockEventBus paid enormous dividends in development speed.

Series Summary

This 14-article series covered the entire journey from the MCP protocol to production. Here is a summary of the topics covered:

Complete Series Index

# Topic Level
01 Introduction to the Model Context Protocol Beginner
02 MCP Primitives: Tools, Resources, and Prompts Beginner
03 Monorepo Architecture and Project Patterns Intermediate
04 Building Your First MCP Server in TypeScript Intermediate
05 Building an MCP Client and HTTP Transport Intermediate
06 Shared Packages: Core, EventBus, and Database Intermediate
07 Productivity Servers Intermediate
08 DevOps and Database Servers Intermediate
09 Project Management Servers Intermediate
10 Advanced Servers: Database and Testing Advanced
11 Advanced Servers: Orchestration and Registry Advanced
12 Inter-Server Collaboration and EventBus Advanced
13 Testing, Best Practices, and Production Advanced
14 Tech-MCP: Complete Open Source Project Overview Advanced

Conclusions

The Model Context Protocol represents a paradigm shift in the interaction between developers and artificial intelligence. It is not simply a wrapper around API calls, but a structured protocol that enables automatic discovery, strong typing, bidirectional communication, native composability, and inter-server collaboration.

With Tech-MCP, we have demonstrated that it is possible to build a complete ecosystem of 31 MCP servers, covering the entire software development lifecycle: from code management to project management, from testing to deployment, from monitoring to cross-project analysis.

The project is open source and continuously evolving. Every contribution, whether it is a new server, a test, a fix, or a new feature, is welcome. The future of human-AI interaction passes through open and composable protocols like MCP, and Tech-MCP aims to be a reference point for anyone wanting to explore this territory.

Thank you for following this series. The complete code, documentation, and contribution instructions are available on GitHub.

Commenti

Caricamento commenti...

Sign in to comment

Discuss this article in the community

Join the Telegram group to discuss with other developers, ask questions and share your experiences.

Did you like this article?

Explore other content on the blog or discover my projects