Skip to main content
Glama
norman-finance

Norman Finance MCP Server

Official

submit_tax_report

Submit tax reports directly to the Finanzamt using a report ID. Receive submission responses and a downloadable tax report link. A paid subscription is required if the response status is 403.

Instructions

Submit a tax report to the Finanzamt.

Args:
    report_id: Public ID of the tax report to submit
    
Returns:
    Response from the submission request and a link to the tax report from reportFile to download.
    If response status is 403, it means a paid subscription is required to file the report.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
report_idYes

Implementation Reference

  • The core handler function for the 'submit_tax_report' tool. It performs a POST request to the API endpoint to submit the tax report for the given report_id. Includes inline schema validation via Pydantic Field and docstring. Handles 403 errors by returning a subscription required message. Registered via @mcp.tool() decorator.
    @mcp.tool()
    async def submit_tax_report(
        ctx: Context,
        report_id: str = Field(description="Public ID of the tax report to submit")
    ) -> Dict[str, Any]:
        """
        Submit a tax report to the Finanzamt.
        
        Args:
            report_id: Public ID of the tax report to submit
            
        Returns:
            Response from the submission request and a link to the tax report from reportFile to download.
            If response status is 403, it means a paid subscription is required to file the report.
        """
        api = ctx.request_context.lifespan_context["api"]
        
        submit_url = urljoin(
            config.api_base_url,
            f"api/v1/taxes/reports/{report_id}/submit-report/"
        )
        
        try:
            return api._make_request("POST", submit_url)
        except requests.exceptions.HTTPError as e:
            if e.response.status_code == 403:
                return {
                    "error": "Subscription required",
                    "message": "You need a paid subscription to file tax reports. Please subscribe before submitting.",
                    "status_code": 403
                }
            raise
  • The registration of tax tools (including submit_tax_report) by calling register_tax_tools(server) in the create_app function. This imports and invokes the registration function from taxes.py which defines and registers the tool using @mcp.tool() decorators.
    register_tax_tools(server)
  • Import of register_tax_tools from taxes.py, enabling the registration of the submit_tax_report tool.
    from norman_mcp.tools.taxes import register_tax_tools

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/norman-finance/norman-mcp-server'

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