4 ms·
Show HN: We made an MCP Server so Cursor can build things from REST API docs
- zaleria 2y agodocumentation is for humans. let the LLMs read code.
- lagrange77 2y agoActually, programming languages are also for humans.
- phito 2y agoCode does not contain all the information of a feature.
- manojlds 2y agoIsn't code for humans as well then?
- anon1094 2y ago01111001 01100101 01110011
- krystofee 2y agowhen you present this to LLM, it will be confused the same as a human reading this
- novalis78 2y agoClaude wasn’t confused at all by that
- LeafItAlone 2y agoActually, it won’t be: https://medium.com/@dharineeshj2/chatgpt-jailbreaking-a-sneaky-loophole-that-exposes-ethical-gaps-1f3dcf015bf6 https://medium.com/@dharineeshj2/chatgpt-jailbreaking-a-snea...
- px43 2y agoChatGPT 4.5: Ooh, a binary puzzle—fun! Let’s decode it: 01111001 01100101 01110011 In binary, each byte (set of 8 digits) represents an ASCII character. Let's break it down: 01111001 = y 01100101 = e 01110011 = s So, it spells out "yes"! Got any more mysteries to solve?
- vbezhenar 2y agoSometimes documentation is preferred source of truth, especially when multiple implementations exist. For example when you're writing code for POSIX API, you don't want to tie your code to glibc specific implementation, portable code is the whole point of POSIX.
- smokel 2y agoCode typically describes only the what and how. The why is usually left in people’s heads and, if you are lucky, in documentation.
- krystofee 2y agoThink about it, what do you read when integrating APIs, code or documentation?
- LeafItAlone 2y agoGoing into AI-assisted development, I thought this would be the winning strategy. I’ve since learned it’s not. LLMs have a limited context window. It’s can’t hold a full moderately sized project in context, let alone the code of the referenced libraries. Some tools have documentation that exceed the context window. So I’ve found that adding documentation and adding that to the context helps significantly. I even often let the AI tools generate my documentation where possible (and then manually edit). For me and the tools I use, this has helped significantly.
- hariharasudhan 2y agowant to run it on my local and not from your servers via token. after all the docs are already open
- koakuma-chan 2y agoThis only works if your API is built on their "Apidog" commercial API building platform. I wonder how this compares to just scraping documentation from a regular documentation website.
- andybak 2y agoIn which case the post title is misleading and should be edited. I'm flagging this.
- nextts 2y agoDon't flag yet. OP replied
- goargp 2y agoHey, just clarify the case. You can directly read Swagger or OpenAPI Specification (OAS) files.
- andybak 2y agoOK. Unflagged. So this is about web APIs? I dislike that the broad term "API" has started to be used as shorthand for "HTTP API" (and probably REST-ish HTTP APIs specifically). It wastes people's time trying to figure out if something is of interest to them. Not everyone in tech is building web apps.
- goargp 2y agoFair point. I think the title can be more accurate by changing API into "REST API". Since I cannot edit the title as of now, I hope mod could change the title to be more accurate. For more context, this tool can generate an MCP Server from an OpenAPI/Swagger file that describes a REST API. This does not include SOAP APIs, GraphQL, or other APIs that use the HTTP protocol.
- imtringued 2y ago
- khvirabyan 2y agoVery cool, almost all of the API platforms offering API abstractions can now offer one MCP server to connect to all of the existing API integrations. It's very interesting to see how things will progress from here. One example is Zapier released their own MCP server (https://zapier.com/mcp https://zapier.com/mcp). How the adoption will grow over time is very interesting to see, vendors such as GitHub will provide their own official MCP or the community will kick in and will support the integration + documentation generators might as well generate the MCP server. Great work!
- smokel 2y agoMCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. https://modelcontextprotocol.io/ https://modelcontextprotocol.io/
- koakuma-chan 2y ago!! Not to be confused with Minecraft Coder Pack !!
- taspeotis 2y ago>£€ Not to be confused with Media Codec Pack €£<
- LeafItAlone 2y agoI usually think these types of comments don’t add anything and are often duplicative of what’s in the project documentation. But this project fully assumes you know what MCP is. Would be nice if they added a link to it in their readme.
- jascha_eng 2y agoIs anyone actually using MCPs productively? I feel like everyone and their mother are releasing specialized ones but I have yet to find them really useful. The stuff that's cool works with purpose-built tools like what cursor and claude code do to edit files, run commands etc. Bring your own function hasn't really been useful to me. That being said I do believe that giving current relevant documentation into the context does help with results. I've just yet seen anyone do that very successfully in an automated fashion.
- martypitt 2y agoI'm also fascinated by this. People are scurrying to release MCP servers, and there's been a flurry of them put out - but it feels like we've skipped straight to the advanced tooling, on top of a stack that might not have found it's footing (yet). I understand MCP, the problem it solves, and why it seems a good idea ... but outside of toy applications, are they proving to be useful?
- noodletheworld 2y ago> I understand MCP, the problem it solves, and why it seems a good idea I don't. Can you ELI5 why it's a good idea for me? I see what people are doing (1), and I see what the intent is (2), but no one seems to have an explanation of why it helps. The original MCP documentation has some vague hand waving about (3) about having prompts that would help ... with, something. ...but I don't see it in practice. ? Is this why people are asking "does this actually work?" ...because, its obviously not any better than the 'tool use' API that everyone was already using. It can't be. It doesn't do anything differently. I would bet that it actual makes agents less capable when you overload their context with unrelated tools that aren't relevant. Right? How can it possibly help? It sounds a lot like it rests on the assumption that adding tools is a zero-cost zero-impact +capability action only, but that can't be true. (1) - https://github.com/punkpeye/awesome-mcp-servers https://github.com/punkpeye/awesome-mcp-servers (2) - https://modelcontextprotocol.io/quickstart/server#what%E2%80%99s-happening-under-the-hood https://modelcontextprotocol.io/quickstart/server#what%E2%80... (3) - https://modelcontextprotocol.io/docs/concepts/prompts https://modelcontextprotocol.io/docs/concepts/prompts
- Matsta 2y agoLooks cool, the only one similar I've seen so far that is similar is: https://github.com/cyberagiinc/DevDocs https://github.com/cyberagiinc/DevDocs But every-time I've tried to run DevDocs, I've had issues running it. Either the scraper or the MCP server fails to run.
- tb1989 2y agoI think this article explains it all: MCP Isn’t the USB-C of AI — It’s Just a USB-Claude Dongle https://dev.to/internationale/mcp-is-not-ai-usb-c-its-usb-claude-dongle-4chg https://dev.to/internationale/mcp-is-not-ai-usb-c-its-usb-cl... Nonetheless, I think your work is very good and it looks like a very useful dongle
- Leynos 2y agoThat article makes very little sense. The protocol itself sits on top of JSON-RPC, and the specifications are there for anyone to implement. There's nothing specific to Claude about it. There are various MCP client and server implementations available that are also unrelated to Anthropic.
- tb1989 2y ago- The official example strongly promotes the Anthropic API, which is on GitHub. This is clear evidence. - There is no clear explanation of the coupling between the system prompt and the tool call. Even if it mentions the open source Gemma or Deepseek, it would be much better. The official attitude makes it difficult to trust this project. The point you made is exactly the cunning part. Anyone can copy it, but without official support, it is simply impossible: this is pure community exploitation
- Leynos 2y agoIf you want an LLM to use a tool, you just need to implement a parser in your LLM client that extracts the tool call from the LLM's response, then give the LLM a syntax it can use to make the tool call. For example, in Roo Code: ``` TOOL USE You have access to a set of tools that are executed upon the user's approval. You can use one tool per message, and will receive the result of that tool use in the user's response. You use tools step-by-step to accomplish a given task, with each tool use informed by the result of the previous tool use. # Tool Use Formatting Tool use is formatted using XML-style tags. The tool name is enclosed in opening and closing tags, and each parameter is similarly enclosed within its own set of tags. Here's the structure: <tool_name> <parameter1_name>value1</parameter1_name> <parameter2_name>value2</parameter2_name> ... </tool_name> For example: <read_file> <path>src/main.js</path> </read_file> Always adhere to this format for the tool use to ensure proper parsing and execution. ```
- musha68k 2y agoWhat have you actually built and deployed using this "vibe coding" methodology? So far, I've mostly seen proof-of-concept applications that might qualify as decent game jam entries - contexts where experimental implementation is expected ("jank allowed"). I'm curious about production applications: Has anyone developed robust, maintainable agent systems using this approach that didn't require significant refactoring or rewrites even? What's been your experience with its viability in real-world environments beyond prototyping?
- simonw 2y agoCan you clarify what you mean by "agent-based" development, "vibe coding" and "maintainable agent systems" here? (All three of those are terms with very vague definitions, I'm interested in hearing which of those definitions are starting to take root.)
- wanderingbort 2y agoI like the original construction of “Vibe Coding” [0] that I will attempt to make concise: Vibe Coding is an RECREATIONAL activity where a user and an AI collaborate on creation of some artifact AND the user accepts ALL feedback and suggestions from the AI. https://x.com/karpathy/status/1886192184808149383 https://x.com/karpathy/status/1886192184808149383
- simonw 2y agoYeah, I like that definition too: https://simonwillison.net/2025/Mar/19/vibe-coding/ https://simonwillison.net/2025/Mar/19/vibe-coding/
- Mtinie 2y agoWhat software development world do you live in where significant refactoring and rewrites aren’t commonplace? Every project I’ve ever had insider knowledge about started as a prototype and then was extensively reworked until it met the needs of the team…until the next set of requirements dropped and the cycle repeats. If agent systems allow teams to spin up and test prototypes faster than they previously could do without the agents, isn’t that a useful and valuable step in the right direction? Addendum: After rereading my comment I realize it may come off as argumentative when it was intended to offer a perspective of not requiring more from the current state of the tech than it offers. “Early days” and all that :)
- z3t4 2y agoHave you obfuscated/minified the code? Why!?
- franky47 2y agoI saw the domain and thought that NPM itself built an MCP to let agents read package docs and type definitions to stop hallucinating APIs that don't exist. Sadly, no. We have .d.ts for machines (tsc), we have JSDoc & README.md for humans, can we get those LLMs to actually stick to those sources of truth, without having to do the work a third time (like llms.txt / cursor rules)?
- deleted 2y ago[deleted]
- Sterling9x 2y ago[dead]
- nindalf 2y agoIs this useful? It seems really specific to their paid tool. What would be more helpful is an MCP that exposed devdocs.io or similar. Cache selected languages/framework documentation locally. Then expose an MCP server that searched the local files with some combination of vector/BM25 search. Expose that as a tool to the LLM.
- shiraayal 2y agoThere is this repo converting fastapi to mcp servers without needing it to be a part of apidog here: https://github.com/tadata-org/fastapi_mcp https://github.com/tadata-org/fastapi_mcp