Comment by irskep
3 days ago
What advantage do you get from this being an MCP server rather than simply a command line tool? Genuinely curious, as I'm trying to develop my mental model of when to use one or the other.
Lovely project!
3 days ago
What advantage do you get from this being an MCP server rather than simply a command line tool? Genuinely curious, as I'm trying to develop my mental model of when to use one or the other.
Lovely project!
Cheers, glad you like it!
I justified the hours I invested by thinking I could search, download, and explore books directly from Claude Desktop. While the initial steps are achievable with a CLI tool, the integration opens up new possibilities.
Some general thoughts:
- You’ll find the MCP mental model similar to the API one. - MCP integrations make it easier for non-technical users to access tools that were previously too technical. - An MCP integration implicitly respects a contract, unlike CLIs and GUIs which involve human aspects (aesthetics, information organisation, etc.). - MCP is an excuse for people to democratize data access. I wrote about this aspect here: https://x.com/iosifache/status/1941049600162574676?s=46
And BTW, that’s a good idea! The functionality should probably also be exposed via CLI.
https://neon.com/blog/building-a-cli-client-for-model-contex... might be of interest.
An MCP server provides enough metadata and self-documentation that it's quite straightforward to make a MCP-agnostic CLI client that adapts an arbitrary MCP server into a set of flags that allow you to call its explicit tools with explicit arguments - without ever needing to involve an LLM in the mix! You could even have that CLI tool launch the MCP server as a local subprocess, if you wanted - again, all deterministically.
And if you want to have an SDK in any language under the sun, once you have an MCP outputting reasonable tool descriptions, any LLM could make a best-in-class SDK for you in a heartbeat following that language's best practices.
So it's not unreasonable for someone working on a greenfield project to make an MCP server first nowadays!
Agreed on all of this! I'm expecting MCP server creation to be natively supported by API libraries. The abstractions are very similar.
1 reply →
COMMAND LINE: You have to instruct your AI what this tool is and what it should be used for.
MCP: You paste one command to register the MCP and your AI will always know what it is and where/why it should be used.
This is pretty naive based on my experience. I find it hard to get the LLM to consistently use the tools defined, so "always" is doing some questionable lifting here. I've had easy better luck with pretty simple, linear workflows, so telling your LLM to "know use this clip tool to..." Might be more effective than an agent that has a bunch of tools and might use the expected one. YMMV
> COMMAND LINE: You have to instruct your AI what this tool is and what it should be used for.
Or—and please bear with me, I know this may sound insane—you call the command-line tool yourself, reliably, fast, with little overhead, just like it has worked for decades.
I know, I know, soon most people won’t even know how to unzip their pants without spending unnecessary amounts of electricity and waiting for several seconds for an LLM response, but believe me that just using your hands is a solution worth checking out.
I think the goal of this project is not to simplify the use of Annas Archive for humans (as they could just use the Website anyways), but to allow AI "Agents" to automatically source information out of books while researching without requiring user interaction.
The LLM's default web-browsing tool probably won't or can't download books from AA while looking for information on a subject. This enables it to do so.
1 reply →
Thank you, sir!
https://news.ycombinator.com/item?id=44518393
MCP gives the AI agent a list of commands and instructions on how/when to use them in a standard way.
A CLI tool, while it can do the same, doesn't do that in a standard way, so if it's a tool not in the agents training set or in its context it won't know how to use the tool.