CLI certainly is better than local MCP. But nowadays, most MCPs are remote and the comparison fall short, at the notable exception of `gh` in a coding environment. But having CLI already authenticated is not guaranted either!
HN user
timq
Hi HN!
I'm Tim, solo founder of Spanly.
Since MCP got traction in early 2025, I've been convinced that within a few years, agents may use your product more than humans do, and if so, they'll mainly do it via MCP.
Today, MCP monitoring often stops at the HTTP layer, and at best instruments the official SDK to gather a few more insights. You still can't observe any deployed MCP, get the overall view, the sessions, or the analytics. Spanly is my attempt to fill that gap!
Live demo: https://app.spanly.com/share/demo
CLI/SDK source (Apache-2.0): https://github.com/spanlyhq/spanly
The key concept: capture every JSON-RPC request and response your MCP server handles. Put the Spanly CLI in front of any MCP server (or use the TypeScript/Python SDK) and get a live, organized view of all that traffic.
- Error rates and p50/p95/p99 latency per tool, resource, prompt, etc...
- Per-client, per-server, per-version views
- Full session traces to replay what an agent did, with payload
- Adoption and client analytics
- Alerts when a deploy spikes errors
- Data stored in the US or in the EU
It blends with your existing Datadog/Sentry/New Relic through a deep-link.
Under the hood this is built on top of ClickHouse, Postgres and Redis, is deployed on Render and payloads are stored in Cloudflare R2. SDKs and CLI are meant to be simple: packets are forwarded for ingestion. The heavy lifting happens in Spanly backend: pairing requests/responses, aggregating for sessions, extracting analytics and storage.
An MCP is available for agents to debug your production MCP servers. As dog-fooding principle obliges, Spanly MCP is monitored by Spanly.
This is my first solo project. Would love your feedback!
Tim
Explorable by design, can be served through HTTP, OAuth integration.
There is no wrong time for that. You did the right choice.
To bring some positive news, I bought this computer last month and up to now I'm quite happy with it.
TouchPad feels very good but is a little buggy when the computer rest on some surfaces.
The function keys are not a pain to use, and the keyboard feels very good otherwise.
I installed Fedora and Windows 10 on it. Bought with Ubuntu for the price reduction.
Oled screen is marvelous, battery life is okay: 5h when developing using vscode and tons of extensions. It does get quite hot when doing some 3d stuff but that's expected I guess.
Battery life can be improved by choosing the LCD screen.
It has some flaws, but I find them minor and I value much more the possibility to have a windows Linux dual boot.
On the other hand in my current company we have people from all over the world: US, EU, Africa, Asia and Australia.
Everything is asynchronous, flat hierarchy, only seniors hired as freelancers though, so quite autonomous people. Two dev syncs per week, fine if you skip one for whatever reason. One single manager for 10 people. It works quite well.
For me this is remote working done mostly well.
More likely that Google engineers are in a bubble because of all the available internal tools. Also the interview process nowadays select people that have time to train for the interviews rather than good engineers. The Google interview is still hard, but not for the same reasons than in early 2010.
Except some Nintendo games, like breath of the wild.
It all boils down to the fact that people need to feel useful. This is part of the society as a whole. During this meetings, look at who need attention, and praise their propositions.
On some rare cases it is a power move, in such cases either you can play the power game or you can't.
Regarding power games, the real fight happen before the meeting, so if you feel unprepared and you know someone in power is going to pressure you: don't go.
In 2016 Google News was great because with a 5 minutes glance you coudl hved all the necessary news. However this strategy doesn't work anymore thanks to Google News trying to be smart by adapting news to your browsing history.
I haven't been able to find a good alternative to the old Google News.
I tried subscribing to one or many newspapers, but they all have too many useless articles inbetween valuable news such that filtering noise takes too much time.
So in the end I still read Google News but I'm getting a sens of negativity and frustration that wasn't there in 2016. And it takes more time to have all the necessary news. Since "Time spent on Google News" is probably an important metric for Google, the situation is not going to improve anytime soon.
Well, you can still right click on an image preview in Google Image and then select "Show Image" to get the image in full resolution, like the good old "View Image" button.
There is of course a middle ground between 'writing for writing' and 'writing for payback'. For instance people might want to post how they did some stuff, with the hope that it helps at least one guy. That's how most blog were written.
Then internet slowly became a place where everything is a business opportunity, and blogs were relayed into the second zone. Google also somehow became much less useful when it comes to find good blogs, probably because of aggressive SEO.
You may want to see a doctor ;)
I kinda agree with you, but I think it's expected: demos are just ads for technical people. So in a way you know that it's too good to be true.
Plus they don't actually explain how it works, how the demo was made and what's the limits of their technology. They only show the good side, so people naturally wants to know the not-so-good side as well.
I mean almost by definition a single app page is a mini browser inside a browser. So you can make it as fast and clever as you want, you still added another layer to render boxes, text and probably the most important: ads.
I would be more concerned by the fact that if i is 10, then you already are in trouble ;)
Musl is a pretty good replacement, I have been using it for years without any troubles.
It looks a better bet to colonize Mars with genetically modified humans to sustain radiation. If such technology is not available at the time, having DNA correcting machines to give birth to sane humans is probably going to be a solved problem by then. Even though adults will suffers from the radiations.
Very well written code indeed. Thanks for the links. They could make error management less bug prone by using goto, but it's definitely high quality C code nonetheless.
I think the key point is the amount of energy and resources necessary to make self driving cars a reality.
With the ongoing climate change and projected energy crisis, humanity may not have the physical resources to build and maintain self driving cars.
If somehow the energy problem is solved and climate change does not bring chaos, I can see true self driving car before 2100.
Believe it or not, it's one way or another to formulate a critic, and I'm fine with it. However your strongly worded answer lacks arguments, so color me unconvinced.
As long as Linus is blaming the work done and not the people behind it, that's fine. Something truly aggressive would be "This benchmark is garbage and the people responsible for writing it are monkeys on crack". He did such things in the past, but in the 4 emails I got to find on this specific benchmark, none of them critic people writing code.
I think Linus got upset that a badly designed benchmark got popular and therefor is spreading misconceptions. His strongly worded answer is getting popular too and as a result everybody learns and he has stopped an urban legend from spreading. A success on every points.
If I had to guess why there are no such lightweight library, it is because when somehow the library API doesn't provide what you want, you cannot hack the library itself easily. If you import the source code you may have trouble building it, and maintening such "patch" is not a lot of fun.
That was very true for a long time. But now with cmake and a package manager like hunter, it became quite easy and pleasant to work with dependencies. ExternalProject_Add() may also work.
A little off-topic but here is a cool piece of code about a special case in C:
void (*foo)() = 0;
void (*bar)() = (void *)0;
void (*baz)() = (void *)(void *)0; // Error
Can you guess why compilers reject the last line?Handling malloc() failure is almost never done for short lived programs. For instance git used to fail as soon as an error popped of (whether be it malloc() or open(), etc...). It just is much simpler and convenient to do so.
While C has no special error handling mechanism in place, error handling can still be done reasonably. IMO, the big reason for why malloc() errors are rarely handled is because it is quite hard to come with a viable fallback strategy.
Or just search for "powered by".
Then why is even a harmless increase to 2 or 4 refused? The current confirmation time and fees are beyond any worst case scenario, but yet there are still people completely brainwashed to argue that Bitcoin Core is perfectly fine.
Bitcoin Cash scale what it can scale, that is, blocksize. That's it, it is a pragmatic approach absolutely obvious for anyone with more than 2 year of experience in programming.
Thanks you :)
What other coins are also promising in your opinion? I'm talking of scalable, fast and decentralized coins like raiblock seems to be.