fetchGooseBlog
Retrieve all blog posts from Goose for content tracking and analysis within the Content Fetcher MCP server.
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 that implements the core logic of fetching Goose blog posts via the generic RSS fetcher using the hardcoded RSS URL.async function fetchGooseBlog(): Promise<ContentItem[]> { return await fetchRss(GOOSE_BLOG_RSS); }
- src/server.ts:151-156 (registration)Registration of the 'fetchGooseBlog' tool with FastMCP server, including name, description, empty input schema (z.object({})), and execute handler that calls the function and stringifies the result.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)TypeScript interface defining the structure of ContentItem objects returned by the fetchGooseBlog tool (output schema).interface ContentItem { id: string; title: string; url: string; published_at: string; type: "video" | "blog" | "release"; }
- src/server.ts:87-97 (helper)Supporting helper function used by fetchGooseBlog to parse RSS feeds and map items to ContentItem format.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 constant specifically used by the fetchGooseBlog handler.const GOOSE_BLOG_RSS = "https://block.github.io/goose/blog/rss.xml";