generate_weekly_summary
Generate comprehensive weekly summaries of AI research activity, including papers, GitHub repositories, and Hugging Face models to track research progress.
Instructions
Generate a comprehensive weekly summary of AI research activity
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| include_papers | No | Include papers section | |
| include_repos | No | Include GitHub repos section | |
| include_models | No | Include Hugging Face models section |
Input Schema (JSON Schema)
{
"properties": {
"include_models": {
"default": true,
"description": "Include Hugging Face models section",
"type": "boolean"
},
"include_papers": {
"default": true,
"description": "Include papers section",
"type": "boolean"
},
"include_repos": {
"default": true,
"description": "Include GitHub repos section",
"type": "boolean"
}
},
"type": "object"
}
Implementation Reference
- src/ai_research_mcp/server.py:536-562 (handler)Core handler function that generates weekly AI research summary by fetching and formatting papers, repositories, and models from multiple sources.async def _generate_weekly_summary( self, include_papers: bool = True, include_repos: bool = True, include_models: bool = True, ) -> str: """Generate weekly summary.""" sections = [] sections.append(f"# AI Research Weekly Summary\n*Generated: {datetime.now().strftime('%Y-%m-%d %H:%M')}*\n") if include_papers: hf_papers = await asyncio.to_thread(self.huggingface.get_daily_papers, days=7) arxiv_papers = await asyncio.to_thread(self.arxiv.get_latest_papers, days=7, max_results=50) pwc_papers = await asyncio.to_thread(self.papers_with_code.get_latest_papers, days=7) all_papers = hf_papers + arxiv_papers + pwc_papers sections.append(f"## 📄 This Week's Papers ({len(all_papers)})\n\n{self._format_papers(all_papers[:30])}") if include_repos: repos = await asyncio.to_thread(self.github.get_trending_repositories, period="weekly", max_results=30) sections.append(f"## 🔥 Trending Repositories ({len(repos)})\n\n{self._format_repos(repos[:20])}") if include_models: models = await asyncio.to_thread(self.huggingface.get_recent_models, days=7, limit=25) sections.append(f"## 🤖 New & Updated Models ({len(models)})\n\n{self._format_models(models[:15])}") return "\n\n".join(sections)
- Input schema defining optional boolean parameters for including papers, repos, and models in the summary.inputSchema={ "type": "object", "properties": { "include_papers": { "type": "boolean", "description": "Include papers section", "default": True, }, "include_repos": { "type": "boolean", "description": "Include GitHub repos section", "default": True, }, "include_models": { "type": "boolean", "description": "Include Hugging Face models section", "default": True, }, }, },
- src/ai_research_mcp/server.py:236-259 (registration)Tool registration in the list_tools() handler, specifying name, description, and input schema.Tool( name="generate_weekly_summary", description="Generate a comprehensive weekly summary of AI research activity", inputSchema={ "type": "object", "properties": { "include_papers": { "type": "boolean", "description": "Include papers section", "default": True, }, "include_repos": { "type": "boolean", "description": "Include GitHub repos section", "default": True, }, "include_models": { "type": "boolean", "description": "Include Hugging Face models section", "default": True, }, }, }, ),
- src/ai_research_mcp/server.py:280-281 (registration)Dispatch logic in call_tool() that routes the tool call to the _generate_weekly_summary handler.elif name == "generate_weekly_summary": result = await self._generate_weekly_summary(**arguments)
- src/ai_research_mcp/server.py:327-327 (registration)Usage of the handler in read_resource() for the weekly-summary resource.summary = await self._generate_weekly_summary()