Contributing to mcp-einvoicing-in
यह कंटेंट अभी तक आपकी भाषा में उपलब्ध नहीं है।
Thank you for your interest in contributing. This document explains the workflow and expectations.
Development setup
git clone https://github.com/cmendezs/mcp-einvoicing-in.gitcd mcp-einvoicing-inuv sync --all-extrasRunning the test suite
uv run pytestRun with verbose output:
uv run pytest -vLinting and type checking
uv run ruff check src/ tests/ audit/uv run ruff format --check src/ tests/ audit/uv run mypy srcTo auto-fix lint issues:
uv run ruff check --fix src/ tests/ audit/uv run ruff format src/ tests/ audit/Tool reference
The tool reference in docs/TOOLS.md is generated from the running MCP server.
If you add, remove, or change a tool or its parameters, regenerate it:
uv run python scripts/gen_tool_reference.pyThe publish workflow regenerates it at release time, and --check mode reports
drift without writing:
uv run python scripts/gen_tool_reference.py --checkUpdating specification documents (spec-update)
Retrieving current, official NIC/GSTN specifications from outside India is
unreliable — GSTN enforces strict geographic firewalls that routinely block or
rate-limit non-Indian IP addresses. If you can supply an updated or missing
specification (see specs/README.md’s “Pending specs” table — the NIC e-invoice
API spec and master code lists are the most impactful gaps), use this two-step
flow:
- Open an issue using the Spec Update issue template, naming the document, its official source URL, version, and your retrieval date.
- Deliver via pull request: commit the file(s) under
specs/, add a row tospecs/README.md’s “Sources and versions” table (document, official URL, version, retrieved date), and confirm in the PR description that the document is an official government-published specification/notification and is freely redistributable.
Pull request checklist
- All tests pass (
pytest) - No lint errors (
ruff check) - No type errors (
mypy src) - New or changed behaviour is covered by tests
- Any GST field/rule cited in a fix traces to a specific schema field number (e.g.
A.1.2.15) or notification, not to memory -
docs/TOOLS.mdregenerated if any tool or parameter changed -
CHANGELOG.mdupdated under[Unreleased]
Commit style
Use Conventional Commits:
feat: add a new validation toolfix: normalize party identifiers with leading zerosdocs: update README with configuration detailstest: add fixture for a credit noteReporting issues
Please open an issue at https://github.com/cmendezs/mcp-einvoicing-in/issues and include:
- The tool name and input you used
- The expected result
- The actual result (full error message or unexpected output)
- The schema field number or notification involved, if known
Security issues follow a different path: see SECURITY.md and report privately rather than in a public issue.