fetchGooseBlog
Retrieve all blog posts from Goose to access complete content archives and stay current with published articles.
Instructions
Fetch ALL Goose blog posts.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server.ts:102-104 (handler)The handler function for the fetchGooseBlog tool. It fetches the Goose blog RSS feed using the generic fetchRss helper with the hardcoded URL.async function fetchGooseBlog(): Promise<ContentItem[]> { return await fetchRss(GOOSE_BLOG_RSS); }
- src/server.ts:151-156 (registration)Registration of the fetchGooseBlog tool in the FastMCP server. No input parameters required; executes the handler and stringifies the JSON output.server.addTool({ name: "fetchGooseBlog", description: "Fetch ALL Goose blog posts.", parameters: z.object({}), execute: async () => JSON.stringify(await fetchGooseBlog()), });
- src/server.ts:30-36 (schema)Type definition for ContentItem, which structures the output returned by the fetchGooseBlog handler.interface ContentItem { id: string; title: string; url: string; published_at: string; type: "video" | "blog" | "release"; }
- src/server.ts:87-97 (helper)Generic RSS fetching helper used by fetchGooseBlog to parse the RSS feed and map items to ContentItem objects.async function fetchRss(url: string): Promise<ContentItem[]> { const feed = await rssParser.parseURL(url); return feed.items.map((item) => ({ id: item.guid || item.link || "", title: item.title || "", url: item.link || "", published_at: item.pubDate || "", type: "blog" as const, })); }
- src/server.ts:23-23 (helper)Hardcoded RSS URL for the Goose blog, used exclusively by the fetchGooseBlog handler.const GOOSE_BLOG_RSS = "https://block.github.io/goose/blog/rss.xml";