Skip to main content
Glama

get_tax_procedure

Retrieve official French tax procedure information from service-public.fr to understand required steps and documentation for specific tax processes.

Instructions

Get information about a tax procedure from service-public.fr

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
procedure_nameYes
ctxNo

Implementation Reference

  • Registration of the MCP tool 'get_tax_procedure' with wrapper function that delegates to scraper
    @mcp.tool( name="get_tax_procedure", description="Get information about a tax procedure from service-public.fr", ) async def get_tax_procedure_wrapper( procedure_name: str, ctx: Optional[Context] = None, ) -> Optional[Dict]: """Get information about a tax procedure from service-public.fr. Args: procedure_name: Name of the procedure (e.g., 'declaration_revenus', 'credit_impot') ctx: MCP context for logging Returns: Dict: Dictionary containing procedure information """ try: if ctx: await ctx.info(f"Getting tax procedure information for {procedure_name}") from french_tax_mcp.scrapers.service_public_scraper import get_tax_procedure result = await get_tax_procedure(procedure_name) return result except Exception as e: if ctx: await ctx.error(f"Failed to get tax procedure: {e}") return { "status": "error", "message": f"Error getting tax procedure: {str(e)}", }
  • Core handler implementation in ServicePublicScraper class that performs web scraping for tax procedure information
    async def get_tax_procedure(self, procedure_name: str) -> Dict: """Scrape information about a tax procedure from service-public.fr. Args: procedure_name: Name of the procedure (e.g., 'declaration_revenus', 'credit_impot') Returns: Dictionary containing information about the procedure """ logger.info(f"Scraping information for procedure {procedure_name}") try: # Map procedure name to URL url = self._get_procedure_url(procedure_name) if not url: return self.format_result( status="error", message=f"Unknown procedure: {procedure_name}", data={"procedure": procedure_name}, ) # Get the page response = await self.get_page(url) # Parse HTML soup = self.parse_html(response.text) # Extract procedure information procedure_info = self._extract_procedure_info(soup, procedure_name) return self.format_result( status="success", data=procedure_info, message=f"Successfully retrieved information for procedure {procedure_name}", source_url=f"{BASE_URL}{url}", ) except Exception as e: logger.error(f"Error scraping procedure information: {e}") return self.format_result( status="error", message=f"Failed to retrieve procedure information: {str(e)}", data={"procedure": procedure_name}, error=e, )
  • Helper function that provides a standalone interface to the scraper's get_tax_procedure method via singleton instance
    async def get_tax_procedure(procedure_name: str) -> Dict: """Scrape information about a tax procedure from service-public.fr. Args: procedure_name: Name of the procedure (e.g., 'declaration_revenus', 'credit_impot') Returns: Dictionary containing information about the procedure """ return await service_public_scraper.get_tax_procedure(procedure_name)

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/cornelcroi/french-tax-mcp'

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