Skip to main content
Glama
scanady
by scanady
README.md10.1 kB
# Engineering Standards MCP Server ![Build Status](https://img.shields.io/badge/build-passing-brightgreen) ![Version](https://img.shields.io/badge/version-1.0.0-blue) ![License](https://img.shields.io/badge/license-MIT-green) A Model Context Protocol (MCP) server for managing engineering standards, practices, and processes. This server provides AI assistants with structured access to your organization's engineering knowledge base through a standardized interface. ## Table of Contents - [Features](#features) - [Installation](#installation) - [Usage](#usage) - [Architecture](#architecture) - [Tools](#tools) - [File Naming Conventions](#file-naming-conventions) - [Configuration](#configuration) - [Contributing](#contributing) - [License](#license) ## Features - **Multi-dimensional Organization**: Standards organized by type, tier, process, and tags - **Full-Text Search**: Powerful search with relevance scoring across all standards - **Flexible Output**: Support for both JSON and Markdown response formats - **In-Memory Caching**: High-performance indexing for fast retrieval - **Type-Safe**: Complete TypeScript implementation with strict validation - **MCP-Compliant**: Built on the Model Context Protocol SDK v1.24+ - **REST API**: HTTP transport for easy integration with AI assistants - **CRUD Operations**: Create, read, update, and manage standards programmatically ## Installation ### Prerequisites - Node.js >= 18.0.0 - npm (comes with Node.js) ### Step-by-Step Setup 1. **Clone or extract the project**: ```powershell cd engineering-standards-mcp-server ``` 2. **Install dependencies**: ```powershell npm install ``` This will install approximately 192 packages including: - `@modelcontextprotocol/sdk` - MCP SDK - `express` - HTTP server - `zod` - Schema validation - `gray-matter` - Markdown frontmatter parsing - `glob` - File pattern matching 3. **Verify installation**: ```powershell npm start ``` Expected output: ``` ============================================================ engineering-standards-mcp-server v1.0.0 ============================================================ ✓ Server running on http://localhost:3000/mcp ✓ Health check: http://localhost:3000/health Ready to accept MCP connections. ``` ## Usage ### Starting the Server **Development mode** (with auto-reload): ```powershell npm run dev ``` **Production mode**: ```powershell npm start ``` ### Docker Deployment **Using Docker Compose (Recommended)**: ```powershell docker-compose up -d ``` **Using Docker CLI**: ```powershell # Build the image npm run docker:build # Run the container npm run docker:run ``` For detailed Docker deployment instructions, see [DOCKER.md](DOCKER.md). ### Connecting AI Clients **Claude Desktop**: ```powershell claude mcp add --transport http engineering-standards http://localhost:3000/mcp ``` **MCP Inspector** (for testing): ```powershell npx @modelcontextprotocol/inspector # Connect to: http://localhost:3000/mcp ``` **VS Code** (if supported): ```powershell code --add-mcp '{"name":"engineering-standards","type":"http","url":"http://localhost:3000/mcp"}' ``` ### Example Queries Once connected, you can interact with the server through your AI assistant: - "List all active backend standards" - "Search for Spring Boot security practices" - "Show me the frontend development principles" - "Create a new standard for API testing" - "Update the database performance standard" ### Health Check Verify the server is running: ```powershell Invoke-WebRequest -Uri http://localhost:3000/health ``` ## Architecture ### Project Structure ``` engineering-standards-mcp-server/ ├── src/ │ ├── index.ts # Main server entry point │ ├── constants.ts # Configuration constants │ ├── types.ts # TypeScript type definitions │ ├── schemas/ │ │ └── metadata.ts # Zod validation schemas │ ├── services/ │ │ ├── validator.ts # Metadata validation │ │ ├── parser.ts # Markdown parsing │ │ ├── storage.ts # File system operations │ │ └── indexer.ts # In-memory indexing │ └── tools/ │ ├── list.ts # List index tool │ ├── get.ts # Get standard tool │ ├── search.ts # Search tool │ ├── metadata.ts # Metadata tool │ ├── create.ts # Create tool │ └── update.ts # Update tool ├── data/ # Knowledge base directory ├── scripts/ │ └── migrate-standards.ts # Migration utility ├── package.json ├── tsconfig.json └── README.md ``` ### Service Layers 1. **Validator Service**: Validates standard metadata using Zod schemas 2. **Parser Service**: Parses Markdown files with frontmatter 3. **Storage Service**: Manages file system operations 4. **Indexer Service**: Maintains in-memory search index ## Tools The server exposes 6 MCP tools following VS Code best practices: ### 1. `list_standards` Browse all standards organized hierarchically by type, tier, and process. **Parameters**: filterType, filterTier, filterProcess, filterStatus **Output**: JSON or Markdown ### 2. `get_standard` Retrieve a specific standard by its file path or metadata. **Input**: File path or metadata combination (type, tier, process) **Output**: Full standard content with metadata ### 3. `search_standards` Full-text search across all standards with relevance scoring. **Input**: Query string, optional filters (filterType, filterTier, etc.), limit **Output**: Ranked search results ### 4. `get_standards_metadata` Query metadata only without fetching full content. **Parameters**: filterType, filterTier, filterProcess, filterStatus, filterTags ### 5. `create_standard` Create a new standard with automatic validation and file naming. **Input**: Metadata and content **Output**: Created standard path ### 6. `update_standard` Update existing standards with version bumping. **Input**: Path, updated content, versionBump type **Output**: Updated standard details ## File Naming Conventions Standards must follow the naming pattern: ``` {type}-{tier}-{process}-{slug}-{status}.md ``` ### Components - **type**: `principle` | `standard` | `practice` | `tech-stack` | `process` - **tier**: `frontend` | `backend` | `database` | `infrastructure` | `security` - **process**: `development` | `testing` | `delivery` | `operations` - **slug**: Descriptive kebab-case identifier - **status**: `active` | `draft` | `deprecated` ### Examples ``` standard-backend-development-spring-boot-security-active.md principle-frontend-development-nextjs-principles-active.md practice-security-testing-penetration-testing-active.md ``` ## Configuration ### Environment Variables Customize server behavior with environment variables: ```powershell # Change server port (default: 3000) $env:PORT=3001; npm start # Change standards directory (default: ./standards) $env:STANDARDS_DIR="C:\path\to\standards"; npm start ``` ### TypeScript Configuration The project uses strict TypeScript settings defined in `tsconfig.json`: - ES2022 target - ESM modules - Strict type checking enabled - Source maps for debugging ## Contributing We welcome contributions to improve the Engineering Standards MCP Server! ### Getting Started 1. **Fork the repository** 2. **Create a feature branch**: ```powershell git checkout -b feature/your-feature-name ``` 3. **Make your changes** with proper type annotations 4. **Test your changes**: ```powershell npm start # Verify all tools work correctly ``` 5. **Commit your changes**: ```powershell git add . git commit -m "Add: your feature description" ``` 6. **Push to your fork**: ```powershell git push origin feature/your-feature-name ``` 7. **Open a Pull Request** with a clear description of changes ### Development Guidelines - Follow existing code style and TypeScript patterns - Add Zod schemas for new validation requirements - Update tool descriptions when modifying functionality - Test with MCP Inspector before submitting - Keep service layers decoupled and focused ### Adding New Tools 1. Create tool file in `src/tools/` 2. Define input schema in `src/schemas/metadata.ts` 3. Register tool in `src/index.ts` 4. Update constants in `src/constants.ts` 5. Add documentation to this README ## License This project is licensed under the MIT License. ### MIT License Summary Permission is granted to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, subject to including the copyright notice and permission notice in all copies. **See the full license text**: [MIT License](https://opensource.org/licenses/MIT) ### Author New York Life - Technology Division ## Project Stats - **Lines of Code**: ~3,000+ - **Services**: 4 core service layers - **Tools**: 6 MCP-compliant tools - **Type Definitions**: 12 TypeScript interfaces - **Validation Schemas**: 7 Zod schemas - **Dependencies**: 192 packages (0 vulnerabilities) - **Sample Standards**: 2 complete examples included ## Additional Resources - [Quick Start Guide](QUICK_START.md) - Detailed setup and usage instructions - [Model Context Protocol](https://modelcontextprotocol.io/) - Official MCP documentation - [MCP SDK](https://github.com/modelcontextprotocol/sdk) - TypeScript SDK repository ## Support For issues, questions, or contributions, please contact the New York Life Technology Division team or open an issue in the repository 2. Follow **QUICK_START.md** for setup 3. Connect your preferred MCP client 4. Start adding your organization's standards ### Migration To migrate legacy standards to the new naming scheme (and normalize `type` values to singular form), use the migration script: ```bash # Dry-run (preview changes) npm run migrate # Apply changes (rename files & update frontmatter) npm run migrate:apply ``` --- **Ready to use!** 🚀

Latest Blog Posts

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/scanady/engineering-standards-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server