axe-handle
A code generator for creating Model Context Protocol (MCP) servers, enabling seamless integration through the MCP standard.
Axe Handle Project
Axe Handle is a code generator for creating Model Context Protocol (MCP) servers. It takes a service definition as input and generates a TypeScript/Express.js implementation of an MCP-compliant server. This tool bridges the gap between existing services and AI agents by enabling seamless integration through the MCP standard.
Documentation Map
The following diagram shows how the documentation is organized and how different documents relate to each other:
For new contributors, we recommend starting with README.md, then exploring DEVELOPMENT_GUIDE.md, followed by CODE_STANDARDS.md.
Getting Started
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Run validation
pnpm run validate
Project Documentation
This project is documented through multiple specialized guides:
Core Documentation
- Project Organization - Architecture, directory structure, and component design
- Code Standards - Coding guidelines and conventions
- Tool Decisions - Definitive decisions on tooling choices
- Development Guide - Complete guide to development workflow and tooling
Project Management
- Roadmap - Strategic vision, prioritized tasks, and future enhancements
- PNPM Cheatsheet - Common PNPM commands for this project
Key Features
- Protocol Definition Input: Takes Protocol Buffer (protobuf) schema as input
- Express.js Output: Generates a TypeScript/Express.js server implementation
- MCP Compliance: Ensures the generated server follows Model Context Protocol specifications
- Template-based Generation: Uses Eta templates for customizable output
- Functional Error Handling: Implements the Result pattern using neverthrow
Technical Stack
- TypeScript: For type safety and improved developer experience
- PNPM: Package management (required for this project, do not use npm/yarn)
- Eta: Templating engine for code generation
- Neverthrow: Functional error handling
- Express.js: Target framework for generated servers
Contributing
We welcome contributions to the Axe Handle project! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes following our Code Standards
- Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For detailed information on development environment setup, workflow, and quality standards, please refer to our Development Guide.
Project Status
Axe Handle is currently in active development. See the Roadmap for current priorities and future plans.