Thank you for your interest in contributing! This project is a Deno/TypeScript implementation of a Model Context Protocol (MCP) server for Terragrunt documentation and GitHub issue integration. Please follow these guidelines to ensure a smooth contribution process.
- Language/Runtime: Deno (TypeScript)
- Purpose: Provide contextual Terragrunt documentation and GitHub issue data to AI agents via MCP tools
- Key Files:
libs/mcp/tools.ts: All MCP tool definitions and schemasREADME.md: Project overview and tool tablerepomix-output.xml: Codebase structure and relationship summarydocs/: Documentation, including this guide
- Install Deno:
- Clone the repository:
git clone git@github.com:Excoriate/mcp-terragrunt-docs.git cd mcp-terragrunt-docs - Install dependencies:
- Deno handles dependencies via imports; ensure you have internet access for first run.
- Run the project:
deno run -A main.ts
- Language: TypeScript (strict mode recommended)
- Validation: Use Zod for schema validation (see
libs/mcp/tools.ts) - Formatting:
- Use biome or Deno's built-in formatter:
deno fmt
- Consistent 2-space indentation
- Prefer named exports
- Use biome or Deno's built-in formatter:
- Comments:
- JSDoc for functions and complex logic
- Inline comments for non-obvious code
- Linting:
- Use Deno lint:
deno lint
- Address all warnings/errors before submitting
- Use Deno lint:
- Branching:
- Use feature branches:
feature/<short-description> - For bugfixes:
fix/<short-description>
- Use feature branches:
- Pull Requests:
- Reference related issues in the PR description
- Summarize changes and rationale
- Ensure all checks pass (lint, test)
- Request review from maintainers
- Commit Messages:
- Use Conventional Commits:
feat: add new tool for ...fix: correct schema validation for ...docs: update README tools table
- Use Conventional Commits:
- Testing:
- Place tests in the
tests/directory - Use Deno's built-in test runner:
deno test
- Place tests in the
- Verification:
- Ensure new/changed tools are reflected in
README.mdand this guide - Cross-reference codebase structure using
repomix-output.xmlfor context
- Ensure new/changed tools are reflected in
- README.md:
- Update the tools table if you add, remove, or change any tool in
libs/mcp/tools.ts
- Update the tools table if you add, remove, or change any tool in
- CONTRIBUTING.md:
- Update this file if contribution process or standards change
- See
repomix-output.xmlfor a merged, searchable summary of all files, components, and their relationships. This is especially useful for onboarding and for understanding cross-file dependencies.
- TypeScript strict mode
- Zod for all schema validation
- Deno fmt/lint for formatting and style
- JSDoc for documentation
- Feature/bugfix branches, PRs with clear context
- Update documentation with every relevant code change
- Open an issue or discussion in the repository
- Tag maintainers for review or clarification
Thank you for helping make this project better!