Letting an AI ask 'what shipped in this field this week?'
Ask an assistant about recent developments and you get one of two things: whatever was in its training data, or the top few web search results. What you cannot ask is the thing you actually want — "what came out in Rust tooling in the last two weeks" — scoped to a field, across the sources that cover it. Those sources exist. They are RSS feeds. They are just not reachable from an AI tool. So I…
This AI-powered directory of RSS feeds aims to answer specific queries about recent developments, such as what new tools were released in the Rust tooling space in the last two weeks. The directory contains 2,907 RSS feeds across 19 languages and 37 categories, holding 51,483 articles. An MCP (Message Control Protocol) server exposes this data to AI tools, allowing them to search for relevant information.
There are four main tools provided by the server: search_feeds, get_feed, get_articles, and get_rankings. Initially, a fifth tool, get_favorite_articles, was considered but implemented as a parameter instead. This decision was made to reduce the complexity for the AI model, as each additional tool introduces more potential decision branches.
To handle authentication, the server returns HTTP 401 Unauthorized when a user is not authorized to access the requested data. This approach is preferred over returning an HTTP 200 with an error message, as the latter can confuse clients and make it unclear that authentication is required. The authorization server is discovered from the WWW-Authenticate header, allowing the client to initiate the sign-in process.
The user ID is not included as a parameter in the tool arguments for user-scoped features. Instead, the user ID is extracted from the verified access token. This approach prevents the introduction of potential bugs, as the model is less likely to make mistakes when dealing with fewer arguments.
The Workers Rate Limiting binding used for the MCP server did not function as expected, so a Durable Object was implemented instead. This change ensured that the rate limit was enforced accurately, with the 31st authenticated request receiving a 429 Too Many Requests response and the 11th request for the demo receiving the same response.
The directory only provides a title, 500-character excerpt, and link for each feed, limiting the amount of content displayed. This decision was made to reduce the amount of data stored and the processing required to summarize the content. The reader can access the full articles directly from the source, as RSS was originally designed for.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.