get_teblig_content
Retrieve the full Markdown content of a Turkish communiqué using its number and series from a prior search. Ready for analysis or summarization.
Instructions
Retrieve the full content of a Turkish communiqué (Tebliğ) in Markdown format.
This tool fetches the complete text of a communiqué identified by its number. Use 'search_teblig' first to find the communiqué number and series.
Returns:
Full communiqué content formatted as Markdown
Ready for analysis, summarization, or question answering
Example usage:
Search for communiqués: search_teblig(aranacak_ifade="katma değer vergisi")
Get full content: get_teblig_content(mevzuat_no="42331", mevzuat_tertip="5")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mevzuat_no | Yes | The communiqué number from search results (e.g., '42331') | |
| mevzuat_tertip | No | Communiqué series from search results (e.g., '5') | 5 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| madde_id | Yes | ||
| mevzuat_id | Yes | ||
| markdown_content | Yes | ||
| error_message | No |
Implementation Reference
- mevzuat_mcp_server.py:509-555 (handler)The handler for the 'get_teblig_content' tool. It is registered as a FastMCP tool via @app.tool() decorator. It accepts mevzuat_no and mevzuat_tertip parameters, calls mevzuat_client.get_content() with mevzuat_tur=9 (Tebliğ type), and returns MevzuatArticleContent (full communiqué content in Markdown).
@app.tool() async def get_teblig_content( mevzuat_no: str = Field( ..., description="The communiqué number from search results (e.g., '42331')" ), mevzuat_tertip: str = Field( "5", description="Communiqué series from search results (e.g., '5')" ) ) -> MevzuatArticleContent: """ Retrieve the full content of a Turkish communiqué (Tebliğ) in Markdown format. This tool fetches the complete text of a communiqué identified by its number. Use 'search_teblig' first to find the communiqué number and series. Returns: - Full communiqué content formatted as Markdown - Ready for analysis, summarization, or question answering Example usage: 1. Search for communiqués: search_teblig(aranacak_ifade="katma değer vergisi") 2. Get full content: get_teblig_content(mevzuat_no="42331", mevzuat_tertip="5") """ logger.info(f"Tool 'get_teblig_content' called: {mevzuat_no}, tertip: {mevzuat_tertip}") try: result = await mevzuat_client.get_content( mevzuat_no=mevzuat_no, mevzuat_tur=9, # Tebliğ mevzuat_tertip=mevzuat_tertip ) if result.error_message: logger.warning(f"Error fetching communiqué content: {result.error_message}") return result except Exception as e: logger.exception(f"Error in tool 'get_teblig_content' for {mevzuat_no}") return MevzuatArticleContent( madde_id=mevzuat_no, mevzuat_id=mevzuat_no, markdown_content="", error_message=f"An unexpected error occurred: {str(e)}" ) - mevzuat_mcp_server.py:509-519 (registration)The tool is registered with FastMCP using the @app.tool() decorator on line 509. The MCP server instance is created at line 38 as 'app = FastMCP(name="MevzuatGovTrMCP", ...)'.
@app.tool() async def get_teblig_content( mevzuat_no: str = Field( ..., description="The communiqué number from search results (e.g., '42331')" ), mevzuat_tertip: str = Field( "5", description="Communiqué series from search results (e.g., '5')" ) ) -> MevzuatArticleContent: - mevzuat_models.py:119-124 (schema)The return type schema for get_teblig_content. MevzuatArticleContent is a Pydantic BaseModel with fields: madde_id, mevzuat_id, markdown_content, and optional error_message.
class MevzuatArticleContent(BaseModel): """Model for the content of legislation (reused from old models).""" madde_id: str mevzuat_id: str markdown_content: str error_message: Optional[str] = None