<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mlenhard</title><link>https://news.ycombinator.com/user?id=mlenhard</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 11 Jun 2026 03:14:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mlenhard" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Evolving OAuth Client Registration in the Model Context Protocol]]></title><description><![CDATA[
<p>Article URL: <a href="http://blog.modelcontextprotocol.io/posts/client_registration/">http://blog.modelcontextprotocol.io/posts/client_registration/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45025667">https://news.ycombinator.com/item?id=45025667</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 26 Aug 2025 12:35:12 +0000</pubDate><link>http://blog.modelcontextprotocol.io/posts/client_registration/</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=45025667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45025667</guid></item><item><title><![CDATA[Monkey Patching Otel and Prometheus Support into MCP]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.mcpevals.io/blog/adding-otel-and-prometheus-to-mcp">https://www.mcpevals.io/blog/adding-otel-and-prometheus-to-mcp</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43937244">https://news.ycombinator.com/item?id=43937244</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 09 May 2025 14:33:56 +0000</pubDate><link>https://www.mcpevals.io/blog/adding-otel-and-prometheus-to-mcp</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43937244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43937244</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: Klavis AI – Open-source MCP integration for AI applications"]]></title><description><![CDATA[
<p>I actually came across Plandex the other day. I haven't had the chance to play around with it yet, but it looked really cool.<p>But agree that even basic prompts can be a struggle. You often need to name the tool in the prompt to get things to work reliably, but that's an awful user experience. Tool call descriptions play a pretty vital role, but most MCP servers are severely lacking in this regard.<p>I hope this a result of everything being so new and the tooling and models will evolve to solve these issues over time.</p>
]]></description><pubDate>Mon, 05 May 2025 17:41:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43897514</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43897514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43897514</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: Klavis AI – Open-source MCP integration for AI applications"]]></title><description><![CDATA[
<p>Agree on the unpredictability of results issue. Tool call selection is still sort of a black box.<p>How do you know what variations of a prompt trigger a given tool to be called or how many tools is too many before you start seeing degradation issues because of the context window. If you are building a client and not a server the issue becomes even more pronounced.<p>I even extracted the Claude electron source to see if I could figure out how they were doing it, but it's abstracted behind a network request. I'm guessing the system prompt handles tool call selection.<p>PS: I released an open source evals package if you're curious. Still a WIP, but does the basics <a href="https://github.com/mclenhard/mcp-evals">https://github.com/mclenhard/mcp-evals</a></p>
]]></description><pubDate>Mon, 05 May 2025 17:12:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43897235</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43897235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43897235</guid></item><item><title><![CDATA[Tools vs. Agents: A Mathematical Framework]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.mcpevals.io/blog/tools-vs-agents">https://www.mcpevals.io/blog/tools-vs-agents</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43857138">https://news.ycombinator.com/item?id=43857138</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 01 May 2025 13:03:31 +0000</pubDate><link>https://www.mcpevals.io/blog/tools-vs-agents</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43857138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43857138</guid></item><item><title><![CDATA[Show HN: Open-source load balancer for distributed MCP server architecture]]></title><description><![CDATA[
<p>Like many others, I’ve been hacking on MCP servers lately. The issue I ran into was that running multiple MCP servers behind a unified backend was hard. I needed a way to combine all the tool calls from different MCP servers so the client got a unified view, route requests to the correct server based on the tool call, and maintain session affinity for SSE requests. This led me to build CATIE, which solves the above issues.<p>CATIE is a lightweight proxy that routes MCP requests to the appropriate backend services based on their content.<p>Key Features<p>- Content-Based Routing: Routes requests based on tool call. This allows server operators to use a micro-service architecture, with the user only installing one server. This separation allows server operators to scale tool calls independently.<p>- Unified Tool Call Response: Combine the tool list response from multiple MCP servers.
- Session Stickiness: Maintains client connections to the same backend<p>- Pattern Matching: Uses regex patterns to route tool requests<p>- Real-time Monitoring: Simple dashboard to see traffic patterns and performance with built-in Prometheus integration.<p>- Backend Switching: Change where requests go without client reconfiguration<p>How It Works<p>CATIE sits between your clients and your MCP servers. When a request comes in, it:<p>- Parses the JSON-RPC request to understand what it's trying to do<p>- Applies your routing rules to determine the appropriate backend<p>- Forwards the request to the backend<p>- Maintains session stickiness for ongoing conversations<p>- Has a built-in UI for monitoring statistics and integrates with Prometheus<p>CATIE is fully open source under the MIT license. Contributions, feedback, and feature requests are all welcome!<p>- GitHub: <a href="https://github.com/mclenhard/catie-mcp">https://github.com/mclenhard/catie-mcp</a>
- Docs: <a href="https://www.catiemcp.com/docs/" rel="nofollow">https://www.catiemcp.com/docs/</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43704735">https://news.ycombinator.com/item?id=43704735</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 16 Apr 2025 12:43:45 +0000</pubDate><link>https://github.com/mclenhard/catie-mcp</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43704735</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43704735</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: MCP-Shield – Detect security issues in MCP servers"]]></title><description><![CDATA[
<p>This is pretty cool. You should also attempt to scan resources if possible. Similar to the tool injection attack Invariant Labs discovered, I achieved the same result via resource injection [1].<p>The three things I want solved to improve local MCP server security are file system access, version pinning, and restricted outbound network access.<p>I've been running my MCP servers in a Docker container and mounting only the necessary files for the server itself, but this isn't foolproof. I know some others have been experimenting with WASI and Firecracker VMs. I've also been experimenting with setting up a squid proxy in my docker container to restrict outbound access for the MCP servers. All of this being said, it would be nice if there was a standard that was set up to make these things easier.<p>[1] <a href="https://www.bernardiq.com/blog/resource-poisoning/" rel="nofollow">https://www.bernardiq.com/blog/resource-poisoning/</a></p>
]]></description><pubDate>Tue, 15 Apr 2025 11:30:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43691333</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43691333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43691333</guid></item><item><title><![CDATA[New comment by mlenhard in "Everything wrong with MCP"]]></title><description><![CDATA[
<p>Yeah, you aren't far off with SQL injection comparison. That being said it's not really a fault of the MCP spec, more so with current client implementations of it.</p>
]]></description><pubDate>Mon, 14 Apr 2025 12:43:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43680675</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43680675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43680675</guid></item><item><title><![CDATA[New comment by mlenhard in "Everything wrong with MCP"]]></title><description><![CDATA[
<p>One of the biggest issues I see, briefly discussed here, is how one MCP server tool's output can affect other tools later in the same message thread. To prevent this, there really needs to be sandboxing between tools. Invariant labs did this with tool descriptions [1], but I also achieved the same via MCP resource attachments[2]. It's a pretty major flaw exacerbated by the type of privilege and systems people are giving MCP servers access to.<p>This isn't necessarily the fault of the spec itself, but how most clients have implemented it allows for some pretty major prompt injections.<p>[1] <a href="https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks" rel="nofollow">https://invariantlabs.ai/blog/mcp-security-notification-tool...</a>
[2] <a href="https://www.bernardiq.com/blog/resource-poisoning/" rel="nofollow">https://www.bernardiq.com/blog/resource-poisoning/</a></p>
]]></description><pubDate>Mon, 14 Apr 2025 12:25:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43680550</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43680550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43680550</guid></item><item><title><![CDATA[MCP Resource Poisoning Prompt Injection Attacks]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.bernardiq.com/blog/resource-poisoning/">https://www.bernardiq.com/blog/resource-poisoning/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43643495">https://news.ycombinator.com/item?id=43643495</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 10 Apr 2025 13:19:19 +0000</pubDate><link>https://www.bernardiq.com/blog/resource-poisoning/</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43643495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43643495</guid></item><item><title><![CDATA[New comment by mlenhard in "The Agent2Agent Protocol (A2A)"]]></title><description><![CDATA[
<p>Yeah, I plan on improving the formatting and adding a few more examples. There were even still some typos in the piece. To be honest, I didn't plan on sharing it yet; I just figured it might be helpful for the OP, so I shared it early.<p>I also think the docs are pretty good. There's just something about seeing the actual network requests that helps clarify things for me.</p>
]]></description><pubDate>Thu, 10 Apr 2025 11:59:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43642957</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43642957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43642957</guid></item><item><title><![CDATA[New comment by mlenhard in "The Agent2Agent Protocol (A2A)"]]></title><description><![CDATA[
<p>Yeah, at its core it's just a proxy, so there are a lot of other tools out there that would do the job. It does have a nice UI and I try to support projects like it when I can.<p>I'll check out your proxy as well, I enjoy looking at anything built around networking.</p>
]]></description><pubDate>Wed, 09 Apr 2025 16:23:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=43633880</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43633880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43633880</guid></item><item><title><![CDATA[New comment by mlenhard in "The Agent2Agent Protocol (A2A)"]]></title><description><![CDATA[
<p>I was in the same boat in regards to trying to find the actual JSON that was going over the wire. 
I ended up using Charles to capture all the network requests. I haven't finished the post yet, but if you want to see the actual JSON I have all of the request and responses here <a href="https://www.catiemcp.com/blog/mcp-transport-layer/" rel="nofollow">https://www.catiemcp.com/blog/mcp-transport-layer/</a></p>
]]></description><pubDate>Wed, 09 Apr 2025 15:22:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=43633160</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=43633160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43633160</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: HyperDX Local – Open-source Datadog alternative for local debugging/dev"]]></title><description><![CDATA[
<p>super cool. Debugging locally across multiple microservices can be a huge pain.<p>A small feature request/idea - packaging this as a helm chart to make local development on something like Minkikube easier.</p>
]]></description><pubDate>Tue, 02 Apr 2024 16:08:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=39907383</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=39907383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39907383</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: Hydra - Open-Source Columnar Postgres"]]></title><description><![CDATA[
<p>Congrats on the 1.0 Release, big milestone.<p>I'm personally really excited about all of the recent tooling for postgres aggregates. Definitely a pain point for a lot of developers and its easy to fall in trap where things work fine in the beginning and then query times explode as requirements change and the dataset grows. Nice to not have to spin up another DB in order to solve the problem as well.</p>
]]></description><pubDate>Tue, 19 Sep 2023 22:02:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=37577516</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=37577516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37577516</guid></item><item><title><![CDATA[New comment by mlenhard in "Show HN: Hydra 1.0 – open-source column-oriented Postgres"]]></title><description><![CDATA[
<p>Congrats on the launch!<p>For those who have not experimented with columnar based databases, I would highly recommend toying around with them.<p>The performance improvements can be substantial. Obviously there are drawbacks involved with integrating a new database into your infrastructure, so it is exciting to see columnar format introduced to Postgres. Removes the hurdle of learning, deploying and monitoring another database.</p>
]]></description><pubDate>Thu, 03 Aug 2023 16:44:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=36988274</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=36988274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36988274</guid></item><item><title><![CDATA[Building an eBPF Based Profiler]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.containiq.com/post/building-an-ebpf-based-profiler">https://www.containiq.com/post/building-an-ebpf-based-profiler</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=33008320">https://news.ycombinator.com/item?id=33008320</a></p>
<p>Points: 12</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 28 Sep 2022 14:25:08 +0000</pubDate><link>https://www.containiq.com/post/building-an-ebpf-based-profiler</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=33008320</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33008320</guid></item><item><title><![CDATA[Decrypting SSL at scale with eBPF, libbpf and K8s]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.containiq.com/post/decrypting-ssl-at-scale-with-ebpf">https://www.containiq.com/post/decrypting-ssl-at-scale-with-ebpf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=32425117">https://news.ycombinator.com/item?id=32425117</a></p>
<p>Points: 10</p>
<p># Comments: 6</p>
]]></description><pubDate>Thu, 11 Aug 2022 13:16:12 +0000</pubDate><link>https://www.containiq.com/post/decrypting-ssl-at-scale-with-ebpf</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=32425117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32425117</guid></item><item><title><![CDATA[New comment by mlenhard in "Ask HN: What books are you currently reading?"]]></title><description><![CDATA[
<p>Sapiens: A Brief History of Humankind 
by Yuval Noah Harari</p>
]]></description><pubDate>Wed, 26 Jul 2017 19:51:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=14859605</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=14859605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14859605</guid></item><item><title><![CDATA[Nearly half of young Americans won’t fly United anymore]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.marketwatch.com/story/nearly-half-of-young-americans-wont-fly-united-anymore-2017-04-21">http://www.marketwatch.com/story/nearly-half-of-young-americans-wont-fly-united-anymore-2017-04-21</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=14172733">https://news.ycombinator.com/item?id=14172733</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 22 Apr 2017 14:40:06 +0000</pubDate><link>http://www.marketwatch.com/story/nearly-half-of-young-americans-wont-fly-united-anymore-2017-04-21</link><dc:creator>mlenhard</dc:creator><comments>https://news.ycombinator.com/item?id=14172733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14172733</guid></item></channel></rss>