Show HN: Klavis AI – Open-source MCP integration for AI applications
We're addressing a couple of key problems with using MCPs. First, many available MCP servers lack native or used-based authentications, creating security vulnerabilities and adding complexity during development.
Second, many MCP servers are personal projects, not designed for the reliability needed in production.
Connecting to these servers usually requires writing custom MCP client code for the MCP protocol itself, which is a barrier, especially if you already have function calling systems in place.
Klavis AI aims to address these issues. To simplify access, we offer an API to launch production-ready, hosted MCP servers quickly via our API. The API also provides built-in OAuth and multi-tenancy auth support for MCP servers.
We also want to remove the need for developers to write MCP client code. You can use our API to interact with any remote MCP servers directly from your existing backend infrastructure. For faster prototyping or direct user interaction, we also provide open-source client interfaces for Web, Slack, and Discord.
The MCP servers and clients code is open source because we want to contribute to the MCP community.
For a quick start in the hosted verions, log in to our website and generate an API key. Then start calling our APIs directly. You can find more details in our doc: https://docs.klavis.ai
For a quick start in the open source version, go to our github repository and check out the detailed readme on each MCP server and client.
A little note about myself: my background includes working on the function calling for Google Gemini. During that time, I saw firsthand the challenges teams face when trying to connect AI agents to external tools. I want to bring my insights and energy to accelerate MCP adoption.
This is an early release, and we’d appreciate feedback from the community. What are your worst pain points related to MCPs, either as a developer or a general user? What other MCP servers or features would be most valuable to you?
We'll be around in the comments. Thanks for reading!
I think it’s important to release SDKs that are secure by default, so not providing this in the reference MCP would be a big issue.
In my view, MCP should be maintained by the vendors themselves. It’s too complicated to use in the enterprise if everything comes from the community with questionable security. So I applaud initiatives that try to solve this. I think smithery.ai provides something similar while also being a repository of servers (I’m not associated with them), but again the problem is needing to trust an extra middleman vendor.
Does anyone else share this view? For example, will AWS (or insert any other hyperscaler) end up providing the “Bedrock” of MCP where security is native to the platform? Or will individual companies (Box, Google, MS, etc.) start rolling them out as part of their standard developer APIs?
Cloudflare already provides something along those lines with MCP on Workers with authentication (via their zero trust product AFAIK): https://blog.cloudflare.com/remote-model-context-protocol-se...
Sounds like they were one of the partners with Anthropic in their recent “Integrations” announcement.
I assume this comes from the fact that it is very easy to create an MCP server, it is much harder to create a good MCP server. And so, a number of companies have fallen into "not invented here" or they just want to be able to control the quality of the MCP servers (that's fair). a "GitHub MCP" is a dime-a-dozen but I wrote a lot of MCP servers just for myself because often the servers provided 80% of what I wanted. It's early days for MCP but it's been easier in all cases to just write my own MCP from scratch instead of trying to fork off something existing. I'm sure that will change as time goes on but MCP is, often, a thin layer over a SDK/API, it's not hard to implement.
All of this gets to an idea that I've been playing around in my head and and have written about a fourth of a blog post on, which is "MCP interfaces". MCP Interfaces, put very simply, is the concept of a pluggable way to swap out different MCP servers that may not implement the exact same tools, but are the same spirit of tools. So, for example, a way to plug in Google search, Bing search, SearXNG, or Jina.ai search.
Why do we even need "interfaces"? Well, throwing all the tools at every LLM is a recipe for disaster in multiple ways (privacy, security, sanity, the list goes on) and often agents work best with a limited set of tools they know how to best utilize. That's all well and good and I'm sure most SaaS' out there will write their own tools or pick off-the-shelf MCP servers but for the open source world I've been thinking it would be nice to slot in your own MCP tools for certain tasks.
Search is an easy example. Lots of tools can make use of search (other good examples might be headless/headed browser automation, or memory/RAG) and I've seen the trend of different LLM application asking for all sorts of ways to do search. Some ask for your Google API key, some want Jina, some want SearXNG (some want to spin up their own docker container for SearXNG). It's all over the place, it's inconsistent, and it's a ton of wasted work. I don't want to ask the developer of "insert cool LLM application" to support my special-snowflake MCP server or tool, but I also don't want to just throw additional tools at the agents.
So far the best I can come up with is "MCP Interface" where an application can have a "minimum viable" tool(s) definition and then you can slot in MCP tools that meet that standard. Maybe "Interface" is too strict even, maybe it would just work to say "Here are my search tools, use them wherever you would provide an agent with search features". "MCP Tagging"?
I'm not sure and in a year maybe we won't even be talking about MCP or maybe the world of plug and play will be tiny/non-existent so this idea will not matter. In a way it seems too utopian to imagine we'd end up in a place where a user can say "I have my own search, let's use that" and instead we will have MCP app stores inside SaaS products (with no overlap or use outside the SaaS in question), or maybe we won't even get that, you'll just get whatever the SaaS wrote or, more likely, got from the open source community.
TBH I think all of these problems are still very new (remember MCP is only 6 months old) and I think we need to wait and see how things evolve.
I'm actually actively looking for something like this. But I'm not sure it fulfills my requirements.
Here is what I'm looking for - curated open source MCP servers - trusted curator - direct oauth integration, so the user permission is taken over (e.g.: you login with your companies Microsoft account and not with the account of the AI-Client.) this is a must for enterprise - easy to ship (eg.: via electron app) - I as the developer or the company owner can decide what servers are available to the user, and what tools (e.g.: most companies I talk to want read only access for their employees)
If Klavia fulfills that I would like to have a chat :)
Regarding SDKs, yes we are planning to add SDKs as well. The Vercel AI SDK is definitely an interesting one. I will take a look.
Also why would they not just use the official GitHub MCP?
The UX for end user OAuth is the standard GitHub Oauth flow. You will see a webpage saying that an GitHub Oauth App is requesting access to your github and you need to select yes/no.
If so, I would emphasize or add more documentation on how you are securing credentials.
And how would I add this to my agent? Would you have One MCP To Rule Them All?
> how would I add this to my agent? Would you have One MCP To Rule Them All?
If you are talking about the hosted version, you can go to our website to grab an API key and call the corresponding endpoint. https://docs.klavis.ai/documentation/mcp-server/github is the doc for GitHub MCP server.
in terms of one mcp to rule them all, it is something on our roadmap now. We are thinking that you can connect to all of the MCP servers we provide with a single URL and you can turn on/off the MCP servers in a simple UI or through API call. Let me know if this is what you have in mind.
To me, the ideal the UX is similar to the extensions UXs in each IDE, you search, click install, and get on with your life after doing an OAuth dance. Or even a discovery mechanism built into the agent itself. Sort of a “have you considered installing this? I can talk directly to JIRA for you” etc
The next best thing would be a catalog where I search, and with a single install button that would add the MCP to a certain IDE. But do the IDEs make this sort of API available, given that they all want to differentiate?
Guess there’s gonna be more competition haha (but don’t worry, I think our approaches are a bit different).
If you want to add something in the middle or a MCP specific dependency it should add some value, some specific value: industry specific, or add some specific feature.
This is just a generic dependency that provides overly generic features like "production ready" and "integration" (that's true for all dependencies.
Par for the course for AI companies, "do everything for everyone"
- Is there a way to run it locally/self-host?
- Are there discovery endpoints to list the available servers?
- The 'Test & Eval' page is interesting to me, as I think unpredictability of results with multiple MCP prompts/sources interacting is generally a pretty big issue with MCP, so a good integrated eval system could be valuable. I see it's not launched yet, but it would be great to know more about how this will work.
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.
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.
PS: I released an open source evals package if you're curious. Still a WIP, but does the basics https://github.com/mclenhard/mcp-evals
I'm working on a coding agent, and MCP has been a frequently requested feature, but yeah this issue has been my main hesitation.
Getting even basic prompts that are designed to do one or two things to work reliably requires so much testing and iteration that I'm inherently pretty skeptical that "here are 10 community-contributed MCPs—choose the right one for the task" will have any hope of working reliably. Of course the benefits if it would work are very clear, so I'm keeping a close watch on it. Evals seem like a key piece of the puzzle, though you still might end up in combinatorial explosion territory by trying to test all the potential interactions with multiple MCPs. I could also see it getting very expensive to test this way.
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.
I hope this a result of everything being so new and the tooling and models will evolve to solve these issues over time.
The tools provided by the MCP server were definitely in context and there were only two or three servers with a small amount of tools enabled.
It feels too model dependant at the moment, this was Gemini 2.5 Pro which is normally state of the art but has lots of quirks for tool use it seems.
Agreed on hoping models are going to be trained to be better at using MCP.
And then every time I try to add something new to the prompt, all the prompting for previously existing behavior often needs to be updated as well to account for the new stuff, even if it's in a totally separate 'branch' of the prompt flow/logic.
I'd anticipate that each individual MCP I wanted to add would require a similar process to ensure reliability.
It has momentum and clearly a lot of folks are working on these shortcomings, so I could certainly see it becoming the de facto standard. But the issues we're talking about are pretty major ones that might need a more fundamental reimagining to address. Although it could also theoretically all be resolved by the models improving sufficiently, so who knows.
Also, cool to hear that you came across Plandex. Lmk what you think if you try it out!
1. Giving the model too many choices. If you have a lot of options (like a bunch of MCP servers) what you often see in practice is that it's like a dice roll which option is chosen, even if the best choice is pretty obvious to a human. This is even tough when you just have a single branch in the prompt where the model has to choose path A or B. It's hard to get it to choose intelligently vs. randomly.
2. Global scope. The prompts related to each MCP all get mixed together in the system prompt, along with the prompting for the tool that's integrating them. They can easily be modifying each other's behavior in unpredictable ways.
Yes our github page has README for all MCP servers and clients. You can checkout https://github.com/Klavis-AI/klavis.
> Are there discovery endpoints to list the available servers?
Yes. https://docs.klavis.ai/api-reference/mcp-server/get-all-serv.... And we are adding more MCP servers.
> Testing and Eval
Yes it is early access now. If you are interested, shoot me an email at xiangkaiz@klavis.ai and we can talk more.
I would also personally consider just open sourcing everything (or at least core features) as I think you'd still have plenty of customers who would prefer a hosted solution. In my experience, there is surprisingly little overlap between the people who prefer cloud vs. self-hosting, so having a full open source option doesn't cannibalize the product side as much as you might think... people who prefer cloud will mostly still prefer it even if they could self-host instead, and people who prefer self-hosting will generally just look for another project rather than using your cloud service. Just my unsolicited 2 cents.
It's a bit of a stretch but MCP is to LLM enabled applications what REST is to web applications.
What was happening before was if you built tools using langchain, you'd have to rewrite them for crewai, cursor, etc. Now, we have a way to share tools, resources, and prompts with applications built using different frameworks.