get_article_details
Retrieve detailed information about a specific Dev.to article using its article ID to access content data.
Instructions
Get detailed information about a specific article
Args:
article_id: The ID of the article to retrieve
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes |
Implementation Reference
- server.py:67-77 (handler)The handler function for the 'get_article_details' tool. It is registered via the @mcp.tool() decorator, fetches the article data from the Dev.to API using the helper fetch_from_api, and formats the output using format_article_details.@mcp.tool() async def get_article_details(article_id: int) -> str: """ Get detailed information about a specific article Args: article_id: The ID of the article to retrieve """ article = await fetch_from_api(f"/articles/{article_id}") return format_article_details(article)
- server.py:12-18 (helper)Shared helper function used by get_article_details (and other tools) to perform API requests to Dev.to.async def fetch_from_api(path: str, params: dict = None) -> dict: """Helper function to fetch data from Dev.to API""" async with httpx.AsyncClient() as client: url = f"{BASE_URL}{path}" response = await client.get(url, params=params, timeout=10.0) response.raise_for_status() return response.json()
- server.py:190-208 (helper)Helper function that formats the raw article dictionary into a human-readable markdown string, used by the get_article_details tool.def format_article_details(article: dict) -> str: """Format a single article with full details""" if not article: return "Article not found." title = article.get("title", "Untitled") author = article.get("user", {}).get("name", "Unknown Author") published_date = article.get("readable_publish_date", "Unknown date") body = article.get("body_markdown", "No content available.") tags = article.get("tags", "") result = f"# {title}\n\n" result += f"Author: {author}\n" result += f"Published: {published_date}\n" result += f"Tags: {tags}\n\n" result += "## Content\n\n" result += body return result